TMS320C6678开发笔记1 | 您所在的位置:网站首页 › EPM7032烧写程序 › TMS320C6678开发笔记1 |
第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过程 两种文件加载DDR中选择项不同: dat文件: bin文件: 开发板上可以测试通过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 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.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 实验室设备网 版权所有 |