我在目录F:\ti\pdk_am57xx_1_0_17\packages\ti\boot\sbl\board\idkAM572x中找到了sbl_main.c源代码,在目录F:\ti\pdk_am57xx_1_0_17\packages\ti\boot\sbl\src\mmcsd中找到了从SD卡引导所需的一些基本函数,然后花了几天时间,创建了SDBOOT工程,我的设想是:PDK里面提供了SBL源代码,那我就可以在CCS里面以裸机的形式创建一个BOOT源代码工程,得到一个从SD卡引导的MLO可执行二进制文件。
以上设想不知道方向是否正确。
工程成功的编译通过,得到了.out文件,然后使用调试器让板子进入调试模式,程序初始化部分可以正常运行,能点亮板子上的LED,之后程序异常,出现异常,我猜测是因为这个工程得到的可执行程序是要在SD卡中引导并运行的,而我为了验证程序本身是否正确,是通过调试器来运行的,运行程序的环境不同,所以初始化完毕后程序就异常了。以上是我个人猜测,不知道理解是否正确。
然后根据Processor SDK RTOS for AM57X_06_03_02的使用手册中提供的方法做如下操作:
第一步,使用目录F:\ti\pdk_am57xx_1_0_17\packages\ti\boot\sbl\tools\out2rprc\bin中的可执行程序out2rprc.exe将工程的.out文件转换成二进制文件
第二步,用目录F:\ti\pdk_am57xx_1_0_17\packages\ti\boot\sbl\tools\multicoreImageGen\bin中的可执行程序MulticoreImageGen.exe将第一步转换得到的二进制文件再转换成最终的二进制映像
第三步,将第二步得到的最终的二进制映像复制到SD卡,并重命名为MLO,然后将卡插入板子,板子上电,板子无任何反应
该板子提供了MLO文件,该文件在同一个SD卡中能将板子启动起来,PC端串口助手能打印出SBL的基本信息,板子上的LED有变化。
以上我所遇到的问题,不知道是哪个步骤引起的,望TI的工程师给予帮助,谢谢!

