你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
ST意法半导体中文论坛
»
论坛
›
【技术区】
›
STM32
›
【实战经验】STM32F411CEUx 能下载程序但不能执行 ...
返回列表
查看:
1675
|
回复:
0
【实战经验】STM32F411CEUx 能下载程序但不能执行
[复制链接]
zero99
zero99
当前离线
在线时间
2551 小时
UID
3286061
ST金币
0
蝴蝶豆
1
注册时间
2016-6-1
1182
主题
3785
回帖
1
蝴蝶豆
论坛元老
最后登录
2020-3-17
收听TA
发消息
发表于 2016-6-28 14:20:13
|
显示全部楼层
|
阅读模式
a0a.1 32b0c
STM32F411CEUx 能下载程序但不能执行
前言
某客户和我们反应他们制作回来的板子,能下载程序但是程序执行不了。
一、复现现象
硬件是:客户自己设计制作的板子。上面是STM32F411CEUx的芯片
软件版本是Cube库中的:基于问题是能下载程序,但是代码执行不了,所以自己用Cube生成了一个项目工程,主函数里面就是GPIO口的翻转,正好客户的板子上有LED灯,所以如果代码被执行了,就可以看到灯的闪烁。
二、程序解读
连接好调试工具STLINK,
2.1/ IAR编译环境
程序能够正常下载,而且能够执行,可以看到对应的LED灯的闪烁。
2.2/ Keil编译环境
使用Keil的编译环境下载,确实能够下载,但是入口的地址是如下黄色的那行显示所示,如果单步执行(F11)或全速运行(F5),程序始终在原位置不动(0x1FFF4252),
如果强制的将PC指针的值和SP的值修改为0x8000000与0x2000000,然后在点击运行,则能够跑到main()函数,再全速运行,能够看到客户板子上的LED灯的闪烁。
但是如果不强制修改PC和SP指针的值,则程序不执行。
所以问题就变成为什么程序下载进去后的地址是0x1FFF4252 ?0x1FFF4252又是什么地址呢?
查阅相应的手册,
发现0x1FFF4252是处在了System memory区域。
咨询了客户,他们设计的是程序从Flash memory区域启动的而且程序中没有对Option Byte进行配置,那问题就很清楚了,用万用表测量了客户板上的Boot 0引脚的电平,发现电平不对,达到1.6V,这么高的电平可以被视为高电平了。
对照客户的原理图,原来Boot有上拉和下拉的电阻,焊接的时候将这两个电阻都焊接上去了,去掉上拉电阻,使的BOOT0的引脚接地为低电平,再编译下载进入Keil的环境,程序能够被正常执行了。问题找到了。
对于最初的测试,硬件相同,软件相同,然而IAR可以正常运行,KEIL却不能执行,不解,可以IAR编译环境的设置比较智能
文档下载地址:
https://www.stmcu.org.cn/document/list/index/category-1011
实战经验汇总:
https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html
实战经验
<
回复
使用道具
举报
返回列表
浏览过的版块
ST开发工具
问答
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表