进入HardFault的原因之一

原来运行正常的程序,想仿真一下,没想到程序下载下去后直接进入HardFault_Handler()
中断,停在 LDR R0, =SystemInit ,
main()都进入不了,怎么回事?

查了好多关于HardFault 资料,都是讲原理和怎么定位错误位置的,我这错误位置知道了,从register中也能看出是总线错误,但是具体是怎么出的错搞不懂,况且这个程序一直
是正常使用的。

后来想到这块板子应该是加密过的,再下载程序应该先unlock,以前我都是用 j-flash stm32 unlock 程序,先unlock以后才能下载,进行仿真的,于是先unlock一下,再仿真,果然
正常了。

为什么以前对于加密以后的片子下载会提示下载失败,下不进去,而现在则能直接下载进去呢? 难道是因为我用了新版的keil? 我现在用的是uVision V5.28版。

你可能感兴趣的:(进入HardFault的原因之一)