1、keil文件不能生成.afx和.bin文件
命令
D:\ProgramFiles\keilV5\ARM\ARMCC\bin\fromelf.exe --bin -o…\Output\Project.bin …\Output\Project.axf
可能有以下几种问题要排查:
- 1、编译路径的问题,也就是fromelf.exe的路径填错了
- 2、没有破解
- 3、环境变量的问题:
– 安装路径不要有中文
– 环境变量不要有中文
环境变量里有中文,这个要改:计算机右键-属性-高级系统设置-高级-环境变量-XX的用户变量(xx是用户名一部分) 里面的temp 和tmp路径是%userprofile%开头,把两个%userprofile%替换成c:\usertemp (这个文件名是自定义的,保证全都是英文,先在C盘里建好,再修改就行了)
2、__asm void MSR_MSP(uint32_t addr) 提示:error:expected ‘(’ after ‘asm’
这个问题在系统自带的core_m3.c文件中也出现。不是编程的问题,而是编译器出现的假问题。
该错误可以忽略,不会影响编译和执行文件的生成。
参考文章:http://www.keil.com/support/docs/4074.htm
C代码中嵌入汇编,无法设置断点
在程序中嵌入了一个用汇编写的软件复位子程序后,这个.c文件中的其他用c写的代码部分,就不能设置断点了。如下图:
我是这样解决的,建立一个c文件,这个c文件中只放置内嵌(内联)的汇编代码,然后其他c文件调用即可,这样就可以解决部分c文件无法设置断点的现象。
用KEIL仿真STM32F103时停在Reset_Handler无法启动
断点打多了。
解决办法:把所有断点去掉,等进入main函数后,再新建断点。