嗨:
最近调试AMIC110这款芯片发现,烧录完SBL 后起不来,后将AMIC110 ICE开发板上的EEPROM芯片取下来安装到我们的板子(参照AMIC110 的参卡设计电路设计)上才能够引导起来,请问下,是否在BOOT中会去读取EEPROM中的适配的board ID,然后才能继续及引导SBL,如果在引导SBL之前确实需要读取EEPROM中数据,那么对于该情况,我们能否使用其它方式来规避该问题? 对于BOOT固化在AMIC110中的代码 我们无法修改!!! 能够有其它可行方案还请帮忙看下?谢谢!
Nancy Wang:
应该是SBL去读取boardId, SBL的代码可以修改,如果不需要这部分内容,可以对其进行修改或者删除。 ti-processor-sdk-rtos-am335x\pdk_am335x\packages\ti\starterware\bootloader\src\am335xsbl_am335x_platform: boardInitPrms.boardId = BOARDGetId();
Damon_Gu:
回复 Nancy Wang:
我看了接线图,I2C0是接入到EEPROM上的,如果EEPROM中数据读取失败,或者I2C0上未接EEPROM那么会导致BOOT无法向下进行么?
Damon_Gu:
回复 Nancy Wang:
说明一下,我们经过验证,如果I2C0没有接入到EEPROM那么BOOT会无法引导到SBL,请帮忙确认下,BOOT中是否会有该机制(可能检测不到EEPROM会返回)
Damon_Gu:
回复 Nancy Wang:
BOOT过程会去读取或者操作初始化EEPROM么如果我未接EEPROM 为什么BOOT引导失败,接入EEPROM则可以正常启动,对于AMIC110 ice开发板 我同样将EEPROM移除,则原先可以上电启动的,现在也无法启动且串口无任何数据输出!请问,该问题是否可以确定BOOT内会对于EEPROM有依赖?
Nancy Wang:
回复 Damon_Gu:
是怎么确认的无法引导到SBL的?
我看到的是SBL的部分才会去获取eeprom中board的信息,在配置相应的pll和DDR,关于RBL部分是否会检测EEProm的内容我再帮您确认一下。
Damon_Gu:
回复 Nancy Wang:
我在sbl_main.c文件中有加LOG打印,正常引导是会有相关LOG输出,如果未引导到SBL,则不会有输出,以此来确定是否引导到指定的SBL。
Nancy Wang:
回复 Damon_Gu:
RBL不依赖于eeprom,建议通过以下方法来确定RBL是否读取eeprom。
1、测量SCL/SDA
2、在sbl_main.c的main函数的部分添加一个全局变量Go,并等待Go变为1。
volatile g = 0;int main(void)
{uint32_t status;uint32_t imageSize;
while (gGo == 0){;}
3、load sbl.out来确定SBL是否在等待GO置1(CCS: Run->Load->Load Symbols).
以上步骤是用来确定SBL没有读取eeprom,如果此时示波器能看到SCL/SDA的变化,说明RBL在读取eeprom。
另外如果不需要eeprom,建议修改SBL中获取boardID部分的代码。
yongqing wang:
回复 Nancy Wang:
否会检测EEProm直接用逻辑分析仪抓一下scl和sda就可知