This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6678跳转到 C6678的NOR flash boot起始地址为0x70000000的问题



您好:

我在看了这份帖子后有几个疑问想请各位专家解答一下。

www.deyisupport.com/.../5939.aspx

(1)EMIF16 boot/NOR flash boot,ROM bootloader不需要搬移任何的数据,因为NOR flash是XIP(execute in place)设备。ROM bootloader做完基本初始化以后,直接跳转到NOR flash的起始地址开始运行。(C6678的NOR flash boot起始地址为0x70000000)

疑问:(a) 在原理图上与EMIF16相连的是NAND flash,所以我一直以为通过EMIF就能够直接启动NAND?

     (b) ROM bootloader做完基本初始化以后,直接跳转到NOR flash的起始地址开始运行。(C6678的NOR flash boot起始地址为0x70000000)。可是怎么样才能够跳转到NOR flash的起始地址,我在.cmd中把.text/.date/.platfromlib等都放在了0x70000000里面,可是在map里面0x70000000处不是_c_init0,而是在0x7000a476处才是_c_init0,在0x70000000——0x7000a476是一些库函数,因为在我的程序里面我用了一些CSL库和platform库。那么我要怎么样做才能够跳转到0x70000000这个地址。请专家们说的详细一点,最好能有个实例作参考,万分感谢。

 (c)我记得0x70000000这个地址是NAND flash cs2的起始地址,是我看的资料有误吗?

(2)如果所有的核跑一样的程序,不必将代码段放到各自的LL2中,这样有8份相同的拷贝,太浪费片上内存。可以将代码段放到SL2中,这样只需要download一次,所有的核共享该代码段,省下宝贵的片内内存。

疑问:这样能否行得通,我试了一下好像只有core0运行了,关于这个问题请专家说详细点,谢谢!

  • (1)

    (a)应该是问的EVM的原理图吧。EVM上应该是I2C启动加载二级bootloader,二级bootloader根据拨码开关配置从NAND启动。

    (b)见 processors.wiki.ti.com/.../Accessing_c_int00

    "Setting the c_int00 Address to a Fixed Location "

    (c)是0x70000000,请再查一下。

    (2)

    可以的。不过记得私有的堆和栈需要放私有空间。实际应用一般核0需要参与整个系统所有核的加载和别的核的启动。