启动STM32我尝试为指针指向的结构分配内存。
TLxbEvents *LxbEvents
memset((void*)LxbEvents, 0, sizeof(TLxbEvents));
查看反汇编,它总是在行
崩溃STMCS r0!,{r2-r3,r12,lr}
我无法在ARM网站或Google或其他地方找到描述STMCS指令的文档...... 那时的寄存器是
r0 0x2000D694
r2 0x00000000
r3 0x00000000
r12 0x00000000
lr 0x00000000
我试图将调用转移到另一个例程,没有任何更改,检查对齐,这似乎也没关系。每当程序运行到该行时,它就会因HardFault崩溃而根据一些调试变量,它是由看门狗复位引起的,我不相信......
这条线做了什么,有人知道,是什么导致了硬故障?
答案 0 :(得分:2)
STMCS
是ARM指令(基本指令是STM
而CS
是conditional instruction suffix)看来你是在ARM模式下编译你的代码,但是STM32是一个Cortex-M内核仅支持Thumb-2指令集变体。仔细检查您构建设置和编译开关。