你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
在下补充一个老生长谈的话题: 看看你的程序中有没有用到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 看整个调用的路径, 才能找到问题
评分
查看全部评分