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

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

[复制链接]
STMCU小助手 发布时间:2022-2-28 19:48
前言( m  m6 K0 c+ ]" e, p  v
某客户和我们反应他们制作回来的板子,能下载程序但是程序执行不了。
; B. f0 J( T: w6 u: ~一、复现现象' f9 l& s& a! |% Q- T
硬件是:客户自己设计制作的板子。上面是 STM32F411CEUx 的芯片- c  [$ R& }1 B9 Z( N8 F. u
软件版本是 Cube 库中的:基于问题是能下载程序,但是代码执行不了,所以自己用 Cube 生成了一个项目工程,主函数里面就是 GPIO 口的翻转,正好客户的板子上有 LED 灯,所以如果代码被执行了,就可以看到灯的闪烁。/ E/ ?* M* J# K# c3 d

, H2 h- H5 C9 F" ]. |. c. |二、程序解读
0 {0 T/ ]0 T7 n) T- Q连接好调试工具 STLINK,8 y. D7 S+ Y! }

) k  o; k/ @( e, g! }2.1/ IAR 编译环境# C# v* x1 o; d
程序能够正常下载,而且能够执行,可以看到对应的 LED 灯的闪烁。
+ \1 o/ W* E2 B. C2 K' ~$ |( Q2.2/ Keil 编译环境; M, i8 d5 w2 h8 P0 v/ M- X
使用 Keil 的编译环境下载,确实能够下载,但是入口的地址是如下黄色的那行显示所示,如果单步执行(F11)或全速运行(F5),程序始终在原位置不动(0x1FFF4252),
, t9 @0 U8 a: l; }( n3 W6 H如果强制的将 PC 指针的值和 SP 的值修改为 0x8000000 与 0x2000000,然后在点击运行,则能够跑到 main()函数,再全速运行,能够看到客户板子上的 LED 灯的闪烁。
/ h: |& t% g$ F  X) y( s* T但是如果不强制修改 PC 和 SP 指针的值,则程序不执行。6 _7 b" o6 o( }& C3 D

# }# {5 {4 v2 N( U9 I M3AW32{]FHMC`L5U86DG%{G.png
$ F3 {/ \8 u6 R7 p- M7 h
( b8 X, |9 g% {& Q1 y) R& V. t& D$ U所以问题就变成为什么程序下载进去后的地址是 0x1FFF4252 ?0x1FFF4252 又是什么地址呢?
' J$ ^* Z- `9 [$ S查阅相应的手册,. }. [( @& Y1 ~- j
" f; p+ A. n3 [* M7 B3 w1 m
, z7 f7 U" W2 @- y* c
]SK@2NQQVG624MFT02`9T1X.png ) Y7 M4 [: a) X/ \

# l& O' _4 B  a/ p  J: G发现 0x1FFF4252 是处在了 System memory 区域。
" ?4 `5 K( ~# `+ f咨询了客户,他们设计的是程序从 Flash memory 区域启动的而且程序中没有对 Option Byte 进行配置,那问题就很清楚了,用万用表测量了客户板上的 Boot 0 引脚的电平,发现电平不对,达到 1.6V,这么高的电平可以被视为高电平了。$ l* P$ ^5 e" U6 z4 k* w
. i$ c  R  v3 z
8CE2B3GPNR)}`$NLBBY%N9P.png
- E8 {8 c+ \, N# Z2 l2 U1 {0 U) ]! n( i: a. [7 @  K& z
对照客户的原理图,原来 Boot 有上拉和下拉的电阻,焊接的时候将这两个电阻都焊接上去了,去掉上拉电阻,使的 BOOT0的引脚接地为低电平,再编译下载进入 Keil 的环境,程序能够被正常执行了。问题找到了。
$ a) B' G# O% V3 P( D对于最初的测试,硬件相同,软件相同,然而 IAR 可以正常运行,KEIL 却不能执行,不解,可以 IAR 编译环境的设置比较智能: B5 e" {7 \$ P& v/ Y/ Y4 ?

  i1 i: P' K  S, O6 E1 f
收藏 评论0 发布时间:2022-2-28 19:48

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版