给stm32f103芯片编写app程序时,通过IAP方式升级,需要生成bin文件,结果遇到以下两种问题:
首先路径设置为如下方式,选择其中1个就行,两种方式都可以:
Run #1路径:C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o "$L@L.bin" "#L"
Run #2路径:fromelf --bin -o "$L@L.bin" "#L"
1、第一次生成的是一个 .bin的文件夹,里面有两个看不懂的文件。




可能是设置的程序起始地址不对,或者是程序存储空间分配的太小,重新修改 IROM1 配置 和Flash Download start和size配置。


改了之后出现了第二种问题:
2、第二次编译出现错误:
Error: Q0108E: Could not create output file '..\Output\STM32-APP.bin': Permission denied
查了网上的一些资料,最终解决了(不是路径设置的问题),具体什么原因不清楚。
可能是我改动了输出文件名的原因,输出文件名和工程名不一样。
最终解决方法如下:
将工程目录下 output文件夹里(bin文件的输出路径)的所有文件都删除,重新编译后成功。
每次修改输出文件名或程序存储空间配置等,都需要将output文件夹里的文件全部删除,再编译才能成功。
希望对大家有帮助,IAP功能还在继续研究中。
在为STM32F103编写IAP升级的APP程序时,使用Keil5遇到了生成BIN文件的问题。首次生成得到的是包含两个未知文件的.bin文件夹,调整IROM1配置后,出现'Permission denied'错误。解决方法包括检查程序起始地址、增大Flash大小、删除output文件夹内文件再重新编译。此问题可能与输出文件名和工程名不一致有关。

6186


被折叠的 条评论
为什么被折叠?



