出问题 初始化ucosiii_uCOSIII“内核管理中断优先级配置引发的问题”

在将音乐播放器移植到UCOSIII平台时遇到宕机问题,主要发生在MemManage_Handler和HardFault_Handler中断。经调试发现,问题出在DMA中断抢占式优先级配置。解决方法是将DMA中断优先级设置为≥4,以避免与uCOSIII内核管理的中断冲突。原因涉及到uCOSIII内核管理中断与非内核管理中断的优先级分界线,该分界线由CPU_CFG_KA_IPL_BOUNDARY宏定义决定。
摘要由CSDN通过智能技术生成

1、问题描述

在stm32h743平台上测试裸机版音乐播放器循环播放音乐正常,将驱动文件sai.c和wm8978.c移植到UCOSIII(版本V3.07.03)+emWin+FatFs平台上制作音乐播放器。测试时,一曲歌还没播完就出现了宕机(每次出现时间不一样)。

2、调试步骤

调试发现,宕机大部分时候进入的是MemManage_Handler,极少数时候进入HardFault_Handler。

2-1、MemManage_Handler调试

调试 MemManage_Handler 时,IACCVIOL 报错潜在的原因如下

1、跳转到一个没有在MPU定义或不可执行的区域

2、由于栈的事故造成返回值无效

3、在异常向量表的不正确入口

定位到故障代码位置,显示汇编的地址为0x41BFFFEE,如图1

图1

采用KEIL故障异常分析手册【AN209, Summer 2017, V 5.0】中介绍的调试方法,如图2

图2

看到发生中断前的PC指针指向地址为0X41C00000,指向一个未知区域,如图3、图4

图3

图4

2-2、HardFault_Handler调试

偶尔进入的HardFault_Handler,指向的位置如图5

图5

怀疑过MPU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值