如果仔细查看bin文件生产过程就会发现这里的构建后其实指的是构建rt-thread.elf文件,而生成的bin文件也是后面转换文件格式生成的。在env工具中在rtconfig.py中就可以手动添加一些操作:
#POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + OBJCPY + ' -O ihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n'
老大,请教一下,studio或者env怎么设置调用自己的命令,只能以python的方式调用嘛?
比如我在学习imx6ull这款芯片,它的下载文件需要在bin文件之前加入各种信息才可以。在Linux下可以在makefile中用
./tools/mkimage -n ./tools/imximage.cfg.cfgtmp -T imximage -e 0x80100000 -d xxx.bin xxx.imx
在env或studio下怎么做到这种效果呢??
可以的studio留有 构建后 调用用户处理步骤的入口,例如 构建后生成hex 就是在这里加进去的

可以调用可执行程序,或者windows批处理程序都可以,如果步骤比较多 可以都写在批处理进行
@rcp 好的,比如上面那个命令调用的是Linux的一个应用程序
./tools/mkimage
studio下能否直接调用呢?或者必须改成python之类的脚本才可以呢?@HappyTime exe,批处理,脚本都行
@rcp 不是bin文件路径的问题,从studio控制台上的日志来看脚本是在生成bin之前调用的
@Jone @HappyTime 有个方法你试试,将生成bin先配置成生成hex,然后在构建后 命令里 先自己调用命令生成bin然后 针对bin再修改
@rcp 把格式改成hex测试发现也是先调脚本后才生成hex。由此可以说明编译流程的脚本或者studio参数设置存在一些问题了
@Jone 是的studio内部这部分顺序是固化的 依次是 1.编译生成elf文件 2.调用用户自定义脚本 3.调用outfile format(生成bin或hex)
我的意思是如果你希望自己处理bin文件那么就不要再第3步让studio生成bin文件,而是让它生成个其它的比如hex文件,自己在第二步的时候 在自定义脚本里干两件事 一是自己调命令通过elf生成bin,二是调程序处理你生成的bin文件,这样得到的bin就是自己想要的bin