
对于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各位你们是怎么查找硬件错误中断的呢? |
STM32F723ZET6配置内部USB PHY的高速模式,初始化的时候usb init无法通过,要怎么修改配置呢?
训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
【STM32F769I-DISC1】LVGL在使用SPI_DMA数据发送时出现错误。
STM32F769I-DISC1的内存地址映印射如果查找
TouchGFX4.25.0 生成工程代码时报TouchGFX CMake projects only support ARM GCC toolchain.
求助
STM32F767+DP83848 LWIP+UDP 大量数据分片发送问题???
请问有STM32F750型号的芯片原理图嘛?
STM32F7中FMC接多个通信外设
求问STM32F中GPIO模拟FMC能达到的通信速率
理论上只要知道LR的值就可以大概定位出错位置了吧
但是我通过这样的方式也是没法
__asm void wait()
{
BX lr
}
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
wait();
}
在线调试时在wait函数打断点,运行到这时单步进入,可是一直提示内存访问不到cannot access memory
这个就无从帮忙了!!!