CH32f103c8t6 不能正确进入用户级工作

在程序中使用以下代码进入用户级

__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芯片使用是可以正确运行的。

您好,同是ARM内核,正常应该不会有区别的,可将你的测试代码发到我的邮箱(lzs@wch.cn),我这边对比测试看一下。我这边在main函数切换至用户级,同一程序在我们CH32F103和STM32测试都是没问题的。


感谢您的回复,调整后测试相应功能已正常,是自己在文件中应用汇编方法不正确导致。


只有登录才能回复,可以选择微信账号登录