TMS320C6678开发笔记1 您所在的位置:网站首页 EPM7032烧写程序 TMS320C6678开发笔记1

TMS320C6678开发笔记1

#TMS320C6678开发笔记1| 来源: 网络整理| 查看: 265

第6节  单核烧写加载程序 6.1节  TI参考文档

参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看

https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29

里面有三个工程:

C6678 EVM SPI boot exampleC6657 EVM SPI boot example with DDR initializationC6657 EVM NAND boot example里面简介了工具的使用

参考文章:

《C6678学习——SPI NOR FLASH多核引导资料汇总及个人分享》

https://blog.csdn.net/kunkliu/article/details/105772726

《TI DSP TMS320C66x学习笔记之SPI Nor Flash多核程序烧写》

https://blog.csdn.net/kunkliu/article/details/105773215

《C6678十六进制转换工具Hex6x介绍》

https://blog.csdn.net/kunkliu/article/details/105774996

《C6678镜像工具链介绍》

https://blog.csdn.net/kunkliu/article/details/105987798

《C6678多核程序烧写固化》

https://blog.csdn.net/kunkliu/article/details/105988210

 

6.2节  BOOTMOD与PIN的对应关系

 

GPIO0对应大小端选择GPIO1对应BOOTMODE0GPIO2对应BOOTMODE1依次类推GPIO13对应BOOTMODE12 6.3节  SPI NOR FLASH烧写 6.3.1 烧写思想 将out文件经过一系列转换为特定格式,通过NOR Flash烧写工程将转换后的文件烧写到flash中。然后将开发板设置为SPI NOR Flash启动,开发板即可成功运行。具体过程如下:下图为多核烧写过程,单核烧写中没有mergebtbl过程

hex6x 配合.rmd文件(有几个.out文件就需要几个.rmd文件,描述输出控制、引导选项、存储器选项等内容)生成片上引导加载器加载程序所需的引导表,输出文件为*.btblmergebtbl将*.btbl按照一定的顺序链接起来(单核烧写没有此步骤)b2i2c 将*.btbl转换成i2c/spi格式,把boot表划分成0x80字节块并附加长度(length)和校验码(checksum)b2ccs将*.btbl.i2c转换成.i2c.ccs,CCSV5 IDE接收的.dat格式,加载到DDR3中去。并手动将i2crom.ccs中的第9行51改为00。romparse 合并boot表和boot参数表,参数配置表文件*.map作为输入。byteswapccs将.dat转换成ROM Bootloader代码能够识别的大端模式(.dat文件可以直接烧写)ccs2bin将.dat文件转换成.bin文件(.bin文件可以直接烧写)具体工具使用细节可参考第10节的烧写工具介绍 6.3.2 bin & dat两种文件可以烧写 TI官网和创龙开发板烧写的是bin文件钱丰提供的例程烧写的是dat文件通过ccs2bin.exe工具可以将dat文件转换为bin问件烧写是注意nor_writer_input.txt文件中的烧写名称的修改

两种文件加载DDR中选择项不同:

dat文件:

bin文件:

6.3.3使用创龙开发板例程烧写 NO DDR

开发板上可以测试通过Demo\Factory Reset\Tools\SPI NorFlash Image

制作脚本如下:

Buid.bat

@echo off Bin\hex6x -order L Config\app.rmd app.out Bin\b2i2c app.b app.spi.b Bin\b2ccs app.spi.b app.spi.ccs Bin\romparse Config\app_spirom.map.pp Bin\ccs2bin -swap i2crom.ccs nor.bin del *.ccs del *.b echo Finish! 使用步骤:

将编译出的xxx.out文件改名为app.out放到SPI NorFlash Image目录下运行Build.bat,生成nor.bin,然后通过NOR FLASH方法烧写到NOR Flash中,设置成SPI启动,上电即可看到程序运行。

6.3.4使用TI官方例程烧写NO DDR

例程下载地址:

参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看

https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29

里面有几个工程:

C6678 EVM SPI boot example

 

使用TI官方例程C6678_directROM_boot_examples.zip

制作脚本如下:

Buid.bat

@echo off set C6000_FOLDER=C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.2.2 set PDK_PACKAGES=C:/ti/pdk_C6678_1_1_2_6/packages set PATH=%C6000_FOLDER%\bin;%PATH%

spiboot.bat

set IBL_UTIL=C:\ti\pdk_c667x_2_0_15\packages\ti\boot\ibl\src\util @REM FOR PROCESSOR SDK RTOS change the path to SDK_INSTALL_PATH\pdk\pdk_c66xx_2_0_0\packages\ti\boot\ibl\src\util hex6x led_play.rmd //与创龙生成文件一样 %IBL_UTIL%\btoccs\b2i2c led_play.btbl led_play.btbl.i2c //与创龙生成文件一样 %IBL_UTIL%\btoccs\b2ccs led_play.btbl.i2c led_play.i2c.ccs //与创龙生成文件一样 %IBL_UTIL%\romparse\romparse nysh.spi.map //与创龙生成文件不一样 pause //此处暂停,修改i2crom.ccs文件将第9行0x01f40051改为0x01f40000,否则将不能运行 copy i2crom.ccs spirom_le.dat byteswapccs i2crom.ccs spirom_le_swap.dat copy spirom_le_swap.dat app.dat %IBL_UTIL%\btoccs\ccs2bin i2crom.ccs spirom_le.bin %IBL_UTIL%\btoccs\ccs2bin -swap i2crom.ccs spirom_le.swap.bin 使用步骤:

