0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Cortex-M33内核的系列

STM32单片机 来源:STM32单片机 作者:STM32单片机 2020-06-19 11:35 次阅读

前言

STM32L5是STM32家族中第一个基于Cortex-M33内核的系列,而TrustZone正是此内核最重要的特性,使能TrustZone的方法非常简单,在RDP=0的情况下直接在option byte中将TZEN置1即可,但是一旦TrustZone使能后,与其相关的安全特性也将开启,由于安全方面的特性,在TrustZone已经打开的情况下欲将其再次关闭却不能像打开时那样那么简单操作了。本文将以用户的视角描述一下关闭TrustZone的过程。

过程

为了讲述这一过程,我们将以NUCLEO-L552ZE-Q这块板子为例,工具使用STM32CubeProgrammer V2.4.0

首先通过CubeProgrammer这个工具将MCU的TrustZone打开, 在此之前读保护RDP=0,是用户面临的选项字节最初始状态:

按客户的操作思路,接下来我们尝试关闭TrustZone。

首先,直接在option byte中直将TZEN后那个勾去掉,然后Apply。

此时会出现错误,如上图所示。

基于Cortex-M33内核的系列

在TrustZone已经激活的情况下,是不能直接将其关掉的。

接下来查看参考手册,在RM0438 4.4.2节有讲述到如何将TrustZone关闭的内容:

基于Cortex-M33内核的系列

显然,原来TrustZone关闭必须是在读保护从RDP1回退到RDP0的同时进行才可以。

首先,我们要将RDP设置为level1,然后再回退

基于Cortex-M33内核的系列

如上图所示,在设置RDP1的时候, 此时会出现警告,意思是说在TrustZone开启的情况下尝试使能RDP,如果当前FLASH内的代码不能使得芯片上电后执行的程序最终跳转到NS空间,将会导致关闭trustzone和回退RDP失败,强烈建议将nSWBOOT0设置为1。这样可以确保我们可以通过调整PH3/Boot0引脚电平来从系统bootloader启动,这是一定可以跑到NS程序空间的。【NS:Non-Secure】

我们先选择“取消”,然后检查nSWBOOT0的设置:

基于Cortex-M33内核的系列

如上图所示,nSWBOOT0的值已经为1,是OK的,其值表示BOOT0的值将从PH3引脚的状态来决定 。

既然关闭TrustZone必须是RDP从LEVEL 1回退到LEVEL 0的过程中操作才行,那么我们必须要先将RDP设置为LEVEL 1才行。使能RDP LEVEL 1:

基于Cortex-M33内核的系列

如上图所示,警告意思是: 你确定?你的MCU将可能永远丧失!

点击OK。如下图所示:

基于Cortex-M33内核的系列

表示FLASH内的数据已经不能读取了,RDP LEVEL 1使能后,FLASH的内容自然不能再读出,点击OK。

基于Cortex-M33内核的系列

此时再次尝试连接,则出现如下界面所示 :

基于Cortex-M33内核的系列

此时,ST-Link果然不能再连接。

那么接下来我们该如何做呢?-》拉高PH3, 让MCU从RSS启动。

以NUCLEO-L552-Q板为例,将PH3拉到VDD后,再次上电重启,此时板上的蓝色的LD2和红色LD3亮起。按照这块板子的用户手册UM2581,章节6.11.2说明:直接把CN11上的引脚5(VDD)和引脚7(PH3_BOOT0)短接即可。

使用Cubeprogrammer,以hotplug模式进行连接(Mode :Hot plug) :

基于Cortex-M33内核的系列

尝试连接:

基于Cortex-M33内核的系列

如上图所示,ST-Link已经连接上,只不过由于RDP LEVEL 1使能了而不能读取FLASH内容,但此时option bytes是可以修改的。

打开Option byte界面,在User configuration下将TZEN对应的复选框内的勾去掉,然后再将Read Out Protection下的RDP改回LEVEL 0,然后点击Apply

基于Cortex-M33内核的系列

上图表示已经修改成功,断开连接,断开电源,然后将PH3引脚的高电平恢复到低电平。上电后再次连接…

基于Cortex-M33内核的系列

如上图所示,再次连上时,FLASH的内容由于RDP LEVEL 1回退到LEVEL 0时被全部清空。此时再次查看RDP和TZEN的值 :

基于Cortex-M33内核的系列

基于Cortex-M33内核的系列

RDP恢复到LEVEL 0,TrustZone成功关闭。

后注 :

1》 关闭trustzone需要通过RDP级别回退完成。

2》 nSWBOOT0=1 && BOOT0/ PH3引脚为高,使得上电后系统从RSS启动。

3》 在STM32CubeProgrammer中使用hot plug连接方式是为了让MCU从RSS启动后,在运行到NS空间的时候方便跟调试端口连接,以便进行后续的Option Bytes修改操作。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39844
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87590
  • trustzone
    +关注

    关注

    0

    文章

    20

    浏览量

    12493
