OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3310|回复: 2

带UCOSII移植emwin死机问题,在OSStart()中进入hard_fault

[复制链接]

2

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
246
金钱
246
注册时间
2018-8-8
在线时间
44 小时
发表于 2020-4-19 15:28:24 | 显示全部楼层 |阅读模式
5金钱
我用战舰V3开发板在UCOSII模板工程的基础上移植了emwin,运行后发生死机现象。debug模式跟踪了一下之后发现程序在执行到os_cpu_a.asm中OSStartHighRdy的最后两行死循环时进入hard_fault(没有等到pendSV产生)。
翻遍论坛上类似的帖子都未找到解决方法,此前使用该UCOSII模板工程也从未出现这种问题,麻烦大佬帮忙解答一下,感激涕零!

emwin_test1.rar

15.95 MB, 下载次数: 32

最佳答案

查看完整内容[请看2#楼]

已解决,原因是由于指针操作失误使得CPU访问到了0x00000000。 查找方法是在debug模式中通过peripherals->fault report查看cortex-M3内核故障相关寄存器。窗口显示HFSR的FORCED置位、BFSR的 BFARVALID和PRECISERR置位。这说明hard_fault是由总线故障中的“精确数据访问违例故障”上访导致的。通过查看SCB->BFAR得到非法访问的地址0x00000000。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
246
金钱
246
注册时间
2018-8-8
在线时间
44 小时
 楼主| 发表于 2020-4-19 15:28:25 | 显示全部楼层
已解决,原因是由于指针操作失误使得CPU访问到了0x00000000。
查找方法是在debug模式中通过peripherals->fault report查看cortex-M3内核故障相关寄存器。窗口显示HFSR的FORCED置位、BFSR的 BFARVALID和PRECISERR置位。这说明hard_fault是由总线故障中的“精确数据访问违例故障”上访导致的。通过查看SCB->BFAR得到非法访问的地址0x00000000。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-4-20 01:11:21 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表