讲到U5,首先就不得不提就是TrustZone。6 p1 `) X- l1 y4 [& y2 l ) @- G* a/ \) I: R 话说就在2016的时候ARM推出了两款ARMv8-M架构的新内核M23、M33,众多开发者一脸懵逼,为啥两位数了。M8、M9都不要啦?这玩意跟之前的有啥区别呢?下一代是不是叫M233?突然就从ARMv7-M升级到了ARMv8-M,臣妾好不适应啊。而且你这个M23、M33,性能也打不过M7啊,啥意思啊?你出这干啥,我用M0、M0+/M3、M4不香吗。 " l2 @6 `9 b* f: h, J7 S, k4 u5 v 简单来说ARMv8-M主要就是增加了一个TrustZone(还有很多其他提升哈,并不是这么简单)。- t+ @: }, g3 {; A 那这个TrustZone到底是何方神圣?值得ARM为此升了一个大版本呢? ; r" |* c( f. q 首先TrustZone不是啥新鲜玩意,在Cortex-A系列里面早已被使用。现在聊的这个,更准确的说法应该是TrustZone for ARMv8-M。也就是专供于Cortex-M使用的(下文讲的TrustZone都专指TrustZone for ARMv8-M)。& ~ [0 b5 h9 x/ V- D" P( ` 1 Q! H$ |2 D1 E/ p+ m6 Y 至于TrustZone实现的安全到底是什么,笔者在此说说自己的拙见,各位大佬一笑而过就是。它是为了在新的信息化时代保护自己产品或者说代码的一项技术。比如最常见的代码入侵、网络入侵等等。而在Iot时代,慢慢提供模块已经满足不了新一代开发的需要了、而提供lib更是把自己的命脉交给了别人。 " q9 m3 H2 o7 o0 Y- w* C 在新的需求层出不穷之际,TrustZone应运而生,拿出来了安全最终极的技术----隔离。3 Q8 @$ k2 i" i Y9 M- U" h. O( j( v 对于程序来说安全区域的程序就是真大哥,它有访问所有资源的能力,而非安全区域的就是假大哥,它觉得自己可以,其实不行,只能访问非安全的资源,还有安全区大哥允许它访问的资源。 而这个隔离的实现,代价可以说是巨大的。CPU本身分成了安全模式与非安全模式,代码空间与RAM空间也被分成了两个区域,很多核心资源也被分成了两份(在STM32CubeMX里面配置项使用_NS与_S进行区分),而很多外设也可以配置为安全外设或者非安全外设。/ s: y8 i5 Q, j0 L! f; p, o" n # l! t! r7 l. T6 H5 P. V 虽然TrustZone如此强大,实现它使用的资源也耗费巨大,但仅仅是一个TrustZone并不能真正实现保护,它只是一个基础,而更重要的一层还是在我们开发者这里。TrustZone是一把安全的神兵利器,而如何去保护自己的产品的核心,什么是产品的核心部分,则是我们应该考虑的问题。2 K! [5 i1 b; g W6 n 不知不觉又扯这么多,再单开一篇把,咳咳,文人的事情,怎么能叫水文呢。 ! t* J) ] ?5 _ |
STM32U5 x E-BIKE,记录你的骑行多巴胺
基于STM32U5系列TIMER+DMA+DAC应用经验分享
实战经验 | 基于 STM32U5 片内温度传感器正确测算温度
【文末有礼】新款STM32U5:让便携产品拥有惊艳图效
STM32的CAN FD位定时设置注意事项
【STM32U599】5.聊聊手表菜单
【STM32U599】6.界面切换
【STM32U599】3.写个表盘
【STM32U599】4.引入RTC与MVP开发
【NUCLEO-U545RE-Q】移植TinyML测试数字识别。
了解不多。。。