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

C6678 bootload过程

您好:

我想知道c6678在上电的时候如何将8个核的.ou文件加载到每个核?

谢谢

si cheng:

回复 King Wang:

8个核的的.out文件在烧写到flash前,是否会先合并成一个.out文件?如果是,core0 boot 时,是否会将合并成的.out文件全部一次性的加载到core0内,然后再将其他核的代码和数据分别分发给其他的核? 如果是,c6678的bootload.asm和其他单核型号的DSP(比如C6455)的bootload.asm是否是一样的?

King Wang:

回复 si cheng:

这个与用户的具体实现相关。

所有out文件可以一次性烧到flash里面,然后加载;也可也只加载core0的out文件,然后启动core0后再通过主机与core0交互(主机将其余out文件信息发送给core0)完成对其余核out文件的加载。

bootload的代码应该基本是类似的,可能由于增加boot方式而增加了部分代码,但主体功能相同。

si cheng:

回复 King Wang:

King Wang,您好:

我现在是想从flash启动,有以下几个问题:

1.您说的所有的out文件是指8个核的out文件合并后的out文件还是分别将每个核的out文件烧写到flash?

2.合并后的out文件的table格式是原来的单核的那种格式还是将8个out文件的table格式合并成一个了?

3.您说的只加载core0的out文件,然后启动core0后再通过主机与core0交互。您这里的主机是指什么?如果先加载core0,其他的核的启动信息存放在哪?

4.二级加载时,C6678 启动的时候,DMA控制器会去flash的起始地址拷贝多少的启动程序?c6455是1KB。

非常感谢!

si cheng:

回复 si cheng:

您好:

好多天了,怎么还没人回复啊?

King Wang:

回复 si cheng:

si cheng:

您好,很抱歉这么久才回复。

问题1和2是同一个问题:每一个out文件可以对应一个boot table,多核的多个boot table可以合成到一起(但是在cmd文件里面需要写物理地址)。这种合并的table还是一个table,你可以理解由于多个table的物理地址不同,多增加核只是增加table中对其他core的地址的赋值。

问题3:主机是指可以跟DSP通信的东西,比如Ethernet boot,需要主机向DSP发送Ethernet packet,SRIO boot时也需要主机向DSP发送SRIO packet. 先加载Core0,其他信息可以保存在主机里面。等到core0起来之后,可以通过正常通信的方法加载。

问题4:我在C6678的手册中没有找到,我还在询问其他同事,等到确定后我再给您答复,很抱歉!

谢谢!

si cheng:

回复 King Wang:

King Wang ,您好:

单核boot table表的格式:c_int00地址,第一个段的大小,第一个段的地址;第二个段的大小,第二个段的地址。。。

按照您的说法:由于多个table的物理地址不同,多增加核只是增加table中对其他core的地址的赋值。合并后的table 也就是将8个核的table分别存放到了不同的物理地址吗? 如果是,2级bootload程序最后跳转到的c_int00地址是哪个核的c_int00地址?

谢谢!

King Wang:

回复 si cheng:

si cheng:

首先,各个核的内存应该是不重叠的,这样就能把所有table叠加在一起;

其次,bootload都是在core0上执行的,所以跳转地址应该是core0的地址,然后通过core0将其余core触发。触发的方法就是可以是写其余core的MAGIC_ADDRESS,也可以通过IPC发送核间中断触发。

谢谢!

si cheng:

回复 King Wang:

King Wang ,您好:

bootload将所有核的程序数据加载到各自核内后,core0是先写其他核的MAGIC_ADDRESS地址,让其他核先执行,然后在跳转到C_int00;还是先跳转到c_int00,进入main函数,再写其他核的MAGIC_ADDRESS地址触发其他核执行?这两种方式会导致每个核不是同一时刻启动。

谢谢!

Yu Liu:

回复 si cheng:

si cheng,

如果核0链接的是TI编译器的默认入口,就需要到main函数才可用起动别的核。

也可用将编译器入口源码boot.asm加入工程,修改从入口开始的汇编代码提前启动别的核。

你的理解没有问题,两种方法起动其他核时间稍有不同。

赞(0)
未经允许不得转载:TI中文支持网 » C6678 bootload过程
分享到: 更多 (0)