因此、我目前有代码、允许我将新固件引导加载到器件上。 此代码就在我的主函数的顶部、因此每次电路板上电时、它都会运行此代码、等待 UART 上出现特殊字符。 如果接收到该字符、则会调用 SciBoot 函数、我认为该函数完全由 TI 提供。 如果它在几秒钟内没有收到此字符、则继续运行常规应用程序代码。 这对我们来说很好、但是它不是欺骗、这意味着我可以使它失败、使板在通过 JTAG 端口加载新代码之前不再可用。 假设我在通过 UART 加载固件的同时切断电路板的电源、然后再次上电、这会导致器件无法正常工作。
因此、我的最终目标是让该小段代码(包括 SciBoot)(我将所有这些代码都称为引导加载程序代码)在电路板通电时被称为所有时间、即使引导加载因某种原因中断也是如此。 我想如何实现这一点、就是让引导加载程序代码位于闪存的扇区 A 中、然后在我执行引导加载过程时、它只擦除扇区 B-H、然后将固件仅加载到这些扇区。 我认为这意味着我必须在 Code Composer 中以某种方式指定这些位置、然后在引导加载程序代码的末尾(当它超时未接收到特殊字符时)、它将跳转到应用代码应该所在的扇区 B 的开头。 这将使扇区 A 只能通过 JTAG 写入、从而使扇区成为只读的...
再说一次、这就是我认为可以实现的方法、但如果有更好/更简单的解决方案、我很适合! 感谢您对此提供的任何帮助!
Greg