打印
[技术问答]

HC32单片机

[复制链接]
148|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
robertesth|  楼主 | 2024-9-25 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

死机现象:HC32L130 Cortex-M0出现所有的中断都进不去,主循环能正常运行,定时器和IO等都能正常运行
发现一个规律:
a. AD采样率10KHz,用DMA接收串口数据,串口中断和DAM中断都没开,出现死机。
死机情况串口和DMA都没有错误标志,DMA传输计数和内存地址都正常变化,说明DMA传输本身没有问题。
b. AD采样率10KHz,不用DMA,用串口中断接收数据,不出现。
c. AD采样率500Hz,用DMA接收串口数据,串口中断和DAM中断都没开,不出现。

通过各种实验得出结论:cpu负荷重情况下,(可能总线错误)导致复位,此时复位标志为0x00,系统能进主循环,但所有中断都不能进。
查资料M3有总线错误异常中断,M0没有。

解决方案:通过判断复位标志00进行一次软复位,或者通过主循环读取定时器做监控异常进而软复位。

#4) 最后原因是:触发了ADC中断标志但没能进入中断服务,一直占据中断资源。

0x28对应ADC中断号40。
正常逻辑:只有在中断ISR才能读取到中断号,在退出中断后该中断状态为0。
说明发生了ADC中断,但没有触发进入中断服务。ADC中断优先级是最高的,占据了中断资源导致其他中断无法进入。

转自https://blog.csdn.net/tan_420727915/article/details/135764831


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

1121

帖子

0

粉丝