查看原文
其他

Cortex M33 内核初体验-基于STM32L552开发板

非典型技术宅 非典型技术宅 2024-01-03

Crotex M33内核介绍

絮絮叨叨

前段时间参加ST的研讨会,会议介绍了STM32L5系列MCU,幸运的是在后面抽奖活动中,我正好抽到了STM32L552ZE开发板。


最近正好涉及物联网安全方面内容,于是乎拿着板子上手体验一番。


01

Cortex M33 内核

众所周知,ARM Cortex系列处理器主要有三大系列,分别是:A系列,主要应用于复杂处理器内核;R系列:针对高性能实时应用;M系列:主要应用与低功耗与成本敏感性应用。


Cortex M33内核继承Cortex-M3和Cortex-M4,但是却推出了更多新的特性。Cortex M33内核使用的是ARM v8构架,其可选配DSP、MPU、FPU等多个组件。

其中在这些功能里面最让人瞩目的是其TrustZone功能。这也是ARM Cortex M33 提升物联网安全的核心所在。


02

TrustZone技术

TrustZone技术的核心理念是将系统软件和硬件资源分为两个区:安全区和非安全区。将一些核心的安全数据和代码放到安全区进行执行。

安全区的代码可以访问非安全的代码,而非安全区的代码却只能通过Monitor Mode来进行访问预留的API接口。

内核结构图如下所示:


目前大多数手机大多都使用了TrustZone技术来对指纹等核心隐私数据进行储存和加密。在使用使用时非安全代码,通过特定API请求数据,来获取安全区内的数据。


即使在非安全区代码有漏洞被入侵后,非安全应用得知了与安全区通信的API接口格式和位置,但安全区传递出来的是经过私钥加密的签名,而非私钥,私钥仅在安全区内使用并且不会对外直接传递,这就从源头上杜绝了隐私泄露。


03

STM32L552 开箱评测

我手中的板子时NUCLEO_L552ZE_Q,其外形和其他144脚的NUCLEO板结构相同,都是蓝白配色。其引脚同样是支持ST Zio(同时兼容Arduino Uno 接口)和ST morpho(全扩展接口,将所有I/O引脚全部引出)。



开发工具:STM32CubeProgrammer 2.5、STM23CubeMx 6.1、MDK-ARM 5.31


基本开发流程

在使用STM32CubeMX 配置完成启用的功能后,生成导出MDK工程。其默认生成两个工程,一个为安全的工程代码,另一个为非安全区的工程代码。

首先编译生成安全代码,然后编译非安全区代码。然后倒序下载即可~


更多具体的开发流程和实际应用,在后续的文章会逐渐说明,这篇文章从平安夜写到了圣诞节,所以就先祝大家圣诞节快乐啦~


参考资料

https://www.st.com/zh/microcontrollers-microprocessors/stm32l552re.html

https://developer.arm.com/ip-products/processors/cortex-m/cortex-m33

https://blog.csdn.net/guyongqiangx/article/details/78020257

https://blog.csdn.net/yazhouren/article/details/106803179

https://blog.csdn.net/Mark_md/article/details/109518418

THE

END


这里是非典型技术宅

如果本文对你有帮助,那就点个转发再看吧~


微信号|非典型技术宅

新浪微博|秀米XIUMI

往期回顾

单片机复位电路详解 

预处理指令之define 

预处理指令之#include 

从编码到运行-程序编译过程详解 

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存