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

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

3天内不再提示

瑞萨RA产品家族初学者指南-第11章(2)

瑞萨MCU小百科 来源:未知 2023-01-18 12:25 次阅读

瑞萨RA产品家族初学者指南》系列文章已收录成合集,欢迎点击上方查看合集并订阅!

11. 安全性和TrustZone

本章目录

  1. 什么是TrustZone,它有什么作用?

  2. 安全环境和非安全环境的划分

  3. 器件生命周期管理

  4. TrustZone用例

11.2 安全环境和非安全环境的划分

现在我们已经清楚,程序需要划分为安全和非安全环境,我们该如何相应地对软件进行分区?为此,基于TrustZone的系统始终包含两个不同的项目:一个安全项目,另一个是非安全项目。二者都可以利用SRAM以及代码和数据闪存,但只有安全代码可以直接访问两个(安全和非安全)分区。

可借助e2 studio中的项目配置器设置这些项目。创建新项目后,系统将提示您选择项目应具有的类型:

  • 扁平化(非TrustZone)项目

  • TrustZone安全项目

  • TrustZone非安全项目

faa0dd06-96e6-11ed-bfe3-dac502259ad0.jpg

图11-4:通过项目配置器的“Type Selector”(类型选择器)页面,可以在扁平化、安全和非安全项目之间进行选择

请注意,如果选择扁平化(非TrustZone)项目,则微控制器将在引导后保持安全模式。另外,在设置TrustZone项目时需要格外小心,以确保正确管理安全和非安全分区之间的连接。在项目配置器中创建非安全项目时,将非安全项目与安全项目或捆绑包进行关联以实现此要求。在“Project Type Selection”(项目类型选择)屏幕上选择“TrustZone Non-secure Project”(TrustZone非安全项目)并单击“Next”(下一步)后,e2 studio将要求您为非安全项目指定一个对应的安全项目。

创建安全项目后,即可将安全的堆和驱动程序提供给非安全环境。为此,右键单击最上面的模块,从弹出的菜单中选择“Non-secure Callable”(非安全可调用)。选择该条目后,请注意左侧的小箭头:它指示此模块现在为非可安全调用模块(参见图11-5)。

fab2ec76-96e6-11ed-bfe3-dac502259ad0.jpg

图11-5:可以将安全项目中堆栈的最顶层模块设为非安全可调用模块

最后一点是,也可以在e2 studio内对内存进行分区:转到“Run → Renesas Device Partition Manager”(运行 → 瑞萨器件分区管理器),将运行一个实用程序。器件分区管理器可以在开发期间执行生命周期状态管理,另外还允许设置和查询IDAU区域,以及解锁已擦除的闪存模块。

fabf9da4-96e6-11ed-bfe3-dac502259ad0.jpg

图11-6:器件分区管理器可以定义各种内存分区的大小

如果要深入了解用于配置RA产品家族微控制器专用的Arm TrustZone的工具和相关工作流程,您可以识别下方二维码或复制对应的网址在浏览器中打开查看瑞萨网站上提供的RA Arm TrustZone工具入门,介绍有关使用工具和设置项目的基础知识:

facbb620-96e6-11ed-bfe3-dac502259ad0.jpg

https://www.renesas.cn/cn/zh/document/apn/ra-arm-trustzone-tooling-primer

11.2.1 跨边界的函数调用

现在,如果位于非安全环境的应用程序的一部分要调用位于安全环境的闪存外设,以对非安全数据闪存进行编程,会发生什么情况?为此,Arm v8M Cortex-M33内核的指令集中添加了一条新指令:SG或安全网关。该指令必须位于内存的安全和非安全部分之间的非安全可调用(NSC)区域。这可确保即使在安全环境的其他位置找到SG操作码,也不能将其用作入口点。在SG指令之后,可以对安全端的代码进行调用(参见图11-7)。

fad796c0-96e6-11ed-bfe3-dac502259ad0.jpg

图11-7:从非安全环境中调用安全函数

将通过BXNS LR(BXNS = 跳转并交换到非安全状态)操作码从安全端返回到非安全端,此操作将跳转到BL Func_A_Entry分支期间放置在链接寄存器(LR)中的地址。在函数返回时,函数的返回状态被存储在LR中返回地址的LSB中。这一位的数值将和返回到调用函数时的状态进行比较,以防止从非安全代码调用的安全API返回到一个指向安全地址的假返回地址。

在第一条指令不是NSC区域中的SG操作码的情况下,执行位于非安全环境中的代码对安全环境中的代码的调用,则在带CM33内核的微控制器上会发生安全故障。将在安全状态下处理该故障。

还可以从安全代码调用非安全代码,但不建议这样做,因为这有可能导致数据泄露,导致安全问题。安全代码可以通过参数将某些寄存器值传输到非安全环境,并且编译器将从其余寄存器中清除其他安全数据。该机制还隐藏了安全软件的返回地址,从而确保非安全环境中的代码不会操纵返回地址(参见图11-8)。

fae75f38-96e6-11ed-bfe3-dac502259ad0.jpg

图11-8:从安全环境中调用非安全函数

