你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
F103经常死机问题
[复制链接]
wildeer
提问时间:2019-5-17 18:26 /
问答
是否解决:
使用64脚F103RC,经常死机,调试发现经常死在中断列表的最后一行,B. (如下位置),不知为何?我开始以为是开中断后因为某种原因触发中断管脚所致,后来关闭所有中断还是这样,就不知所以了。
这个B.代表什么?在很多地方也都看到,偶尔也会死在其他地方B.,但从来不知道何故,哪位大侠指点一下,
赞
0
收藏
0
评论
19
分享
发布时间:2019-5-17 18:26
举报
请先
登录
后回复
19个回答
aiherong
回答时间:2020-2-21 04:07:00
a0a.1 32b0c
各楼把能想到的都挑出来了……
在下补充一个老生长谈的话题: 看看你的程序中有没有用到printf(),如果有,就要打开USART1(具体重定向到哪,可查看fput),既然你关闭所有中断问题依旧,这种可能更大了
你所说的B.是S文件临时对中断处理所作的弱函数(一个死循环),如果老在该区域说明有打开的中断没有写相应的中断处理函数,故而跳到缺省的弱函数那里
赞
0
评论
回复
支持
反对
aiherong
回答时间:2020-2-21 03:54:46
a0a.1 32b0c
各楼把能想到的都挑出来了……
在下补充一个老生长谈的话题: 看看你的程序中有没有用到printf(),如果有,就要打开USART1(具体重定向到哪,可查看fput),既然你关闭所有中断问题依旧,这种可能更大了
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2020-2-20 17:47:05
a0a.1 32b0c
建议在官方软件库的工程模板上开发程序吧,有现成标准的平台可用,交流起来也规范。自己单独建项目工程需要了解的知识点很多,遇到问题也是千奇百怪的,所以官方的统一平台有很多好处
赞
0
评论
回复
支持
反对
tyhjrwx2011
回答时间:2019-5-17 20:22:44
a0a.1 32b0c
看一下堆栈,看看哪里跳过来的,就能找到了
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
edmundlee
回答时间:2019-5-17 22:51:41
a0a.1 32b0c
这说明你使能了某些中断, 但又没给这中断定义服务函数
b == branch 跳转的指定, 这里的意思等同于while(1);
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
byronsong
回答时间:2019-5-18 07:36:23
a0a.1 32b0c
启动文件跟mcu型号对得上吗?
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
maxtch
回答时间:2019-5-18 08:44:30
a0a.1 32b0c
检查一下是不是触发 HardFault 了。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
tanic
回答时间:2019-5-18 09:00:22
a0a.1 32b0c
1.用对应.s文件(开发平台、芯片类型)
2.换了.s,clean一下
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
废鱼
回答时间:2019-5-18 09:11:53
a0a.1 32b0c
楼主,仿真一下,然后通过看寄存器的值确定一下是哪个函数导致进入的错误。
可以参考一下:
http://blog.csdn.net/u013181595/article/details/69523331
评分
参与人数
1
蝴蝶豆
+3
收起
理由
STMCU
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
xiaolingoei
回答时间:2019-5-18 10:13:47
a0a.1 32b0c
两个方向:
软件:堆栈、内存溢出。例如:看看是不是函数的数组设置小了,或者数据类型设置不对
硬件:某几个功能IO没有焊接好,CPU输出输入无响应。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
Kevin_G
回答时间:2019-5-18 11:47:44
a1024a.1 32b0c
挑飞了
赞
0
评论
回复
支持
反对
wildeer
回答时间:2019-5-19 09:46:42
a0a.1 32b0c
如下是捕捉到的死机界面,怎么分析问题在哪?请大侠指导
本帖最后由 wildeer 于 2019-5-19 09:48 编辑
d:\\stm32\死机问题2.png
赞
0
评论
回复
支持
反对
edmundlee
回答时间:2019-5-19 18:10:39
a0a.1 32b0c
wildeer 发表于 2019-5-19 09:46
你已经跑到非代码区了, 分析Fault Reports已经没意思, 点开Call Stack 看整个调用的路径, 才能找到问题
赞
0
评论
回复
支持
反对
wildeer
回答时间:2019-5-20 11:01:07
a0a.1 32b0c
初步定位是一个变量没有初始化所致,跑了几小时没有再出现,但有待观察,问题出现的概率比较低
赞
0
评论
回复
支持
反对
大陶
回答时间:2019-5-20 18:32:49
a0a.1 32b0c
是不是使能中断了,但是没有给出中断响应函数?
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
zhangyg0001-262
回答时间:2019-5-21 09:40:24
a0a.1 32b0c
问题解决了吗?
赞
0
评论
回复
支持
反对
harvardx
回答时间:2019-5-23 14:00:07
a0a.1 32b0c
ARM有时候就是这样啰嗦.....
赞
0
评论
回复
支持
反对
1
2
/ 2 页
下一页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
在下补充一个老生长谈的话题: 看看你的程序中有没有用到printf(),如果有,就要打开USART1(具体重定向到哪,可查看fput),既然你关闭所有中断问题依旧,这种可能更大了
你所说的B.是S文件临时对中断处理所作的弱函数(一个死循环),如果老在该区域说明有打开的中断没有写相应的中断处理函数,故而跳到缺省的弱函数那里
在下补充一个老生长谈的话题: 看看你的程序中有没有用到printf(),如果有,就要打开USART1(具体重定向到哪,可查看fput),既然你关闭所有中断问题依旧,这种可能更大了
评分
查看全部评分
b == branch 跳转的指定, 这里的意思等同于while(1);
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
2.换了.s,clean一下
评分
查看全部评分
可以参考一下:http://blog.csdn.net/u013181595/article/details/69523331
评分
查看全部评分
软件:堆栈、内存溢出。例如:看看是不是函数的数组设置小了,或者数据类型设置不对
硬件:某几个功能IO没有焊接好,CPU输出输入无响应。
评分
查看全部评分
如下是捕捉到的死机界面,怎么分析问题在哪?请大侠指导
d:\\stm32\死机问题2.png
你已经跑到非代码区了, 分析Fault Reports已经没意思, 点开Call Stack 看整个调用的路径, 才能找到问题
评分
查看全部评分