问题:软仿真无误,硬仿真时系统启动出错
环境:stm32f103ze,rt_thread4.02
出错截图:
硬仿真卡在此界面
结束运行后进入处理函数
一、首先你对STm32的裸机系统时钟启动过程不太了解;建议你使用原子的视频多看看启动过程,最好和STM官方系统章节资料(重点是功能、寄存器)进行学习;
二、这里有一篇写的不错的关于RT-THread移植到STM32的过程;根据这个过程也可以移植到GD32上(已实验成功)。https://blog.csdn.net/vision666/article/details/90693343
三、官方的移植过程也有相应的教程:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/an0038-nano-introduction
四、最后回答你的问题:外部晶振应该没有配置成功
五、建议:不建议使用软件仿真,具体原因就是使用完硬件仿真,再软件仿真调试会卡在SystemInit()这里,因为SystemInit()函数中需要等待PLL环稳定,但是软件仿真哪来的晶振使PLL稳定,最后还需要在调试时直接寄存器配置完成这个过程(网上提供的说法,我是没成功),最后就弃用了;
找了下,是这个函数的问题,,。
它进了timeout的判断,ret得到的的返回值依然不是hal_ok