默认情况下,在bsp目录运行scons
编译后,只会生成bin
文件,但是可能有的同学需要hex
文件。这时候就需要这么干了:
- 打开
rtconfig.py
文件,找到如下这段
就是根据编译工具链,确定编译脚本
大致来说,根据所使用的IDE,有三种编译器:
IDE(平台) | 编译工具 |
---|---|
gcc | arm-none-eabi-gcc |
keil | armcc |
iar | iccarm |
- 每个
if
elif
选项的最后,都有一个POST_ACTION
(就是一个字符串变量),这就是编译完了后需要执行的命令。以gcc平台为例:
POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
每个\n
前面就是一条命令。这条语句运行了两条命令:一个是生成bin文件,一个是查看目标文件大小。
通过看前面的代码,不难得到:
变量 | 命令 |
---|---|
OBJCPY | arm-none-eabi-objcopy |
SIZE | arm-none-eabi-size |
所以,依葫芦画瓢吧,把原来的删掉或注释,替换成下面这句。就能实现生成bin文件的同时,还生成hex文件
POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + OBJCPY + ' -O ihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n'
运行效果:
确实生成了hex文件
对于其他平台, 是什么命令生成hex,自行研究吧。