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

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

3天内不再提示

详细介绍RH850U2A芯片相关的功能

工程师邓生 来源:汽车电子嵌入式 作者:Tomas Li 2022-08-31 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

RH850U2A芯片是瑞萨公司针对电控类域控制器而发布的一块最新MCU芯片,功能及其强大。本系列文章讲详细介绍RH850U2A相关的功能,本文为RH850U2A-MPU功能详解。

a4f70d40-28b8-11ed-ba43-dac502259ad0.png

正文

1.MPU功能简述

MPU保护与当前执行的代码“不相关“的所有数据。“不相关”是相关内存地址的权限受限制,或者是程序访问内存地址的范围于其无关,阻止关键数据被破坏,使嵌入式系统更加健壮与安全。

MPU作用主要有两个方面:为两个保护,一个检测。

1)MPU的保护作用

指访问区域的保护和读写区域的保护。

① 访问区域的保护。

可以将内存区域划为特权区域和普通区域,特权区域只有特权用户才能访问,普通用户被禁止访问,以此来保护特定的数据。

常见的应用场景:

1> 对带系统的来说,可以设置数据,以防止用户应用程序破坏操作系统使用过程中的数据。

2> 隔离任务,以防止一个任务访问其他任务的数据。

3> 将SRAM或者RAM空间定义为不可执行,防止代码注入。

② 读写区域的保护。

设置指定的区域为只读,可以有效的防止比较关键的数据被错误修改。

2)MPU的检测功能

指可以检测堆和栈的溢出情况及数组有没有越界。

功能安全中对内存分区MPU的相关描述:汽车ECU软件是高度模块化的嵌入式软件,其功能实现是可以为非功能安全,和功能安全的SWC组合,它们分别拥有不同的ASIL安全等级。

根据ISO26262,如果嵌入式软件包含不同ASIL等级的SWC,要么整个软件工程都需要基于最高安全等级的要求进行开发,需要保证拥有更高安全等级的SWC的操作不会受到其他SWC的干扰,也即需要做到FFI(Freedom from interference)的设计。

基于更低安全等级要求开发的SWC,可能会出现错误地访问到更高安全等级SWC的内存区域,产生干扰。

为此,SWC需要运行在不同的内存区域,或者不同的内存分区,来防止类似的内存访问违例。

ISO26262中,以下内存相关的故障影响被视为SWC之间产生干扰的原因:

-内容损坏

-读写区域属于另一个SWC

-数据不一致

-栈溢出或栈下溢

要满足上述定义,是MPU内存保护的目标, 也可以通过限制对于内存以及内存对应的硬件的访问。

这里的内存分区意味着:

各OS Application运行在相互保护(不干涉)的内存区域 ,在某一个分区上运行的代码,无法修改另一个分区的内存。

内存分区也可以保护只读内存段(例如代码执行)以及内存对应的硬件。

内存分区和用户/特权模式可以保证SWC之前互不干扰——即使某一个SWC出现了内存相关的故障,也不会对其他软件模块有影响。

如果一个SWC运行在用户模式,那么它对CPU资源/指令的访问也是受限制的。

MPU的微控制器有专用的硬件:即内存保护单元(MPU),来支持内存分区。

2.RH850内存保护单元架构

RH850U2A芯片具有内存保护/保护功能,防止对内存数据的错误访问,并控制外围模块的寄存器。下图1显示了内存保护的整体架构。每个可编程核心(总线主机)都有一个内存保护单元(MPU),它定义了软件访问保护。此外,每个资源(总线从设备)都有一个守卫来控制任何总线主设备的访问,包括那些没有MPU的,比如DMA

a524f598-28b8-11ed-ba43-dac502259ad0.png

3.使用RH850U2A的MPU

3.1RH850U2A的MPU配置过程

1)第一步,配置MPIDn寄存器。在使能了MPU功能后,哪些硬件模块还可以访问所有的内存保护区域。

2)第二步,配置MPIDX寄存器。配置每一个内存保护块的时候,需要先配置MPIDX寄存器直没entry ID。

3)第三步,配置MPLA寄存器。配置每一个内存保护块的Minimum地址。

4)第四步,配置MPUA寄存器。配置每一个内存保护块的Maximum地址。

5)第五步,配置MPAT寄存器。配置每一个内存保护块的USER/SVP模式下的可读、可写、可执行的属性。

6)第6步,配置MPM寄存器。使能MPU功能。

a54a4f14-28b8-11ed-ba43-dac502259ad0.png

3.2 RH850U2A-MPU相关寄存器配置使用的指令

a57547f0-28b8-11ed-ba43-dac502259ad0.png

使用 void __LDSR(int regID, int selID, unsigned int val);

Note: 什么是寄存器的regID和sellD? -- __LDSR()函数接受一个32位整数参数(作为它的最后一个参数),并将其存储到系统寄存器中,与它的第一个参数指定的数字相对应,该参数必须立即是一个常量。在RH850和以后的处理器上,它还需要另一个参数,该参数指定寄存器组号,它必须立即是一个常量。简单来讲regID就是寄存器ID,sellD就是寄存器所在的组ID。

