主题中讨论的其他器件: UNIFLASH、 EK-TM4C129EXL、 EK-TM4C1294XL、 EK-TM4C123GXL
我在定制板上使用 Tiva TM4C1294NCPDT 控制器。 我已将 UART0连接到嵌入式 Linux 板的 UART。 在正常的操作系统操作期间,我可以通过调用 ROM_UpdateUART()来调用 ROM 引导加载程序,以使用 sflash 实用程序更新固件。 只要我的器件上已有某些固件、该方法就可以正常工作。
我想使用 sflash 对原始设备进行编程。 为了测试这一点、我擦除闪存并通过 JTAG 确认0x0和0x4位置读取0xFFF_FFFF、并且 BOOTCFG 寄存器为0xFFF_FFFE。 在空白器件上、我希望器件保持在 ROM 引导加载程序中、以通过 UART 查找数据包。 但是、当我运行 sflash 时、我会得到"擦除"芯片消息、之后什么也没有。
我还注意到,当使用 ROM_UpdateUART()调用引导加载程序时,如果固件更新中断并重新启动,设备将恢复固件更新并成功继续。 但是、如果中断后重启电源、则更新不会恢复。 症状与空白芯片盒中上述故障模式相似。 gurus 能否确认 ROM 引导加载程序和 sflash 组合是否能够抵抗电源中断? ROM 引导加载程序是否在更新结束时或之前写入0x0和0x4位置?
此外、对于器件为空时闪存和 ROM 引导加载程序为何不起作用有任何想法? 如何调试 ROM 引导加载程序?
提前感谢您投入宝贵的时间和投入、
Rajah