This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS3137:是否可以将引导加载程序放置在上部的组0中?

Guru**** 1799210 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/576942/tms570ls3137-can-bootloader-be-placed-in-upper-bank-0

器件型号:TMS570LS3137

您好!

引导加载程序是否可以放置在组 0的上部扇区中、而不是扇区0-3 (0x000_0000 - 0x0001_FFFF)?  

在引导加载程序代码已将控制权转移到应用程序代码后、我将尝试找到一种阻止其执行的方法。  我无法将扇区0设置为不可执行、因为这样矢量将无法工作。

谢谢、Charlie Johnston

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Charlie、

    从理论上讲、除了在地址0x0处仍然需要引导加载程序的某些元素外、我看不到任何原因无法完成此操作、因为这是执行开始的地方。 其中很小的一部分会非常小、但需要支持加电时的引导程序流以及引导加载程序功能、以便在引导加载程序功能期间将映像复制到 RAM 以执行 RAM。 真正的危险是在对器件重新编程期间、0x0处的例程被擦除并且编程被中断。 这会使器件在现场更新方案中感到不安全。

    我想您真正说的(考虑到您要移动的扇区的不可执行状态)是、引导加载程序的危险部分(编程操作的主要部分)将被放置在安全的地方、并在适当时加载到 RAM 中以供执行? 这是正确的字符化吗? 在这种情况下、如果不用于 EEPROM 仿真、您还可以将引导加载程序的目标代码存储在数据闪存(FEE 区域)中、因为器件架构本身不支持从 FEE 组执行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、
    好主意。 那么、唯一需要防止执行的代码就是从 FEE 组加载到 RAM 的代码。
    我们的主要问题是认证引导加载程序为 do-178C dal D 而不是 dal A。如果没有(很容易)不可用的 F021 API 源代码、我们无法认证 dal A。
    我们可以通过将所有组1专用于引导加载程序、然后让应用程序将其设置为不可执行、避免3137出现这种欺骗情况。
    谢谢、Charlie