
讲到U5,首先就不得不提就是TrustZone。 话说就在2016的时候ARM推出了两款ARMv8-M架构的新内核M23、M33,众多开发者一脸懵逼,为啥两位数了。M8、M9都不要啦?这玩意跟之前的有啥区别呢?下一代是不是叫M233?突然就从ARMv7-M升级到了ARMv8-M,臣妾好不适应啊。而且你这个M23、M33,性能也打不过M7啊,啥意思啊?你出这干啥,我用M0、M0+/M3、M4不香吗。 简单来说ARMv8-M主要就是增加了一个TrustZone(还有很多其他提升哈,并不是这么简单)。 那这个TrustZone到底是何方神圣?值得ARM为此升了一个大版本呢? 首先TrustZone不是啥新鲜玩意,在Cortex-A系列里面早已被使用。现在聊的这个,更准确的说法应该是TrustZone for ARMv8-M。也就是专供于Cortex-M使用的(下文讲的TrustZone都专指TrustZone for ARMv8-M)。 至于TrustZone实现的安全到底是什么,笔者在此说说自己的拙见,各位大佬一笑而过就是。它是为了在新的信息化时代保护自己产品或者说代码的一项技术。比如最常见的代码入侵、网络入侵等等。而在Iot时代,慢慢提供模块已经满足不了新一代开发的需要了、而提供lib更是把自己的命脉交给了别人。 在新的需求层出不穷之际,TrustZone应运而生,拿出来了安全最终极的技术----隔离。 对于程序来说安全区域的程序就是真大哥,它有访问所有资源的能力,而非安全区域的就是假大哥,它觉得自己可以,其实不行,只能访问非安全的资源,还有安全区大哥允许它访问的资源。 而这个隔离的实现,代价可以说是巨大的。CPU本身分成了安全模式与非安全模式,代码空间与RAM空间也被分成了两个区域,很多核心资源也被分成了两份(在STM32CubeMX里面配置项使用_NS与_S进行区分),而很多外设也可以配置为安全外设或者非安全外设。 虽然TrustZone如此强大,实现它使用的资源也耗费巨大,但仅仅是一个TrustZone并不能真正实现保护,它只是一个基础,而更重要的一层还是在我们开发者这里。TrustZone是一把安全的神兵利器,而如何去保护自己的产品的核心,什么是产品的核心部分,则是我们应该考虑的问题。 不知不觉又扯这么多,再单开一篇把,咳咳,文人的事情,怎么能叫水文呢。 |
STM32U5低功耗测试
STM32怎么选型
内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略
【STM32U545】实现CAN数据收发
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信
STM32U5 x E-BIKE,记录你的骑行多巴胺
基于STM32U5系列TIMER+DMA+DAC应用经验分享
实战经验 | 基于 STM32U5 片内温度传感器正确测算温度
【文末有礼】新款STM32U5:让便携产品拥有惊艳图效
了解不多。。。