主题中讨论的其他器件: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。
谢谢。