硬汉嵌入式论坛

 找回密码
 立即注册
查看: 947|回复: 25
收起左侧

[IAR] MDK专为IAR,求助一些菜单设置

[复制链接]

23

主题

336

回帖

405

积分

高级会员

积分
405
发表于 2025-2-16 17:53:57 | 显示全部楼层 |阅读模式
本帖最后由 hpxzw_foxmai 于 2025-2-18 10:29 编辑

大家好,我这边开发由于芯片原因,需要从MDK转到IAR开发,有几个问题目前不知道怎么处理,麻烦大家指点下,谢谢
用的IAR 9.50.2的版本
1、(已解决)IAR如何生成bin文件???
我之前的MDK是使用
fromelf.exe --bin --output $[url=mailto@L.bin]L@L.bin[/url] #L

IAR:
IAR output converter中output binary选择raw binary编译后即可生成bin文件


2、(已解决)IAR如何在编译前执行脚本,编译后执行脚本???
MDK里面是在User里面的Before Compile C/C++ File,Before Build/Rebuild,After Build/Rebuild里面进行设置
IAR的菜单里面Build Actions里面处理

3、(已解决)IAR如何每次编译都编译指定的文件???
MDK里面是在左边文件的属性里面,选择Always Build,
IAR里面要怎么搞?
思路是在Run after link 把指定文件的.o文件删掉,就可以了

4、(这个就不管了)IAR编译后的文件是按文件夹来的,而且文件夹的名称还挺奇怪的
能不能指定文件夹的名称,或者就是不分文件夹,都统一在OBJ文件夹里面


5、IAR python中文显示
里面调用python脚本,python里面有中文显示,在IAR窗口里面显示乱码@@@@
这个我后续试试改python脚本看看

QQ截图20250217115113.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116229
QQ
发表于 2025-2-17 05:01:34 | 显示全部楼层
1、

1.png

2、

2.png


3、这个没留意过
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-17 09:32:45 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-17 09:38 编辑

QQ截图20250217093830.png


版主,怎么我的菜单和你的不太一样?
是不是我的9.50.2版本太低了?

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116229
QQ
发表于 2025-2-17 10:15:55 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-17 09:32
版主,怎么我的菜单和你的不太一样?
是不是我的9.50.2版本太低了?

我的是9.30
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-17 16:48:33 | 显示全部楼层

版主好,1、2、3基本初步解决,
4,5问题麻烦看看,谢谢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116229
QQ
发表于 2025-2-18 05:56:54 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-17 16:48
版主好,1、2、3基本初步解决,
4,5问题麻烦看看,谢谢

4、我没管过。
5、这个地方是的,对应中文支持不好,建议用英文
回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-18 09:55:20 | 显示全部楼层
3.可能解析待编译文件列表在这个prebuild action之前,所以第一次编译没有重新编译,这个也好改,改成after link之后把编译产物删掉
4.文件夹结构不改的话名字一般不会变,要找对应目录的话直接文件夹名加通配符
5.是python的问题,网上搜python中文乱码,教程一大堆,iar改不了,python还改不了吗
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-18 09:55:56 | 显示全部楼层
eric2013 发表于 2025-2-18 05:56
4、我没管过。
5、这个地方是的,对应中文支持不好,建议用英文

谢谢
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-18 10:27:48 | 显示全部楼层
skyshine 发表于 2025-2-18 09:55
3.可能解析待编译文件列表在这个prebuild action之前,所以第一次编译没有重新编译,这个也好改,改成after ...

谢谢,
问题3可以了
问题4就忽略了
问题5,我试试,之前的这一套python在MDK里面是没有问题的
回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-18 13:59:35 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-18 10:27
谢谢,
问题3可以了
问题4就忽略了

试了下打印chcp,显示是936对应GBK,如果python是对应utf输出的话,加一句chcp 65001就行;或者把python改成GBK输出
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-19 13:25:34 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-19 13:40 编辑
skyshine 发表于 2025-2-18 13:59
试了下打印chcp,显示是936对应GBK,如果python是对应utf输出的话,加一句chcp 65001就行;或者把python ...
qq123123.png
大佬好,我在python里面加了脚本,
在python里面输出没有问题,在MDK输出没有问题,
就是在IAR里面有问题


qq555555.png
如果不勾选这个Auto-detect character encoding,文件里面的中文注释会有乱码


回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-19 14:27:55 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-19 13:25
大佬好,我在python里面加了脚本,
在python里面输出没有问题,在MDK输出没有问题,
就是在IAR里面有问 ...

在iar的build action里直接加chcp 65001这一句就行吧,找个python脚本,只打印,两种编码都试一下,iar的终端默认是GBK
Screenshot 2025-02-19 142132.png
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-24 16:59:29 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-24 17:05 编辑
skyshine 发表于 2025-2-19 14:27
在iar的build action里直接加chcp 65001这一句就行吧,找个python脚本,只打印,两种编码都试一下,iar的 ...