通过BLXNS(通过链接跳转并交换到非安全状态)指令从安全代码调用非安全代码的推荐方法是:在第一次启动时初始化安全环境中的代码,然后将程序控制传递给非安全环境。此后,从非安全环境到安全环境的任何数据传输均应通过FSP回调进行管理。


原文标题:瑞萨RA产品家族初学者指南-第11章(2)

文章出处:【微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。


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

    关注

    146

    文章

    16019

    浏览量

    343636
  • 瑞萨
    +关注

    关注

    32

    文章

    22214

    浏览量

    84915

原文标题:瑞萨RA产品家族初学者指南-第11章(2)

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    国内哪家的FPGA适合初学者

    如题,想着手学习FPGA的话,国内哪家的比较好,更适合初学者学习?这方面的经验,是一点都没。
    发表于 04-14 19:17

    瑞萨电子RA产品家族新增RA0E1 MCU产品

    瑞萨电子RA产品家族新增RA0E1 MCU产品组。RA0E1系列是一款低功耗、低成本微控制器,结
    的头像 发表于 04-11 15:17 355次阅读
    瑞萨电子<b class='flag-5'>RA</b><b class='flag-5'>产品</b><b class='flag-5'>家族</b>新增<b class='flag-5'>RA</b>0E1 MCU<b class='flag-5'>产品</b>组

    初学者请问各位大佬

    为什么在89C51单片机中R1可以提供低地址 在外部扩展RAM中不是P0口提供低8位地址P2口提供高8位地址吗初学者有些不理解望各位大佬解答一下谢谢
    发表于 02-23 16:39

    RA家族QE电机应用开发指南

    电子发烧友网站提供《RA家族QE电机应用开发指南.pdf》资料免费下载
    发表于 01-31 09:57 0次下载
    <b class='flag-5'>RA</b><b class='flag-5'>家族</b>QE电机应用开发<b class='flag-5'>指南</b>

    分享给嵌入式初学者

    电子发烧友网站提供《分享给嵌入式初学者.doc》资料免费下载
    发表于 11-08 10:46 0次下载
    分享给嵌入式<b class='flag-5'>初学者</b>

    面向CAN总线初学者的入门教程

    本资料是CAN初学者的入门书,对 CAN 是什么、CAN 的特征、标准规格下的位置分布等、CAN 的概要及 CAN 的协议进行了说明。
    发表于 10-20 17:25 1次下载

    初学者入门

    太好了,初学者学习慢慢消化中……
    发表于 09-21 13:50

    STM32初学者的考虑因素 STM32标准库和HAL库如何选择

    初学者尝试学习STM32开发时,通常会面临一个关键的选择:是选择STM32的标准库,还是HAL库?这两个库各自有着优势与适用场景,本文将从多个角度分析,帮助初学者更好地选择适合自己的库。 在开始
    发表于 08-08 09:43 1045次阅读

    BMS架构的初学者指南,电池管理系统bms的功能包括哪些

    电池技术的持续转型促使许多新人学习设计电池管理系统。本文提供了电池管理系统(BMS)架构的初学者指南,讨论了主要功能块,并解释了每个模块对电池管理系统的重要性。
    的头像 发表于 07-12 15:41 2260次阅读
    BMS架构的<b class='flag-5'>初学者</b><b class='flag-5'>指南</b>,电池管理系统bms的功能包括哪些

    初学者工具包-沙漏(个人模组)

    电子发烧友网站提供《初学者工具包-沙漏(个人模组).zip》资料免费下载
    发表于 06-26 09:43 0次下载
    <b class='flag-5'>初学者</b>工具包-沙漏(个人模组)

    初学者快速判断并查找出LED显示屏故障的方法

    LED显示屏故障分析对于初学者来说直接、有效的方法就是排除法,LED显示屏主要由三大硬件部分组成:控制卡、单元板、开关电源。LED显示屏故障分析对于初学者来说直接、有效的方法就是排除法,LED显示屏主要由三大硬件部分组成:控制卡、单元板、开关电源。
    的头像 发表于 06-15 14:48 782次阅读
    <b class='flag-5'>初学者</b>快速判断并查找出LED显示屏故障的方法

    《GD32 MCU原理及固件库开发指南》+读后感

    4~8偏重实践,主要以实例来讲解工程应用。如果你是一名经验丰富的资深用户,对GD32 MCU已经有了一定的了解,可以从4开始阅读。如果你是一名
    发表于 06-06 21:52

    RA MCU创意氛围赛】3. 硬件I2C驱动OLED显示汉字

    RA MCU创意氛围赛】1. PWM驱动LED以及STLINK下载配置【RA MCU创
    发表于 05-26 14:06

    PLC初学者必须掌握的梯形图

    PLC初学者必须掌握的七大梯形图
    发表于 05-25 16:44 4次下载

    RA MCU创意氛围赛】以RA2E的车载VFD屏幕时钟

    引言 很高兴能有机会参加【RA MCU创意氛围赛】,在以前学习stm32的时候,就是野火的开发板、文档以及视频带我入门的。现在有空体验一下野火的产品——
    发表于 05-21 17:02