a5a5edc4-28b8-11ed-ba43-dac502259ad0.png

3.3 配置MPID寄存器

MPID寄存器配置哪一些模块可以直接访问内存保护区域。

a5d86e2a-28b8-11ed-ba43-dac502259ad0.png

下表记录了有哪些SPID可以配置为直接访问内存保护区域

a5f90f0e-28b8-11ed-ba43-dac502259ad0.png

示例:__LDRS(24, 5, 0)//CPU0可以访问保护区域

3.4配置MPIDX寄存器

每一个内存保护块都有一个IDX(最多32个,0-31),在配置每一个内存保护块的访问属性的时候,首先要配置MPIDX寄存器。

a61f21bc-28b8-11ed-ba43-dac502259ad0.png

示例:__LDRS(16,5,0);//通过MPIDX寄存器配置第一个entry的IDX。

3.5配置MPLA寄存器

MPLA配置当前内存保护块(MPIDX == 0-31)的起始地址(Minimum Address)

a634b054-28b8-11ed-ba43-dac502259ad0.png

示例:__LDRX(20,5, 0x00007F00);

3.6配置MPUA寄存器

MPLA配置当前内存保护块(MPIDX == 0-31)结束地址(Maximum Address)

a660a1aa-28b8-11ed-ba43-dac502259ad0.png

示例:__LDRS(20,5,0x00017FFC);

3.7 配置MPAT寄存器

MPAT寄存器配置每一个内存保护块的访问属性(user模式下的可读UR、可写UW、可执行UX; supervisor模式下的可读SR、可写SW、可执行SX)

a6942854-28b8-11ed-ba43-dac502259ad0.png

a6cd2884-28b8-11ed-ba43-dac502259ad0.png

a6ed821e-28b8-11ed-ba43-dac502259ad0.png

3.8 配置MPM寄存器

使能(Enable)MPU功能

a70e1aba-28b8-11ed-ba43-dac502259ad0.png

4.内存保护单元MPU异常提示信息

4.1 MDP/MIP Exception

产生内存保护后会产生MIP/MDP Exception(异常中断地址偏移,0x90,如果我们设置EBASE为0x00080000,那么异常中断的绝对地址就是0x00080090)。

a72ce3fa-28b8-11ed-ba43-dac502259ad0.png

在MIP/MDP Exception的异常中断处理函数汇总一般会条用_Os_Abort触发OS调用ShutdownHook函数,在这个函数里面我们可以做一些故障信息保存动作。

4.2 MEA和MEI寄存器

产生了MIP/MDP异常之后,MEA寄存器会存储异常地址,MEI寄存器会存储异常指令。

a7534054-28b8-11ed-ba43-dac502259ad0.png

a7840324-28b8-11ed-ba43-dac502259ad0.png

5.总结

本文介绍了MPU的基本原理,以及结合RH850U2A芯片详细介绍了MPU的配置使用过程,同时介绍了MPU保护功能产生后如何去识别异常信息。MPU在实际项目功能中非常的有用,如果使能了MPU,同时能通过有效的方法记录MPU异常中断时的MEI/MEA寄存器的信息,那么在发生了异常复位后就能通过历史信息来定位复位的SWC(实际项目中不可能一直都有仿真的机会,所以这个功能非常的重要)。

Note: MPU的配置及使能一般都是在EcuM_Init之前完成。



审核编辑:刘清

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

    关注

    114

    文章

    17877

    浏览量

    195104
  • 寄存器
    +关注

    关注

    31

    文章

    5619

    浏览量

    130410
  • MPU6050
    +关注

    关注

    39

    文章

    313

    浏览量

    77078
  • MCU芯片
    +关注

    关注

    3

    文章

    260

    浏览量

    13022