最近比较忙
我这边是9.50.2的版本,在python脚本里面加不行
build action里面不知道怎么加,
我这边的文件格式 用的UTF-8不带BOM的

在python脚本里面
main函数第1行增加 os.system('chcp 65001') 还是不行
回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-24 17:12:46 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-24 16:59
最近比较忙
我这边是9.50.2的版本,在python脚本里面加不行
build action里面不知道怎么加,

build action里的command line直接输chcp 65001就行
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-24 19:48:20 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-25 17:20 编辑
skyshine 发表于 2025-2-24 17:12
build action里的command line直接输chcp 65001就行



测试了,还是不行,python文件用的UTF-8无BOM


回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-25 11:34:58 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-24 19:48
测试了,还是不行,python文件用的UTF-8无BOM

[Python] 纯文本查看 复制代码
#coding=utf-8
import os
os.system('chcp 65001')
print("测试UTF打印")

或者
[Python] 纯文本查看 复制代码
#coding=GBK
import os
os.system('chcp 936')
print("测试UTF打印")
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-25 14:06:50 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-25 17:20 编辑
skyshine 发表于 2025-2-25 11:34
[mw_shl_code=python,false]#coding=utf-8
import os
os.system('chcp 65001')



大佬,还是不行


回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-25 14:45:57 | 显示全部楼层

文件开头加#coding=utf-8或者#coding=GBK,这东西不只是注释,有用的
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-25 14:51:47 | 显示全部楼层
skyshine 发表于 2025-2-25 14:45
文件开头加#coding=utf-8或者#coding=GBK,这东西不只是注释,有用的

大佬,看我的图片,最上面一排第28行加了的
回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-25 14:57:46 | 显示全部楼层
你python一开始就os.system('chcp')看一下终端是不是936,是936,文件第一行就#coding=GBK,后面不用改chcp;
不是936,文件第一行是#coding=utf-8,后面不用改chcp。
你查一下是不是有其他地方改编码了,你的英文打印都乱码了
回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-25 15:13:53 | 显示全部楼层
hpxzw_foxmai 发表于 2025-2-25 14:51
大佬,看我的图片,最上面一排第28行加了的

要放在第一行,放中间没有用
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-25 15:14:12 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-25 17:20 编辑
skyshine 发表于 2025-2-25 14:57
你python一开始就os.system('chcp')看一下终端是不是936,是936,文件第一行就#coding=GBK,后面不用改chcp ...

大佬,我这边python脚本是UTF-8不带BOM的文件,
加在第一行也不行
#coding=utf-8
#coding=UTF-8
都试过

os.system('chcp 65001')
这句话加上,屏蔽,都是一样的结果,都是乱码




输出窗口的文字字体是consolas

回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-25 15:25:21 | 显示全部楼层
iar的终端是GBK的,python首行# coding=GBK,其他不要改了,不要加chcp
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-25 15:39:48 | 显示全部楼层
本帖最后由 hpxzw_foxmai 于 2025-2-25 17:19 编辑
skyshine 发表于 2025-2-25 15:25
iar的终端是GBK的,python首行# coding=GBK,其他不要改了,不要加chcp

大佬,测试了还是不行
# coding=GBK
#coding=GBK
# coding:GBK
#coding:GBK
都试过,单独用python是没有问题,
用了IAR就不行

公司电脑加密了,只能复制出来
----------------------------------------------------------------------
# coding=GBK
#!/usr/bin/env python

'''
alt+3 , alt+4 批量注释
校验和算法:
-------------------------------------------------------------------------
def encodeStr(s):
    return ' '.join([bin(ord(c)).replace('0b', '') for c in s])

def decodeStr(s):
    return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
-------------------------------------------------------------------------
'''

import xlrd
import re
import os
import codecs
import string
import shutil
import struct

####################追加结尾信息####################
str_start8 = 'ABCD'
appname_src = './obj/ccc.bin'
appname_bkp = 'aaa.bin'
appname_now = 'bbb.bin'

def pack_bin_file():
    calcValue = 0
    ##备份文件
    if os.path.exists(appname_src):
        shutil.copy2(appname_src, appname_bkp)
        print ("%s文件备份完成" % (appname_bkp))
    else:
        print ("%s文件不存在 not exist" % (appname_src))
        return
if __name__ == '__main__':
    ##封装文件
    pack_bin_file()



回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2025-2-25 16:16:24 | 显示全部楼层
我试了下,还真有问题,之前写的demo正常是因为中文字符少,字符多了python不给解析,换成GBK也不行,还是改成全英文吧
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
 楼主| 发表于 2025-2-25 16:41:07 | 显示全部楼层
skyshine 发表于 2025-2-25 16:16
我试了下,还真有问题,之前写的demo正常是因为中文字符少,字符多了python不给解析,换成GBK也不行,还是 ...

好的,麻烦你了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 17:20 , Processed in 0.378659 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表