对于M3系列的芯片,查找硬件错误中断的方法: 出现问题时排查的方法: 发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。由于异常发生时,内核将R0~R3、R12、LR、PC、XPRS寄存器依次入栈,其中LR即为发生异常前PC将要执行的下一条指令地址。 注意:寄存器均是32位,且STM32是小端模式。(参考Cortex-M3权威) DEBUG如下图 SP值为0x20008560,查看堆栈里面的值依次为R0~R3、R12、LR、PC、XPRS, 例如R0(10 27 00 00), 显然堆栈后第21个字节到24字节即为LR,该地址0x08001FFD即为异常前PC将要执行的下一条指令地址(即StackFlow()后面的语句处 RCC->CR &= (uint32_t)0xFFFBFFFF)
通过查看硬件错误中断时寄存器的值来判定错误出现的位置。 上面这是M3的方式,但是这样的方式在M4或M7同样适用么?我没找到相关的权威指南来支持此种方式。 对于M4,M7各位你们是怎么查找硬件错误中断的呢? |
请问 Stm32 哪款芯片比较适合跑ai?
STM32F769I-DISCO各种板载芯片的引脚图应该去哪找,数据手册上好像没看到?
stm32f767zi 以太网无法接收问题
STM32F103C8T6 有没有过UL认证?
STM32F723ZET6 定时器输入捕获通道的GPIO不能上拉
stm32f746g-disco开发板的串口通讯连接方式
STM32F746g-disco开发板串口配置串口助手无法接收到数据
STM32cubemx使用x-cube-ai转换lstm报错NOT IMPLEMENTED?
STM32F765ZGT6搭配PHY芯片出现死机现象
STM32CubeMX如何配置x-cubeMX-ai?
理论上只要知道LR的值就可以大概定位出错位置了吧
但是我通过这样的方式也是没法
__asm void wait()
{
BX lr
}
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
wait();
}
在线调试时在wait函数打断点,运行到这时单步进入,可是一直提示内存访问不到cannot access memory
这个就无从帮忙了!!!