原文标题:MPU功能详解-以RH850U2A为例

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ATmega8U2/16U2/32U2微控制器:高性能与低功耗的完美结合

    的8位微控制器,它基于AVR增强型RISC架构,具备高性能、低功耗等诸多优点,下面就为大家详细介绍。 文件下载: ATMEGA8U2-MUR.pdf 一、核心特性 1. 高性能架构 ATmega8
    的头像 发表于 04-06 13:50 632次阅读

    RZ/V2N Group芯片功能、特性与设计考量

    。本文将详细介绍RZ/V2N Group芯片的特性、引脚、电气特性等方面,为电子工程师在设计过程中提供全面的参考。 文件下载: r01ds0466ej0120-rzv
    的头像 发表于 04-01 11:35 190次阅读

    RH1965MK:低噪声、低 dropout 线性调节器的详细解析

    RH1965MK:低噪声、低 dropout 线性调节器的详细解析 在电子设计领域,线性调节器是不可或缺的组件,它能为各种电路提供稳定的电压输出。今天,我们就来深入了解一款名为 RH
    的头像 发表于 03-22 15:15 597次阅读

    探索可调 2.8A 单电阻低压差稳压器 RH3083MW

    探索可调 2.8A 单电阻低压差稳压器 RH3083MW 在电子设备的设计中,稳压器扮演着至关重要的角色,它能为电路提供稳定的电压,保障设备的正常运行。今天我们就来深入了解一款由 Analog
    的头像 发表于 03-22 15:10 603次阅读

    基于瑞萨RH850/U2x与IAR工具链的开发实践网络研讨会回看

    在汽车产业迈向电气化与智能化的浪潮中,高性能、高安全性的芯片与高效可靠的开发工具,共同构成了技术创新的坚实基石。瑞萨电子作为全球汽车半导体领域的领导者,其RH850/U2AU2B及
    的头像 发表于 03-18 10:24 691次阅读

    4.5A, 500kHz降压开关稳压器RH1959技术剖析

    生产线按照MIL - PRF - 38535 Level V标准制造的详细要求,相关制造流程可参考ADI STANDARD SPACE PRODUCTS PROGRAM手册。该文档详细介绍
    的头像 发表于 03-03 16:55 775次阅读

    深入剖析RH101A运算放大器芯片规格

    深入剖析RH101A运算放大器芯片规格 在电子工程师的日常工作中,运算放大器是电路设计里极为常见且关键的元件。今天我们就来详细探讨一下RH101A运算放大器
    的头像 发表于 02-03 10:00 237次阅读

    深入解析RH108A精密运算放大器:特性、参数与应用考量

    深入解析RH108A精密运算放大器:特性、参数与应用考量 在电子工程领域,运算放大器是极为关键的基础元件,广泛应用于各种电子设备与电路设计中。今天咱们就来详细聊聊RH108A这款精密运算放大器,看看
    的头像 发表于 02-03 09:40 683次阅读

    如何在IAR嵌入式集成开发环境中开发和调试瑞萨RH850系列32位汽车MCU

    RH850系列32位汽车MCU凭借先进的制程技术和瑞萨电子的专有内核,可在实现超低功耗的同时优化性能。 该系列高品质MCU符合AEC-Q100标准,具备内置安全功能,并为汽车应用场景提供符合ISO 26262标准的功能安全保障。
    的头像 发表于 12-23 14:45 5146次阅读
    如何在IAR嵌入式集成开发环境中开发和调试瑞萨<b class='flag-5'>RH850</b>系列32位汽车MCU

    OPTIREG™ Linear TLS850C2TEVxx Demoboard:低功耗线性稳压器的理想之选

    。今天,我们就来详细探讨英飞凌科技的OPTIREG™ Linear TLS850C2TEVxx低功耗线性电压调节器及其演示板。 文件下载: Infineon Technologies OPTIREG
    的头像 发表于 12-21 15:20 727次阅读

    IAR云就绪平台扩展对瑞萨RH850/U2x的支持,赋能新一代汽车电子开发

    作为IAR嵌入式开发平台的重要组成部分,广泛应用于汽车领域的RH850架构现已获得多项现代化开发能力支持,包括云端授权、容器化支持和CI/CD集成。
    的头像 发表于 12-10 16:54 872次阅读

    IAR借助在瑞萨RH850/U2A MCU MCAL支持,加速汽车软件开发

    瑞萨RH850/U2A MCU专为高性能、功能安全和低功耗的汽车应用而打造,广泛应用于高级驾驶辅助系统(ADAS)、车身控制和电动汽车平台等领域。
    的头像 发表于 09-05 10:38 1032次阅读

    氮化镓电源芯片U8723AH产品介绍

    氮化镓电源芯片U8723AH是一款集成E-GaN的高频高性能准谐振模式交直流转换功率开关。芯片集成高压启动电路,可获得快速启动功能和超低的工作电流,实现小于30mW的超低待机功耗。
    的头像 发表于 07-28 11:38 4243次阅读
    氮化镓电源<b class='flag-5'>芯片</b><b class='flag-5'>U</b>8723AH产品<b class='flag-5'>介绍</b>

    12v2a快充电源IC U8607的保护功能

    电源ic的保护功能,其核心意义在于构建多层次安全防线,确保硬件安全、数据完整及系统可靠性,通过实时监测电流电压,异常时切断电路,减少开关损耗,降低故障率并提升能效。今天介绍的是深圳银联宝科技12v2a快充电源ic
    的头像 发表于 06-13 17:38 1281次阅读

    12V2A/3A氮化镓电源芯片方案

    深圳银联宝科技最新上市的氮化镓电源方案:U8607/U8609+同步整流芯片U7613,推荐输出功率12V2A、12V3
    的头像 发表于 05-13 16:28 1419次阅读
    12V<b class='flag-5'>2A</b>/3<b class='flag-5'>A</b>氮化镓电源<b class='flag-5'>芯片</b>方案