我要为防止被擦除的自定义引导加载程序保护2个闪存扇区。 我希望能够启动到闪存的这个部分并从这个部分执行、同时还希望将一个刷新算法从这个部分转移到 RAM 中、以便在需要刷新时执行。 是否可以启动到闪存的安全段?
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.
我要为防止被擦除的自定义引导加载程序保护2个闪存扇区。 我希望能够启动到闪存的这个部分并从这个部分执行、同时还希望将一个刷新算法从这个部分转移到 RAM 中、以便在需要刷新时执行。 是否可以启动到闪存的安全段?
Philip、
我会看一下该软件资源(以及链接的应用手册) https://software-dl.ti.com/C2000/docs/software_guide/c2000ware/lfu.html 、其中介绍了如何使用您提到的2个闪存块来实现实时固件更新方案。
关于保护闪存而不会被擦除的问题、我要参考 F28004x TRM的第144页详细介绍了当被激活时、DCSM 如何在 DCSM 处于锁定状态时阻止闪存 API 擦除/重新编程不同的闪存扇区。 对于重新编程、您可以解锁器件、或者可以从属于闪存所在同一区域的安全存储器运行闪存 API。 DCSM 一章通常会对您想要执行的操作很有用。
此致!
马修
Philip、
由于用于安全(密码、GRABRAM、EXEONLY 等)的信息被存储在 OTP 中、它只能被写入1次。 如果要更改这些参数、我们需要另一组 OTP 位置来写入新值。 所使用的区域选择块在 第141页的 TRM 中的链接指针(图片如下、单击可放大)中进行配置
可能更多用于调试而更少用于生产中的某些东西、这允许用户30种不同的配置、直到无法再更改器件。
在较旧的 C2000器件(第1代和第2代)上、此信息存储在常规闪存中、可以根据需要对其进行擦除/重新编程、因此不需要多个区域选择块。 我们将密码和其他选择移至第3代的 OTP、以解决如果主阵列编程/擦除操作中断、则无法损坏密码、从而导致设备永久锁定的问题。
完成此操作后、我们需要一种方法允许多个用户配置这些位、从而导致区域选择块。 我们认为30个机会应该足以应对变化、而不会对客户造成太多限制。 我说过、30可能比大多数应用在其生命周期中实现这些功能所需的要多。
此致!
马修
