你好,
我这边因为工程需要对TI目录C:\ti\mcsdk_2_01_02_06\tools\boot_loader\ibl\src下的IBL源码移植到一个CCS工程中编译成功了,生成.out文件。
IBL需要哪种格式的bin文件,我现在如何把.out文件转化为相应格式的bin文件,可以烧入EEPROM,开机时通过EEPROM和NorFlash启动。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,
我这边因为工程需要对TI目录C:\ti\mcsdk_2_01_02_06\tools\boot_loader\ibl\src下的IBL源码移植到一个CCS工程中编译成功了,生成.out文件。
IBL需要哪种格式的bin文件,我现在如何把.out文件转化为相应格式的bin文件,可以烧入EEPROM,开机时通过EEPROM和NorFlash启动。
您好,我这边还是看的不太明白。
这个IBL指的是烧进EEPROM中的固件,我按照上面链接中的方式由.out文件先用Hex6x.exe工具生成.hex文件,再用下面的b2ccs和ccs2bin工具转化为bin格式文件,打开发现生成的文件内容还是和官方提供的i2crom_0x51_c6657_le.bin文件不一样,不知道哪里有问题。
我移植的时候是把C:\ti\mcsdk_2_01_02_06\tools\boot_loader\ibl\src下面的所有源码和头文件原封不动拷贝到新建的CCS工程下,只是把iblinit中的main函数完全移入iblmain的mian函数中,合并成一个main函数。然后直接用CCS编译生成.out文件,再用上面的方法转为bin文件,不知道哪里有问题。
下面是我生成的bin文件以及官方bin文件:
请问有什么特殊原因不能用make去编译IBL,而且IBL也只是为了修复PG1.0的PLL bug。如果用PG2.x版本的芯片,可以不用IBL而直接去加载应用程序。
IBL在生成bin文件时会执行romparse把boot parameter table合并到boot table。您的步骤中并没有合并parameter table的步骤,所以会不一样。其实如果把IBL移植到ccs project,可以把它看作是一个应用程序,参考上面的direct boot中生成bin文件的方法C6678_directROM_boot_examples\C6678\spiboot\build\spiboot.cmd。在C6678_SPIboot_usersManual.pdf里有详细的生成步骤和解释。
另外,对各个命令的解释可以参考下面的FAQ。
processors.wiki.ti.com/.../KeystoneI_Bootloader_Resources_and_FAQ
在https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29 EVM SPI boot example,文档在\C6678_directROM_boot_examples\C6678\spiboot\docs目录下。这个例程是SPI boot的,I2C boot可以做参考。