C6678 IBL NAND boot over I2C

2019-07-21 18:52发布


第一步:
1:首先把CSS生成.out文件拷贝到C: imcsdk_2_01_02_05 oolswriter andevmC6678lin 下面 修改名为app.bin
2 EVM 上boot 模式设置为 no boot/EMIF16 模式
3. 打开DSP.com/forum.php?mod=forumdisplay&fid=58" target="_blank" class="relatedlink">CCSv5,
4. 打开evmc66xx emulator target configuration
5. 连接core 0
6. 加载(确保evmc66xxl.gel 已执行,DDR 已初始化)mcsdk_2_00_09_21 oolswriter andevmc6678lin andwriter_evm6678l.out
7. 打开 memory view( CCSv5 里 view->Memory Browser),查看内存地址0x80000000
8. 把app.bin 下载到0x80000000 处
9. 执行
10. 当烧写完成时,终端显示NAND programming completed successfully.
第二步:
不知道我的为什么eeprom的说明书里面为什么讲的是:Copy the CCS format data file to writereepromevmc66xxlin directory, and rename it to app.dat.于是我照做了,但是在你向内存地址 load的时候会发现回报错,所以我把eeprom整个工程导入CCS,修改C: imcsdk_2_01_02_05 oolswritereepromevmc6678lin下面文件eepromwriter_input.txt里面为.bin编译。
开始烧写:
1:将目标板(EVM或用户板)设置在no boot/EMIF16模式
2: evmc66xxl.gel配置文件并初始化DDR
3: 加载 :eepromwriter_evm66xxl.out。
4: 在CCS下打开内存观察窗口(view->Memory Browser):0x0C000000
5: 将IBL程序i2crom_0x51_c6670_le.bin copy到目录:writereepromevmc66xxlin下修改后缀名为.bin,同时修改 writereepromevmc66xxlineepromwriter_input.txt file_name  = i2crom_0x51_c6678_le.bin
6:在CCS的内存观察窗口中按鼠标右键→调入文件“load memory” →选择文件i2crom_0x51_c6670_le.bin→不需要使用选项:“Use the file header information to set the start address and size of the memory block to be loaded”(32位宽,无交换)→按“next”即可完成。
7: 在CCS环境下运行:按F5。但编程正确结束,则console终端中显示“EEPROM programming completed successfully”,否则提示错误信息。
第三步:
1:修改mcsdk_02_01_02_05 oolsoot_loaderiblsrcmakeini2cConfig.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 oolsoot_loaderiblsrcmakeini2cparam_0x51_c6678_le_0x500.out (10)、加载文件 i2cConfig.gel然后在CCS的DEBUG界面上点击,Srcipts->EVM c6678 IBL -> setConfig_c6678_main
3:几秒钟以后,在console界面上敲击回车键


第四步:
修改DIP开关模式为:
SW3: off off on off
SW4: on off on on
SW5: on on on off
SW6: on on on on
启动可以看见效果。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。