在我的工程里面的主程序是通过编程来控制LED.我的设计初衷是通过每一个核来控制每一个LED,即core0控制LED0;core1控制LED1;core2控制LED2;core3控制LED3等。这些程序都在
一个主程序中就完成了。在仿真的过程中我是把这个.out文件分别load到每一个核中,然后run,结果是正确的,每个核点亮了相应的LED.可是我把它烧写到NAND中后。把boot方式
拨到NAND的启动方式,然后上电。其结果是只有LED0被点亮了。这是怎么样回事情?
我的烧写过程如下:
(1)将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
(2)配置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界面上敲击回车键
(3)最后,烧写应用程序
使用mcsdk_2_00_04_16\tools\writer\nand\evmc6678l\bin\nandwriter_evm6678l.out
其中nand_writer_input.txt文件的内容为
?
file_name = main.bin
start_addr = 16384
我想是不是我应该在(1)中重新生成自己的.btbl格式文件,然后再烧到EEPROM中?问题是我按照6488bootloader的参考合成了一个.btbl的文件,但是超过了128K烧写不进EEPROM
中,我想是不是生成.btbl文件的那个.out文件不应该是包含自己的应用程序的那个,而是从新关于boottable配置的文件?