在程序中使用以下代碼進入用戶級
__asm void CortexM3_UserLevel(void)
{
MRS? ? ?R0, CONTROL
ORR? ? ?R0, R0, #0x01? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
MSR? ? ?CONTROL, R0
}
該程序執(zhí)行完后會回到啟動文件中?LDR? ? ?R0, =SystemInit 處。從而再次執(zhí)行初始化代碼,又因初始化代碼中會訪問內(nèi)核寄存器如SYSTICK 及NVIC部分,從而導(dǎo)致HardFault。
從調(diào)試現(xiàn)象推斷用戶級配置是成功的,但不知為什么會跳轉(zhuǎn)?LDR? ? ?R0, =SystemInit 處。同樣方法在別的CM3芯片使用是可以正確運行的。