本帖最后由 xyzjacky 于 2018-6-8 17:56 编辑
好奇怪,我在我的产品上(STM32F103RET6),运行GUI_demo的代码,没有问题,
我把该工程改成我开发板上的MCU(STM32F103ZET6),然后来跑,就只显示了第一个画面,后面就不动了?
于是我开始debug,发现OS_TimeMS加到0x1c21就不动了。然后我就改OS_TimeMS
原先的定义是extern volatile int OS_TimeMS;
现在改成extern int OS_TimeMS;
完成后再debug,OS_TimeMS倒是一直在加,可画面显示完第一下,就不再动了。就是下图这个画面。
如果说代码有问题,那肯定不该,因为在产品的硬件上都跑得好好的。如下图,
好生奇怪,我估计应该是和内核有关,否则
原先的定义extern volatile int OS_TimeMS; OS_TimeMS在ZET6上加到0x1c21会死掉,在RET6上就正常。
后面改成extern int OS_TimeMS; OS_TimeMS不再死掉,画面却还是不动。
下图是两种芯片的主要区别
请问有哪位大神能解释一下。
补充:
下午让开发板多debug了一会儿,发现一旦OS_TimeMS计数到0x1c21,它就死到HardFault_Handler();里面,但是不知道从哪里死进去的。
|