做这个的目的是想学习一下整个boot的过程。但是没有成功,以下是我的操作步骤,请帮忙看下哪个环节出了问题,非常感谢!
首先,我使用的软硬件是:mcsdk_2_00_04_16 ccs_base_5.0.3.00023 evm6678LE
我自己写了一个板子上LED灯闪烁的程序作为例程,烧入NAND中,用来判断Boot是否成功。 附件的LedTest.rar就是程序。测试程序没有问题后:
生成应用程序的二进制文件,烧入NAND中。
1、将LedTest.rar转换成bin文件
tiobj2bin.bat LedTest.out LedTest.bin ofd6x.exe hex6x.exe mkhex4bin.exe
其中tiobj2bin.bat是在Texas Instruments\cg_xml\ofd 目录下
ofd6x.exe和hex6x.exe在 Texas Instruments\ccsv5\tools\compiler\c6000\bin 目录下
mkhex4bin.exe在 Texas Instruments\cg_xml\bin 目录下
2、将LedTest.bin文件写入NAND中。
使用mcsdk_2_00_04_16\tools\writer\nand\evmc6678l\bin\nandwriter_evm6678l.out
其中nand_writer_input.txt文件的内容为
file_name = LedTest.bin
start_addr = 16384
将IBL烧入EEPROM中
1、将i2crom_0x51_c6678_le.bin文件从"mcsdk_2_00_04_16\tools\boot_loader\ibl\src\make\bin"拷贝到"mcsdk_2_00_04_16\tools\writer\eeprom\evmc6678l\bin"
2、使用mcsdk_2_00_04_16\tools\writer\eeprom\evmc6678l\bin\eepromwriter_evm6678l.out进行烧写
其中eepromwriter_input.txt的内容为:
file_name = i2crom_0x51_c6678_le.bin
bus_addr = 0x51
start_addr = 0
swap_data = 0
配置IBL
1、修改mcsdk_2_00_04_16\tools\boot_loader\ibl\src\make\bin\i2cConfig.gel的内容,将函数setConfig_c6678_main()的语句
ibl.bootModes[1].u.nandBoot.bootFormat = ibl_BOOT_FORMAT_BBLOB; 替换为
ibl.bootModes[1].u.nandBoot.bootFormat = ibl_BOOT_FORMAT_ELF;
2、运行程序mcsdk_2_00_04_16\tools\boot_loader\ibl\src\make\bin\i2cparam_0x51_c6678_le_0x500.out
3、加载文件 i2cConfig.gel然后在CCS的DEBUG界面上点击,Srcipts->EVM c6678 IBL -> setConfig_c6678_main
4、几秒钟以后,在console界面上敲击回车键
测试是否成功
1、首先修改板子的启动模式
(pin1, pin2, pin3, pin4)
SW3(off, off, on, off),
SW4(on, off, on, on),
SW5(on, on, on, off),
SW6(on, on, on, on)
2、启动板子。
现象:LED灯完全没有反应。