虽然做嵌入式开发这么多年,但是没有关注过keil options选项卡中配置After Build/Rebuild Run #1 Run #2是怎么配置的,今天就来记录一下。
首先,下图中Run #1中的cmd是keil自带的,fromelf --bin --output=$L..\@L.bin #L
先看一下命令解释:
$L:表示生成的链接文件的路径,一般是工程路径下的\objects\
@L: 表示生成的链接文件的文件名(包含路径),但不包含文件扩展名
#L:表示生成的链接文件的完整路径名及文件名
.. :表示当前路径的上一个目录
开发过程中有一个功能是:将生成的bin文件转换成一个数组存储到.c文件中,如将bin文件转换成
unsigned char * buf[] ={0x00, ...,}; 存储在test.c中;
用QT实现这一功能,生成一个.exe,然后在keil的Run #2中调用此exe,并将bin文件和生成后的.c文件传入到exe中;于是在Run#2中添加如下cmd:
.\outexe\testbin.exe @L.bin $L..\test.c
.\ 表示MDK工程的当前路径,testbin.exe在工程路径的outexe文件夹中,因此:
.\outexe\testbin.exe代表编译完成后调用testbin.exe
然后.\outexe\testbin.exe后面跟一个空格,然后@L.bin是给testbin.exe的第一个参数,
再跟一个空给,$L..\test.c是给testbin.exe的第二个参数;
这两个参数分别代表要处理的bin文件和处理完成后输出的.c文件。
QT main函数接受参数如下:
filename是接收的bin文件的路径及文件名。
ouBin是接收的输出c文件的路径及文件名。