Cortex M33 内核初体验-基于STM32L552开发板
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
从编码到运行-程序编译过程详解