
Cortex-M
文章平均质量分 94
逐梦,无惧!
心有多大舞台就有多大!!
展开
-
RT-Thread使用CmBacktrace进行HardFault_Handler 追踪
大家在用STM32的时候有没有遇到过HardFault的问题呢:下面针对这个问题做个小总结。现象还原:在debug模式下进行仿真调试,全速运行再停止运行,程序会跑到 HardFault_Handler函数中,产生 HardFault,即硬错。其产生的原因大概有如下几类: (1)数组越界操作; (2)内存溢出,访问越界; (3)堆栈溢出,程序跑飞; (4)中断处理错误;针对HardFault问题的定位,网上有几种方法,大概都是围绕着:在debug模式下,查看一些地址,分原创 2020-10-24 15:30:54 · 4796 阅读 · 0 评论 -
关于 Cortex-M3 的双堆栈机制
寄存器简介Cortex-M 系列 CPU 的寄存器组里有 R0~R15 共 16 个通用寄存器组和若干特殊功能寄存器,如下图所示。下图中我看可以看到MSP和PSP两个堆栈指针寄存器。通用寄存器组里的 R13 作为堆栈指针寄存器 (Stack Pointer,SP);R14 作为连接寄存器 (Link Register,LR),用于在调用子程序时,存储返回地址;R15 作为程序计数器 (Program Counter,PC),其中堆栈指针寄存器可以是主堆栈指针(MSP),也可以是进程堆栈指针(P.原创 2020-06-23 17:19:18 · 3125 阅读 · 0 评论