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.

【Bootloader】6678 SPI 多核boot问题

Other Parts Discussed in Thread: TMS320C6678

Hi all,

        在参照www.deyisupport.com/.../46608.aspx  的SPIboot  教程后,能成功实现从spi 直接boot 单核的程序。

        在boot多核程序时遇到以下问题:

       1.从*.out 到*.dat 转换  的工具链 对代码的长度有限制:b2i2c.exe  romparse.exe   其中b2i2c.exe 修改其源文件的 宏 #define SIZE 0x200000   /* max array size */ 就可以,但是 romparse.exe 部分不好修改,对于make中的命令不太明白。麻烦能否提供一个修改好的工具?

      2.在教程中提到:*.ccs  文件转换成*.dat文件之前 需将51 改为00是为什么?多核操作也需修改?

      3.romparse.exe对 文件较大转换时会直接出错,我参照例子中提供的simple.ccs的转换后的  前256行() 直接用于我的文件并修改头大小,是否可以?但是 烧写进去后,没有boot起来。

  Thanks

  • 请参考帖子http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/8065.aspx 后面的附件

    1.不用改romparse,boot parameter talbe表头一次性制作好了用小工具和你镜像的其他部分连接就行了

    2.参考附件里文档

    3.有些工具可以修改长度限制,rmd文件最好也要修改

  • striker,您好,你分享的附件真是太棒了!

    我最近在做EVM6657的boot,也在用你那些转换工具,不知道适不适用,反正现在还没有启动起来?

    还有你说你是修改过这些工具的源代码的,请问方不方便把代码也发我一份:ztwe13877@163.com。

  • EVM6657也是用SPI NOR flash方式boot,用工具制作的spirom_le.dat可以烧写进nor flash,但断电重设开关之后boot不成功。

    有可能是EVM6657 bootmode pin设置的问题,这个我还在找资料确认。

    另外就是转换工具适不适合6657的问题?

  • 使用你提供的转换工具,我针对6657做了3个处理

    1、修改LedTest工程,主要是cmd部分。

    在线下载运行,可以看到两个核控制led闪烁的效果,工程修改是对的。

    2、将6657两个核的.out文件替换掉原有6670的simple0.out、simple1.out

    3、修改spiboot_multi_4cores.bat为spiboot_multi_2cores.bat。

    批处理文件spiboot_multi_4cores.bat的内容是这样的:

    hex6x simple0.rmd
    hex6x simple1.rmd
    hex6x simple2.rmd
    hex6x simple3.rmd
    mergebtbl simple0.btbl simple1.btbl simple2.btbl simple3.btbl simple.btbl
    AddDdrTable6670 simple.btbl
    b2i2c_ex simple.btbl simple.btbl.i2c
    b2ccs_ex simple.btbl.i2c simple.i2c.ccs
    qfparse
    modify i2crom.ccs spirom_le.dat

    我修改了这个文件,成为spiboot_multi_2cores.bat,内容如下:

    hex6x simple0.rmd
    hex6x simple1.rmd
    mergebtbl simple0.btbl simple1.btbl simple.btbl
    AddDdrTable6670 simple.btbl
    b2i2c_ex simple.btbl simple.btbl.i2c
    b2ccs_ex simple.btbl.i2c simple.i2c.ccs
    qfparse
    modify i2crom.ccs spirom_le.dat


    其中AddDdrTable6670.exe适不适用于6657?

    我这个针对6657修改的过程对不对?

    .rmd文件需不需要修改?

  • 使用你提供的转换工具,我针对6657做了3个修改:

     

    1、修改LedTest工程,主要是修改.cmd文件。

    在线下载运行,可以看到两个核控制led闪烁的效果,工程修改是对的。

     

    2、将6657两个核的.out文件名修改为simple0.out、simple1.out,替换掉6670原来的simple0.out、simple1.out。

     

    3、将spiboot_multi_4cores.bat修改为spiboot_multi_2cores.bat

    spiboot_multi_4cores.bat的内容为:

    hex6x simple0.rmd

    hex6x simple1.rmd

    hex6x simple2.rmd

    hex6x simple3.rmd

    mergebtbl simple0.btbl simple1.btbl simple2.btbl simple3.btbl simple.btbl

    AddDdrTable6670 simple.btbl

    b2i2c_ex simple.btbl simple.btbl.i2c

    b2ccs_ex simple.btbl.i2c simple.i2c.ccs

    qfparse

    modify i2crom.ccs spirom_le.dat

     

    我修改为:

    hex6x simple0.rmd

    hex6x simple1.rmd

    mergebtbl simple0.btbl simple1.btbl simple.btbl

    AddDdrTable6670 simple.btbl

    b2i2c_ex simple.btbl simple.btbl.i2c

    b2ccs_ex simple.btbl.i2c simple.i2c.ccs

    qfparse

    modify i2crom.ccs spirom_le.dat

     

    问题:

    1、AddDdrTable6670.exe适不适合用于6657?

    2、我针对6657做的修改过程对不对?

    3、.rmd要不要修改?

  • 1.AddDdrTable6670确实只是增加6670的DDR初始化参数,用于6657可能会有问题。

    2.过程没有问题

    3.rmd文件不要修改

     

    建议:

    1.先进行单核boot测试,成功了再尝试多核。

    2.将工程里的cmd文件全部重定位到L2SARM,不要放在DDR。(先尝试没有DDR初始化的boot,再尝试带DDR初始化的boot。)去掉 AddDdrTable6670 simple.btbl 这一句

    3.烧写NOR的时候板卡处于no-boot状态,最好加gel文件初始化板卡。启动时处于SPI boot mode。

    4.工程放在原链接下面,请参考。

     

  • 多核boot建议参考MAD文档!

  • MAD文档的全称是?

  • 您好,striker。我用您给的点灯程序在开发板上完成了SPI NOR FLASH的自加载功能。您里面的MuticoreBoot.c函数里面给其他core1-core7的Magic Addr都是由core0推导得到的。现在的问题是,如果我八个核的工程程序都不一样,代码不同,那么这个地址应该也不同,这个应该怎么样确定?我现在需要实现八核不同功能的烧写,如果每个核的工程代码都是Switch 判断core号,这样会增加代码量。。期待得到您的解答,谢谢啦~

  • striker 你好!

    我用你的示例工程boot成功了。然后我将你的示例工程改成大端模式,生成.out文件,请问你的工具链中的.rmd文件中的“-order L”需要改“-order M”吗?还有byteswap是不是没必要执行了,烧写工程norwriter需要改成大端模式运行吗?

    非常感谢!

  • striker striker 你好,看到你推荐的链接及其附件,附件文档有说到

    6. 另外要格外注意的是evm 板卡上的EEPROM 的IBL 镜像文件存在没有被刷掉,否则无法
    正常引导flash

    我的疑问是,在烧写Flash的时候是通过CCS用调试工具烧写SPI Nor Flash,而在烧写工作完成之后,是通过配置Boot参数的拨码开关,进入SPI boot模式,从前到后都不涉及EEPROM,为何要特别强调IBL的存在?

    我自己画了一块板子,用的是PG2.0的TMS320C6678,板子上没有EEPROM,只有一块SPI Flash,正准备调试板子的SPI BOOT,看到你的这段描述有些担心板子能否成功BOOT。如果可以,希望能多多指导。我的邮件是chenwnju@163.com,不甚感激。