boot是单线程,是自己实现的一个引导程序,起始地址为0x0
版本里面跑了个freertos,该版本放在0x10000的地址。
boot跑完之后会强制跳到版本的地址(0x10000),会重新设置各个模式的堆栈空间以及ram空间初始化,拷贝中断向量和remap。
进入版本的main之后,需要进行任务切换,比如通过软中断来实现taskswitch,但是之后问题就很奇怪,整个cpu进入了一种“假死”状态,不知道在干吗,但是经过1分舵钟后,又全部恢复正常,很不明白
而且同样的版本代码,如果直接放到0地址的话,一切正常
被这个问题折磨的有段时间了,不知道大家能不能给一些建议,谢谢了 |