工具与软件:
您好!
我将为我的客户提供用于各种 C2000微控制器的 CAN 引导加载程序。 现在、我正在完成加密固件更新选项、这就是我不得不思考一些 C2000 μ µCs 中实现的 DCSM 的地方。
通常、对于引导加载程序而言、使用时需要一定的闪存、但实际上不需要 RAM。 原因是、应用程序和引导加载程序绝不会同时运行。 因此当两者之一运行时、可以完全使用 RAM。
我使用对称加密/签名算法、需要使用常规密钥与引导加载程序一起存储。 禁用 JTAG 即可确保密钥的安全、但可能会利用引导加载程序或应用程序中的错误来读取闪存(因此会损害应用程序的机密性和/或密钥)。
DSSM 将对某些闪存扇区的访问限制为仅执行的功能似乎非常适合该问题。 但是:引导加载程序需要 RAM 的某些部分从那里运行闪存库。 根据我对这个概念的理解、只有当 RAM 被分配到同一个区域并且只被设定为执行时、才可以将库从闪存复制到 RAM 中。
将这个 RAM 部分设置到一个特定的区域并且只执行、RAM 将不再能够被应用使用(除了在将应用程序闪存分配给同一个区域时将它用于相似的用途之外)。
是否可以通过某种方法来克服此限制、将 bootloader 闪存存储器设置为仅执行、从而使整个 RAM 仍可用于应用?
此致
Torsten