STM32F411CEUx 能下载程序不能执
前言
某客户和我们反应他们制作回来的板子,能下载程序但是程序执行不了。
一、复现现象
硬件是:客户自己设计制作的板子。上面是 STM32F411CEUx 的芯片
软件版本是 Cube 库中的:基于问题是能下载程序,但是代码执行不了,所以自己用 Cube 生成了一个项目工程,主函数里面
就是 GPIO 口的翻转,正好客户的板子上有 LED 灯,所以如果代码被执行了,就可以看到灯的闪烁。
二、程序解读
连接好调试工具 STLINK
21/ IAR 编译环境
程序能够正常下载,而且能够执行,可以看到对应的 LED 灯的闪烁。
22/ Keil 编译环境
使用 Keil 的编译环境下载,确实能够下载,但是入口的地址是如下黄色的那行显示所示,如果单步执行(F11)或全速运行
F5,程序始终在原位置不动(0x1FFF4252),
如果强制的将 PC 指针的值和 SP 的值修改为 0x8000000 0x2000000,然后在点击运行,则能够跑到 main()函数,再全速
运行,能够看到客户板子上的 LED 灯的闪烁。
但是如果不强制修改 PC SP 指针的值,则程序不执行。
所以问题就变成为什么程序下载进去后的地址是 0x1FFF4252 0x1FFF4252 又是什么地址呢?
查阅相应的手册,