你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F411CEUx 能下载程序但不能执行

[复制链接]
STMCU小助手 发布时间:2022-2-28 19:48
前言( `# d* ^) s1 w; s% I9 C
某客户和我们反应他们制作回来的板子,能下载程序但是程序执行不了。
& b. v* a  u0 B, i一、复现现象, t' W5 L0 }' L  i1 ]- ^* I, V
硬件是:客户自己设计制作的板子。上面是 STM32F411CEUx 的芯片
) v1 w/ W9 K8 k3 q软件版本是 Cube 库中的:基于问题是能下载程序,但是代码执行不了,所以自己用 Cube 生成了一个项目工程,主函数里面就是 GPIO 口的翻转,正好客户的板子上有 LED 灯,所以如果代码被执行了,就可以看到灯的闪烁。
5 ]; m! f+ Q3 M0 N/ w7 `5 V8 s; q2 W$ D# N* c. o) w
二、程序解读
+ j$ w1 z# |# b5 B3 G+ K连接好调试工具 STLINK,
: N7 s+ y% ~3 l" h5 j1 F0 C
  _- \  y2 ^# X' ^4 d/ q2.1/ IAR 编译环境! L1 Y* P! _  M3 w* C9 U
程序能够正常下载,而且能够执行,可以看到对应的 LED 灯的闪烁。
& ~, M& Q) E+ q  J# ^- p/ \2.2/ Keil 编译环境+ V. n3 i" q% K) L: O( n
使用 Keil 的编译环境下载,确实能够下载,但是入口的地址是如下黄色的那行显示所示,如果单步执行(F11)或全速运行(F5),程序始终在原位置不动(0x1FFF4252),9 [; J: K0 c  k
如果强制的将 PC 指针的值和 SP 的值修改为 0x8000000 与 0x2000000,然后在点击运行,则能够跑到 main()函数,再全速运行,能够看到客户板子上的 LED 灯的闪烁。
+ e. S& v* `7 T7 H  D. s但是如果不强制修改 PC 和 SP 指针的值,则程序不执行。, h* b) a; R; U. O0 J6 |4 F

* P. e: |6 |# s+ ]5 F7 q2 } M3AW32{]FHMC`L5U86DG%{G.png * h3 N6 Y* i9 [4 c# V1 ^5 ~& C

9 M* H/ C" `, D0 D9 C! I  l所以问题就变成为什么程序下载进去后的地址是 0x1FFF4252 ?0x1FFF4252 又是什么地址呢?0 J9 b2 P! C2 G1 Z+ N: J& S2 B; R/ Z+ B
查阅相应的手册,3 v! }% H  V2 x+ C% }
2 D/ ~1 h. k( v

+ i) P  i& J0 R7 R/ `) S ]SK@2NQQVG624MFT02`9T1X.png
8 a- y8 i9 ?! F% T8 T: e: z- t; W9 f8 M" }6 p$ c
发现 0x1FFF4252 是处在了 System memory 区域。
( i  O, z. m1 X( ]# A咨询了客户,他们设计的是程序从 Flash memory 区域启动的而且程序中没有对 Option Byte 进行配置,那问题就很清楚了,用万用表测量了客户板上的 Boot 0 引脚的电平,发现电平不对,达到 1.6V,这么高的电平可以被视为高电平了。
, [( G2 Y+ Q. k% u$ p0 Z
& M5 O( i/ J+ @; _& a9 x9 A3 i' d 8CE2B3GPNR)}`$NLBBY%N9P.png 2 _" }* W1 ]# ]$ f. Z

+ C0 k& G/ D! r; _4 K对照客户的原理图,原来 Boot 有上拉和下拉的电阻,焊接的时候将这两个电阻都焊接上去了,去掉上拉电阻,使的 BOOT0的引脚接地为低电平,再编译下载进入 Keil 的环境,程序能够被正常执行了。问题找到了。( _# `" k) E4 z. U0 `
对于最初的测试,硬件相同,软件相同,然而 IAR 可以正常运行,KEIL 却不能执行,不解,可以 IAR 编译环境的设置比较智能
  J5 p0 a6 f# l) W
9 j/ h; z) Y# l! B
赞 收藏 评论0 发布时间:2022-2-28 19:48

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版