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.

[参考译文] TMS320F28379S:从 Get 引导模式引导

Guru**** 2535750 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/613901/tms320f28379s-boot-from-get-boot-mode

器件型号:TMS320F28379S
主题中讨论的其他器件:C2000WARE

大家好、我想检查我对引导加载程序的理解是否正确。

我们有不同的引导模式,如果应用程序代码驻留在 RAM 中并且我们引导至 RAM,则将引导器件在 RAM 中运行代码,来自 main(); 如果应用程序代码驻留在闪存中并且我们引导至闪存,它也将引导器件在闪存中运行代码,从 main()开始。 对吧?

另一种引导模式是将应用程序加载到器件、对吧?

如果我们选择 Get boot mode、从哪里(SCI、SPI、CAN、USB)加载应用程序代码由 BOOTCTRL.BMODE 决定、对吧?  

但该寄存器位于 OTP 中、因此如果我配置 BOOTCTRL.BMODE=USB BOOT、那么每次器件上电时、它都会引导到 USB 并等待应用代码从 USB 物理接口发出、对吧?

这似乎不适用、因为在大多数情况下、客户只想通过 USB 将代码加载到闪存一次。 之后、我们应将器件配置为引导至闪存、然后每次器件上电时、器件都会从闪存运行代码。 但是、由于配置寄存器位于 OTP 中、一旦我将其配置为引导至 USB、它就无法返回到引导至闪存模式。 引导至 SPI、I2C、CAN 也是如此。

此外、我们如何更改 OTP 存储器中的寄存器值? 例如 BOOTCTRL.BMODE。

谢谢。

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

    霍华德

    [引用用户="Howard Zou"]

    我们有不同的引导模式,如果应用程序代码驻留在 RAM 中并且我们引导至 RAM,则将引导器件在 RAM 中运行代码,来自 main(); 如果应用程序代码驻留在闪存中并且我们引导至闪存,它也将引导器件在闪存中运行代码,从 main()开始。 对吧?

    [/报价]

    是的、正确

    [引用用户="Howard Zou"]

    另一种引导模式是将应用程序加载到器件、对吧?

    [/报价]

    是的、正确

    [引用用户="Howard Zou"]

    如果我们选择 Get boot mode、从哪里(SCI、SPI、CAN、USB)加载应用程序代码由 BOOTCTRL.BMODE 决定、对吧?  

    [/报价]

    是的、正确

    [引用用户="Howard Zou"]

    但该寄存器位于 OTP 中、因此如果我配置 BOOTCTRL.BMODE=USB BOOT、那么每次器件上电时、它都会引导到 USB 并等待应用代码从 USB 物理接口发出、对吧?

    [/报价]

    是的、正确

    [引用用户="Howard Zou"]

    这似乎不适用、因为在大多数情况下、客户只想通过 USB 将代码加载到闪存一次。 之后、我们应将器件配置为引导至闪存、然后每次器件上电时、器件都会从闪存运行代码。 但是、由于配置寄存器位于 OTP 中、一旦我将其配置为引导至 USB、它就无法返回到引导至闪存模式。 引导至 SPI、I2C、CAN 也是如此。

    此外、我们如何更改 OTP 存储器中的寄存器值? 例如 BOOTCTRL.BMODE。

    [/报价]

    每个外设引导加载程序都需要向器件发送密钥、以开始加载应用程序。 如果接收到的密钥无效、器件将引导至闪存。 这允许仍保留闪存引导。 请参阅 C2000Ware 中的引导源代码以帮助理解。

    您可以写入 OTP 中 BOOTCTRL 寄存器的位置对其进行编程。 请参阅 TRM 中的更多详细信息。

    此致

    Chris