TI中文支持网
TI专业的中文技术问题搜集分享网站

TCI6487 EmacBoot启动问题

6487的3个核都运行SYS/BIOS,用ccs加载out文件正常,但是打包成bin文件通过Emac加载,core0可以正常启动,其他两个核PC在0x800000,指令为IDLE

请教一下,我的代码缺少了什么,怎么让其他两个核出IDLE?

有没有相关调试经验的,麻烦指导一下,谢谢~~

King Wang1:

这个是因为core1和core2的base address(如0x11800000和0x12800000)的值是0.

core0发现其余core的base address为0时,就会将IDLE写到其余两个core的base address位置,然后将其余两个core唤起,这就造成了你看到的状态。

xiaomin zhang1:

回复 King Wang1:

怎么解决呢?

之前编的版本无法启动,挂上仿真器看L2的起始地址没有跳转到_c_int00的代码,查了些资料将vecs段放到了0x10800000,0x11800000和0x12800000,

但是这个跳转指令前确实有三个NOP,所以就造成了现在两个核进入IDLE了。

具体需要怎么解决?

非常感谢~~

King Wang1:

回复 xiaomin zhang1:

你在把core1和core2的out文件制作为boot table的时候需要加上 -e _c_int00的选项,保证你的_c_int00的地址在你制作的btbl文件的最前面。

当然,每个core都有_c_int00的函数,肯定不是NOP和0.

xiaomin zhang1:

回复 King Wang1:

hex6x转换时是加了-e _c_int00选项的,制作的btbl文件最前面的是cinit段,我尝试过哪个段在前面和sections中的顺序也没有关系,按照什么顺序排列的我不太清楚?

而L2地址最前面是vecs段,vecs段最前有是3个Nop,然后才会跳转到_c_int00。

赞(0)
未经允许不得转载:TI中文支持网 » TCI6487 EmacBoot启动问题
分享到: 更多 (0)