1、将setup.bat和spiboot.bat中的路径设置为本机真正的路径

2、先运行setup.bat

3、修改nysh.spi.map文件和创龙app_spirom.map.pp文件一样

4、运行romparse nysh.spi.map命令,然后修改i2crom.ccs文件将第9行0x01f40051改为0x01f40000,否则将不能运行

5、将spirom_le.swap.bin拷贝到NOR Flash工程进行烧写,然后拨到SPI NOR启动,即可成功。

注意事项: 创龙的romparse和TI官网的romparse命令不一样,创龙版本的romparse经过了特定修改。romparse 的作用是合并boot表和boot参数表,参数配置表文件*.map作为输入。不同的启动方式boot para table不一样 6.3.5使用钱丰例程烧写NO DDR

例程下载地址:https://blog.csdn.net/kunkliu/article/details/105773215

烧写工具链接: https://pan.baidu.com/s/1em4jWjbskpMmNd1uzscjjA 提取码: 82qg

制作脚本如下: hex6x simple.rmd b2i2c simple.btbl simple.btbl.i2c b2ccs simple.btbl.i2c simple.i2c.ccs romparse nysh.spi.map //钱丰增加了modify命令,实现了字节翻转,和将i2crom.ccs文件将第9行0x01f40051改为0x01f40000功能 modify i2crom.ccs spirom_le.dat ccs2bin spirom_le.dat spirom_le.bin // 此处转bin文件不再进行字节翻转 使用步骤:

1、将生成的led_play.out文件改名为simple.out,放到E:\ft6678\doc\DSP_C6657\spi_boot_suit_v2.3.1_release\spi_boot_suit_v2.3\1_utilities\1.6678\singlecore_boot_not_support_large_binary目录下。

2、运行spiboot_single_noddr.bat,生成spirom_le.bin

3、将spirom_le.bin拷贝到NOR Flash工程进行烧写,然后拨到SPI NOR启动,即可成功。

注意事项:

1、钱丰使用的工具和TI官网提供的工具一样

2、钱丰增加了modify命令,实现了字节翻转功能

3、钱丰提供的脚本中没有实现ccs转bin的步骤,必须先将TI官网的ccs2bin工具放到钱丰的脚本目录下,脚本最后加上以下语句即可

ccs2bin spirom_le.dat spirom_le.bin 6.3.6使用钱丰例程烧写With DDR

例程下载地址:https://blog.csdn.net/kunkliu/article/details/105773215

烧写工具链接: https://pan.baidu.com/s/1em4jWjbskpMmNd1uzscjjA 提取码: 82qg

经测试发现上述3中烧写方法(6.1.3.2  6.1.3.3  6.3.1.4),没有提供带有DDR初始化的制作脚本,所以编写的代码必须在DSP内部存储空间内才可以运行。钱丰提供了DDR初始化脚本。在6.1.3.4的基础上点击spiboot_single.bat脚本即可生成带有DDR初始化的烧写文件

 

制作脚本如下: hex6x simple.rmd AddDdrTable6678 simple.btbl // 增加DDR初始化数据 b2i2c simple.btbl simple.btbl.i2c b2ccs simple.btbl.i2c simple.i2c.ccs romparse nysh.spi.map modify i2crom.ccs spirom_le.dat ccs2bin spirom_le.dat spirom_le.bin 注意事项:与使用钱丰例程烧写NO DDR相同 6.3.7使用TI官方例程烧写With DDR

例程下载地址:

参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看

https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29

里面有几个工程:

C6657 EVM SPI boot example with DDR initialization

TI提供的官网例程中只是实现了程序可以在DDR中运行,但没有提供DDR初始化配置表 6.3.8 BOOT ParameterTable的定义 参考文章:《sprugy5b——KeyStone Architecture Bootloader.pdf》

里面有BOOT Parameter的定义描述。

 

烧写数据需要包含配置bootloader的Boot参数表信息,romparse工具将Boot参数表添加到.ccs文件的对应位置。不同的bootloader方式对应的Boot参数表内容不同。

附带文件tiboot.h定义了对应不同Boot方式的boot参数表结构体。从该结构体可以得到参数表变量的用途及占用字宽。

6.3.9 DDR Configuration Table的定义

暂未记录

6.4节  I2C IBL二次启动单核烧写

6.4.1 烧写思想

先将IBL镜像烧写到EEPROM中,然后将out文件直接烧到NOR/NAND Flash中。将开发板设置为I2C EEPROM方式启动。启动后开发本先运行IBL,再由IBL加载Flash中的代码运行,实现I2C—NOR / I2C—NAND的二次引导启动。(创龙开发板使用此种方式启动)由于IBL可以直接解释out文件,所有可以直接将out文件烧写到Flash中,省去了out文件转换为bin文件的繁琐过程。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有