TI中文支持网
TI专业的中文技术问题搜集分享网站

关于IBL启动有关eeprom地址的相关问题

在使用IBL进行二级启动时,我对于DSP 6678 I2C启动在master mode下的boot parameter table在EEPROM中的地址和IBL程序在EEPROM中的地址有点搞不清楚:
在烧写IBL到eeprom的程序MCSDK_INSTALL_DIR\tools\writer\eeprom\evmc6678l\bin\eepromwriter_evm6678l.out中,通过读取eepromwriter_input.txt中的参数start_addr(默认是0)来确定IBL写入到eeprom中的偏移地址,这个起始地址默认是0。
在更新boot parameter table的程序MCSDK_INSTALL_DIR\\tools\boot_loader\ibl\src\make\bin\i2cparam_0x50_c6678_le_0x500.out中,默认是把boot parameter table写入到eeprom的偏移地址0x500中。我看了下程序,i2cparam_0x50_c6678_le_0x500.out是把ibl结构体的参数配置写入到了eeprom,跟sprugy5b.pdf 表3-19的格式是不一样的。

我的问题是:
1. 把IBL写入到eeprom的偏移地址为0的存储区域后,如果我设置的boot parameter table的index是0, 就会改变boot parameter table的配置,这样在上电启动的时候RBL在读boot parameter table的时候就是IBL程序,而读不到正确的boot parameter table。如果是这样,IBL是怎么保证RBL读取boot parameter table的正确性的?
2. MCSDK_INSTALL_DIR\\tools\boot_loader\ibl\src\make\bin\i2cparam_0x50_c6678_le_0x500.out更新的是ibl的参数,而不是boot parameter table,是不是?IBL的程序比较大,有几十KB,如果IBL的start_addr=0,这样在烧写完IBL到eeprom,然后在执行i2cparam_0x50_c6678_le_0x500.out后,eeprom中偏移地址0x500处,就不是IBL,而是ibl的参数值,这样怎么保证IBL程序的完整执行?
谢谢。

Allen35065:

因为那个参数结构体在IBL代码里也定义了,IBL程序已经预留了那一段就是作为参数区的。

GANG ZHANG:

回复 Allen35065:

意思是说是可以不用执行MCSDK_INSTALL_DIR\\tools\boot_loader\ibl\src\make\bin\i2cparam_0x50_c6678_le_0x500.out来更新ibl_t的值了吗?

赞(0)
未经允许不得转载:TI中文支持网 » 关于IBL启动有关eeprom地址的相关问题
分享到: 更多 (0)