Other Parts Discussed in Thread: OMAP-L138, SYSBIOS
由于备份程序的需要,避免在线更新程序过程中断电导致程序不可运行的情况,我需要开发基于OMAPL138的bootloader,用的是创龙的开发板,自己根据OMAP-L138_FlashAndBootUtils_2_40中的UBL例程改写了boot程序,我的具体方案如下:
(1)boot程序支持串口烧录,支持从nand中启动;
(2)boot程序放在0x8000000开头的shared ram中运行,应用程序在boot的过程中从nand flash拷贝到DDR上运行;
(3)boot程序通过TI提供的AISGen工具生成固件,应用程序生成AIS格式的bin文件或者是hex文件;
目前的情况是,boot程序已经能够解析存储在nand flash中的AIS格式的bin文件或者是hex文件,用一个GPIO控制灯闪烁的程序烧录到nand flash中,可以正常boot并跳转到app程序中运行。但是当运用程序使用到sysbios系统时,程序跳转之后会出现跑飞的情况(刚跳转过去后PC指针指向的地址是正确的,后面会出现跑飞的情况),请问有没有人出现过类似的情况?是什么情况会导致跑飞,或者说boot基于sysbios的应用程序是否需要进行特殊的设置?还有就是如何定位程序是在哪跑飞的?
目前我个人比较怀疑的点有两个:(1)boot程序和应用程序地址上有冲突,但目前两个程序完全是在两块不同的地址上运行的;(2)boot完成后,在跳转到sysbios的应用程序前是否需要进行特殊的初始化
这个问题已经困扰我好久了,希望做过相关内容的朋友帮忙定位一下问题,不胜感谢!