实现 MPU 安全

加密、身份验证和其他安全方法可以很好地保护通过 Internet 传输的数据和程序更新。也就是说,除非一端很容易被黑客入侵以窃取密钥并可能植入恶意软件以供将来激活。然后,在系统运营商不知情的情况下,机密信息每天都在被盗,可能的重大服务中断就在眼前。
自 2005 年推出 Cortex-M 架构以来,已经出货了大量基于 Cortex-M MCU 的产品。其中许多产品都连接到 Internet。目前正在使用 Cortex-M MCU 开发许多新产品,并且由于物联网的经济激励,其中更大比例的产品将连接到互联网。在绝大多数情况下,这些嵌入式设备几乎没有或根本没有防止黑客入侵的保护措施。
大多数 Cortex-M MCU,无论是在现场还是在开发中,都具有内存保护单元 (MPU)。然而,由于交付产品的时间紧迫以及使用 Cortex-M MPU 的困难,这些 MPU 要么使用不足,要么根本没有使用。由于 MPU 要求 MPU 区域的大小为 2 的幂并且它们在大小边界上对齐,因此明显的大量内存浪费是内存有限的系统采用的另一个障碍。
然而,对于这些 MCU,MPU 和 SVC 指令是实现可接受安全性的唯一手段。因此,我一年半前就着手确定 MPU 的问题是否可以克服,是否可以设计一种实用的方法来升级后期和后期开发项目,以及使用 MPU 的新项目安全。我发现这样做是可行的,并且 MPU-Plus 已被开发以简化此过程。
所有现有的嵌入式系统都使用 Cortex-v7M 架构。一年多前宣布的 Cortex-v8M 架构提供了更好的安全保护。不幸的是,处理器供应商采用它的速度很慢,几乎所有新的 MCU 仍然使用 Cortex-v7M 架构。因此,后者将伴随我们很长一段时间。因此,本文介绍了将现有系统移植到 Cortex-v7M MPU 的分步过程。
港口
我最近完成了使用 Cortex-M MPU 将大量中间件移植到非特权模式 (umode) 分区的工作。移植的代码包括:

文件演示。
文件系统。
USB 大容量存储类驱动程序。
USB 主机堆栈。
Synopsys 主机控制器驱动程序。

总而言之,这相当于大约 20,000 行代码——不是一个小端口。
我从这个端口学到的教训是:

有用!
它可以由不是代码作者的人完成。

我对上面的代码有些熟悉,但我不是它的作者。此外,它是几年前创建的,远非移植到 MPU 的理想选择。此端口的重要性在于它证明了提高使用 Cortex-M 处理器和 MPU 的项目后期和项目后系统

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值