求教: 如何清除BusFault状态?

2019-12-10 18:14发布

读取地址越界, 需要程序判断出错误, 报错后继续正常运行.

现在是会进入BusFault中断, 在BusFault_Handler里清除了SCB->CFSR的PRICISERR位, 但还是不断重复进入BusFault中断. 请问怎么恢复到正常执行状态呢...
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
tomzbj
2019-12-11 00:40
chencc8 发表于 2019-9-30 10:19
那就在读取地址之前,先判断地址有没有越界。比如在带有这个读取地址操作的函数里,对传入的地址参数进行判 ...

其实是这样, 一哥们做了个通用的bootloader, 在里面实现了读取任意地址之类的功能. 不过他在商业产品上用的, 我没法拿来用, 于是打算自己实现一遍.
因为要在不同型号的MCU上运行, 没法事先知道外设地址之类是否合法, 所以只能是进BusFault了再清除.

没关系, 我暂时做成进BusFault了先输出错误信息, 然后直接NVIC_SystemReset, 也算是解决问题了.

一周热门 更多>