收藏 人收藏

    评论

    相关推荐

    兆易创新推出GD32F5系列Cortex-M33内核MCU

    兆易创新GigaDevice宣布,正式推出GD32F5系列高性能微控制器,该系列MCU基于Arm® Cortex®-M33内核,旨在满足各类
    的头像 发表于 03-16 09:58 556次阅读

    兆易创新推出GD32F5系列Cortex®-M33内核MCU

    业界领先的半导体器件供应商兆易创新GigaDevice 今日宣布,正式推出基于Arm® Cortex®-M33内核的GD32F5系列高性能微控制器,全面适配于能源电力、光伏储能、工业自
    的头像 发表于 03-07 11:40 378次阅读
    兆易创新推出GD32F5<b class='flag-5'>系列</b><b class='flag-5'>Cortex</b>®-M<b class='flag-5'>33</b><b class='flag-5'>内核</b>MCU

    兆易创新推出基于Arm® Cortex®-M33内核的GD32F5系列高性能微控制器

    中国北京(2024年3月7日)——业界领先的半导体器件供应商兆易创新GigaDevice (股票代码 603986) 今日宣布,正式推出基于Arm Cortex-M33内核的GD32F5系列高性能微控制器,全面适配于能源电力、光
    的头像 发表于 03-07 09:09 468次阅读
    兆易创新推出基于Arm® <b class='flag-5'>Cortex</b>®-M<b class='flag-5'>33</b><b class='flag-5'>内核</b>的GD32F5<b class='flag-5'>系列</b>高性能微控制器

    STM32 Cortex®-M33 MCU编程手册

    本编程手册为应用程序和系统级软件开发人员提供信息。它给出了完整的描述STM32 Cortex-M33处理器编程模型、指令集和核心外设。适用的产品有列在下表中。Cortex-M33处理器是为微控制器
    发表于 01-09 09:50 6次下载

    Arm Cortex R4F内核M4F内核有什么区别?

    TI的FAE给推荐了一款基于Arm Cortex R4F内核的MCU TMS570系列,不知道这个内核与ARM Cortex
    发表于 11-06 07:13

    LPC55S69是两个ARM Cortex M33内核,这种双内核应用在那种场景中比较合适?

    NXP的LPC55S69是两个ARM Cortex M33内核,这种双内核应用在那种场景中比较合适?显示全部
    发表于 10-30 07:40

    AT32 MCU Cortex M4内核入门指南

    AT32 MCU Cortex M4内核入门指南主要介绍了AT32 M4 内核系统架构,并针对M
    发表于 10-25 08:08

    北欧半导体推出128 MHz nRF54L15 Cortex-M33多协议无线微控制器

    Nordic Semiconductor最近推出了128 MHz nRF54L15 Cortex-M33多协议无线微控制器,这是nRF54L系列的第一款,也是继去年春天推出更强大的 320 MHz
    的头像 发表于 10-17 11:56 1193次阅读

    如何将基于ARM快速模型的Cortex-M33物联网套件FvP与MDK工具链一起使用

    本文档介绍了如何将基于ARM快速模型的Cortex-M33物联网套件FvP与MDK工具链一起使用的分步过程。 虽然我们已经测试了这些实现,但还会对工具和FPGA映像进行更新。 预计这些实现和后续实现之间会有差异。
    发表于 09-05 07:22

    ARM Cortex-M处理器对比表

    4 Cortex-M33 Cortex-M35P Cortex-M55 Cortex-M7 Cortex-M85指令集体系结构ARMv6-
    发表于 08-29 07:00

    ARM Cortex-M33处理器数据表

    ARM Cortex-M33处理器是第一款ARMv8-M处理器,旨在满足嵌入式和物联网市场,特别是那些需要高效安全或数字信号控制的市场。 ARMv8-M引入了TrustZone,这构成了嵌入式和物
    发表于 08-28 06:12

    ARM Cortexex-M33设备通用用户指南

    基础,具有高性能处理器性能、快速处理器处理器和增强系统调试的系统,使其适合对嵌入应用的要求; 定式处理器通过高效的指令设置和广泛优化设计提供超常能效率; Cortex-M33处理器处理器提供高端处理硬件,包括:
    发表于 08-24 08:10

    Cortex-M33 Cycle Model用户指南

    本节总结了循环模型与硬件的功能,并描述了循环模型的性能和准确性。有关详细信息,请参阅Cortex-M33技术参考手册(Arm 100230)
    发表于 08-12 07:53

    FPGA云:基于Cortex-M33的平台技术参考手册

    FPGA云:基于Cortex-M33的平台技术参考手册
    发表于 08-02 14:53

    i.MX 93系列赋能智能边缘

    i.MX 93系列应用处理器是恩智浦新一代i.MX 9应用处理器系列的第一款产品i.MX 93系统级芯片(SoC)集成了一个或两个Arm®Cortex®-A55内核、一个Arm
    的头像 发表于 05-25 10:36 914次阅读
    i.MX 93<b class='flag-5'>系列</b>赋能智能边缘