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

    文章

    17148

    浏览量

    351186
  • 瑞萨
    +关注

    关注

    35

    文章

    22309

    浏览量

    86305

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

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

收藏 人收藏

    评论

    相关推荐

    FPB-RA6E2 评估板入门学习

    FPB-RA6E2 评估板入门学习
    的头像 发表于 12-11 09:22 187次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b> FPB-<b class='flag-5'>RA6E2</b> 评估板入门学习

    电子RA2L1 MCU产品介绍

    RA2L1 MCU是RA家族RA2系列广受欢迎的一款产品
    的头像 发表于 12-10 10:51 270次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA2</b>L1 MCU<b class='flag-5'>产品</b>介绍

    e2studio(1)----芯片之搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发针对
    发表于 09-30 15:28

    试用活动 | 100套!!RA6E2/RA4E2开发板评测活动

    活动简介: RA6E2/RA4E2开发板评测活动是一个针对电子推出的通用微控制器(MCU
    的头像 发表于 09-10 11:18 613次阅读
    试用活动 | 100套!!<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA6E2</b>/<b class='flag-5'>RA4E2</b>开发板评测活动

    RA2L1系列CAN通信应用

    RA2L1系列CAN通信应用
    的头像 发表于 06-26 08:06 608次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA2</b>L1系列CAN通信应用

    RA0E1开发分享之一

    介绍生态社区的RA0E1开发板。
    的头像 发表于 05-10 13:57 926次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>0E1开发分享之一

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

    电子RA产品家族新增RA0E1 MCU产品组。
    的头像 发表于 04-11 15:17 916次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<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>组

    RA MCU家族推出集成Arm® Cortex®-M23内核的全新RA0系列

    RA MCU家族推出全新的RA0系列,RA0E1产品
    的头像 发表于 04-10 14:32 1302次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> MCU<b class='flag-5'>家族</b>推出集成Arm® Cortex®-M23内核的全新<b class='flag-5'>RA</b>0系列

    电子RA家族推出RA8系列高算力通用MCU

    电子RA家族推出RA8系列高算力通用MCU,是业界首款基于Arm® Cortex®-M85(CM85)内核的32位MCU,主频高达480
    的头像 发表于 04-02 14:14 1440次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b><b class='flag-5'>家族</b>推出<b class='flag-5'>RA</b>8系列高算力通用MCU

    电子发布全新RA2A2微控制器产品

    全球半导体领军者电子今日瞩目发布全新RA2A2微控制器(MCU)产品群,这款产品群以高效的Arm® Cortex®-M23处理器为核心。
    的头像 发表于 03-22 11:37 833次阅读

    RA家族Arm®DSP示例应用说明

    电子发烧友网站提供《RA家族Arm®DSP示例应用说明.pdf》资料免费下载
    发表于 02-28 09:21 0次下载
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>Arm®DSP示例应用说明

    RA8T1高性能电机控制新品解读(上)产品详解篇

    RA家族基于Arm® Cortex®-M内核打造,自2019年10月份正式诞生,短短四年多时间已经快速发展成广泛的产品阵容,众多型号用
    的头像 发表于 02-21 12:15 1309次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8T1高性能电机控制新品解读(上)<b class='flag-5'>产品</b>详解篇

    RA家族 RA AWS MQTT/TLS云连接解决方案-蜂窝应用说明

    电子发烧友网站提供《RA家族 RA AWS MQTT/TLS云连接解决方案-蜂窝应用说明.pdf》资料免费下载
    发表于 02-19 11:00 0次下载
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b>  <b class='flag-5'>RA</b> AWS MQTT/TLS云连接解决方案-蜂窝应用说明

    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>

    RA家族RA AWS MQTT/TLS云连接解决方案-以太网

    电子发烧友网站提供《RA家族RA AWS MQTT/TLS云连接解决方案-以太网.pdf》资料免费下载
    发表于 01-03 09:52 0次下载
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>家族</b><b class='flag-5'>RA</b> AWS MQTT/TLS云连接解决方案-以太网