您好!
客户想要对固件更新程序进行编程。
他们选择使用默认引导引脚进行闪存引导。 F28x 引导其主引导加载程序并按照预定义的方式分支到0x0008 0000。 然后、他们希望放置一个自定义的第二引导加载程序、该加载程序将检查 UART 是否接收到数据、否则启动应用程序。 因此、如果没有数据传入、它们将分支到闪存中应用代码所在的另一个扇区。 第2个引导加载程序应放置在扇区0中、应用程序应放置在扇区4中。
为了进行评估、他尝试了编程到闪存中的2个项目。 第一个 LED 点亮 GPIO 31、一段时间后熄灭、并分支到第二个软件的起始地址、其中 GPIO34上的 LED 持续闪烁。 他将 SW1的闪存0-3中的链接器 cmd 映射到 SW2的闪存扇区4-9。 这两个项目都是单独的项目,并使用闪存选项更改为‘只擦除必要的扇区’进行编译和写入。
编程后、可以在相应位置看到两个软件的操作码。 它们使用 asm ( “LB 0x00088000”)函数分支到第二个软件。 问题在于成功完成第一个软件后第二个软件未启动。
此过程是否正常?
是否可以分支到主函数的起始地址? 或如何使用 asm (“lb 0x……”) 功能?
此致、Holger