在程序中使用以下代码进入用户级
__asm void CortexM3_UserLevel(void)
{
MRS R0, CONTROL
ORR R0, R0, #0x01
MSR CONTROL, R0
}
该程序执行完后会回到启动文件中 LDR R0, =SystemInit 处。从而再次执行初始化代码,又因初始化代码中会访问内核寄存器如SYSTICK 及NVIC部分,从而导致HardFault。
从调试现象推断用户级配置是成功的,但不知为什么会跳转 LDR R0, =SystemInit 处。同样方法在别的CM3芯片使用是可以正确运行的。
热门产品 :
CH397: 高集成度、低功耗USB网卡芯片