当使用仿真器时,仿真器会将项目中编译好的out文件下载到RAM中运行,但是掉电就会丢失,如果想长久保存,上电运行,需要将程序烧写到Flash中,C6678LE提供了一个16M的NOR Flash和一个64M的NAND Flash存储器,当选择相应的boot模式时,卡板会自动将程序从Flash中搬运到RAM运行(IBL二级加载技术),因为程序直接在Flash中运行会很慢。
这篇博文主要根据TI提供的资料,并参照论坛一、论坛二、论坛三的内容,进行C6678LE的NOR Flash烧写试验,NAND烧写类似,不同之处会用绿色标出,另外这个目前还是单核的烧写。
一:准备工作。准备好烧写的程序(LED闪烁out文件),烧写工具位于mcsdk_2_01_02_06\tools文件夹下。将卡板的boot开关拨到no boot模式,连接仿真器到PC,卡板上电,打开CCS。
二:烧写程序到NOR Flash,此过程可以参照mcsdk_2_01_02_06\tools\writer\nor\docs下的README.txt文件操作。
1、将准备烧写的out文件copy到mcsdk_2_01_02_06\tools\writer\nor\evmc6678l\bin目录下,并将其重命名为app.bin,C6678中单核烧写不需要将out文件转化为dat文件。
2、将mcsdk_2_01_02_06\tools\writer\nor\evmc6678l\bin目录下norwriter_evm6678l.out文件加载到CCS的0核,只是TI提供的烧写程序,此程序自动运行到main函数处。
3、Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x80000000. 如下图,然后右击Memory view选择Load Memory。
4、在新打开的窗口中选择之前存放的app.bin,下一步,完成,CCS会将app.bin读入到内存。
5、运行烧写程序norwriter_evm6678l,此程序就会将刚才写入内存的app.bin烧写到NOR Flash中。烧写成功后Console窗口提示如下,断开CCS。
6、如果是进行NAND的烧写,请参照mcsdk_2_01_02_06\tools\writer\nand\docs下的README.txt进行。
三:烧写IBL引导程序到EEPROM,这个程序负责在卡板复位时将Flash中的程序搬移到内存中运行,只需要烧写一次,以后不用再烧,具体步骤可以参考mcsdk_2_01_02_06\tools\writer\eeprom\docs中的README.txt文件。
1、将i2crom_0x51_c6657_le.bin文件从"mcsdk_2_01_02_06\tools\boot_loader\ibl \src\make\bin"拷贝到"mcsdk_2_01_02_06\tools\writer\eeprom\evmc6657l\bin",
2、将mcsdk_2_01_02_06\tools\writer\eeprom\evmc6678l\bin中的eepromwriter_input.txt中的file_name值修改为i2crom_0x51_c6657_le.bin 。
3、以下步骤和之前烧写LED程序时一样,只是烧写项目文件换成了eepromwriter_evm6678l.out ,唯一不同的是Load Memory时的内存开始地址不是0x80000000,而是0x0c000000,同时注意修改下图中的地方:
四:烧写I2C参数。这些参数用来配置IBL,也只需要烧写一次。
1、修改mcsdk_2_01_02_06\tools\boot_loader\ibl\src\make\bin\i2cConfig.gel的内容,将函数setConfig_c6678_main()的语句
ibl.bootModes[0].u.norBoot.bootFormat = ibl_BOOT_FORMAT_BBLOB; 替换为
ibl.bootModes[0].u.norBoot.bootFormat = ibl_BOOT_FORMAT_ELF;
对于NAND烧写,将
ibl.bootModes[1].u.nandBoot.bootFormat = ibl_BOOT_FORMAT_BBLOB; 替换为
ibl.bootModes[1].u.nandBoot.bootFormat = ibl_BOOT_FORMAT_ELF;
2、新建一个目标文件,将上一步修改后的gel文件加载到0核,然后Launch这个目标文件,连接0核,加载运行程序mcsdk_2_01_02_06\tools\boot_loader\ibl\src\make\bin\i2cparam_0x51_c6678_le_0x500.out 。
3、等到Console窗口提示Run the GEL for for the device to be configured, press return to program the I2C时,如下图点击setConfig_c6678main选项。
4,、过几秒后在Console窗口空白处单击回车,参数烧写成功后回提示如下:五:断开CCS和仿真器,将boot开关拨到 IBL NOR boot on image 0,如果是NAND烧写请拨到 IBL NAND boot on image 0,上电复位,如果成功LED就会开始闪烁了。