keil使用fromelf.exe生成.bin文件过程中碰到的问题解决

       使用keil进行在线调试或者使用下载器直接下载程序时我们只需要生成.HEX格式的文件就可以了,但是在远程升级更新文件的时候HEX文件并不能用,我们需要将工程生成二进制.bin格式,再写到芯片的flash区域去执行,这个时候需要用到fromelf.exe程序。需要在keil中进行一些基本配置,如下图所示:

 

keil使用fromelf.exe生成.bin文件过程中碰到的问题解决_第1张图片

参考fromelf使用指南,需要设置fromelf的程序路径,目标生成路径以及该工程的.axf文件路径,例如:

E:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bincombined --bincombined_base=0x00005000 --output=./LowPower_alarm.bin ./Objects/tmr_example_gp.axf

其中,不使用--bin而是使用--bincombined --bincombined_base是因为该程序在flash中重新定位,不是从起始处开始加载的。另外,使用过程中发现即使这样修改之后还会报一个错误:Base address  is above start address 0x00000180 of load region #0。我使用的aducm302x,使用0x00000180的地方位于system_ADuCM3029.c文件中的

keil使用fromelf.exe生成.bin文件过程中碰到的问题解决_第2张图片

将该地址改修改一下就可以,或者将该语句删掉,因为没有具体绝对定位一个变量。使用是stm32系列芯片没有碰到类似问题。

以上是粗略发现解决问题的路程,遇到同样问题的朋友可以参考一下。

 

 

 

你可能感兴趣的:(C/C++,ARM,ADUCM3029)