TC3xx芯片MPU介绍

admin 2023年9月18日11:21:57评论43 views字数 3351阅读11分10秒阅读模式

前言

在前面的<<MPU功能详解-以RH850U2A为例>>文章文章中我们介绍了RH850-U2A的内存保护单元(MPU),了解了MPU的概念以及在RH850-U2A上的具体使用流程,但是对于TC3xx系列芯片的的MPU功能不甚了解。本文就来详细介绍下TC3xx芯片的MPU功能。

TC3xx芯片MPU介绍

缩略词

简写

全称

MPU

Memory Protecion Unit

PS

Protection Set

PSW

Program State Word

参考文档:

1. TriCoreTM TC1.6.2 core architecture manual

2. AURIXTC3XX_um_part1_v2.0.pdf

3.MPU功能详解-以RH850U2A为例


4.TC3xx芯片的Trap详解



注:本公众号文章中使用了一些第三方工具和文档,若有侵权,请联系作者删除!


正文

1. TC3xx芯片MPU介绍

MPU内存保护是芯片的硬件的机制,可保护用户指定的内存范围免受未经授权的读取,写入或指令提取访问的影响。通过MPU配置,把芯片的Memory划分为位若干(有大小限制)区域,每个区域可以配置读(Data Read)、写(Data Write)、执行(Code Fetch)权限。配置MPU且使能MPU后,如果访问某个内存区域但是改内存区域没有配置对应的权限,就会产生MPU Trap


1.1 TC3xx芯片MPU资源

TC37xTC1.6.2.P内核)为例,有6Memory Protection Register SetsTC37x芯片有3Core,每个核有18Data Memory Protection Ranges10Code Protection Ranges

 

TC3xx芯片MPU介绍

 

TC3xx芯片MPU介绍

TC3xx芯片MPU介绍


TC3xx芯片MPU介绍

 

Note: 后文会介绍什么是Memory Protection SetsData/Code Protection Range.


1.2 Protection Sets

官方解释:

TC3xx芯片MPU介绍


作者理解TC3xx芯片可以配置多种内存保护集(Sets),每种内存保护集的内存划分及其权限可以不一样,这样我们可以通过切换当前的内存保护集实现不一样的内存保护策略。程序状态字寄存器的的PRS位域(PSW.PRS)确定了当前使用内存保护集。


1.3 Protection Range

官方解释

 

TC3xx芯片MPU介绍

作者理解TC3xx芯片的内存保护Range的划分和RH850不一样,TC3xx的内存保护Range还区分Data Protection RangesCode Protection Ranges,对于Data Protection Ranges只能Enable读、写的权限,对于Code Protection Range只能Enable可执行(Execute Access)权限。

 

1.4 访问权限

每个内存保护区域可以配置它的Data Read, Data Write, Intruction Fectch权限,不过通过1.2章节可知,Data Protection Range只能配置Data Read/Write权限,Code Protection Range只能配置Instruction Fectch权限。

 

TC3xx芯片MPU介绍

Note 1: 两块不同Protection Range的公共区域的访问权限是两块区域访问权限的关系后的访问权限。

TC3xx芯片MPU介绍

 

Note 2: Protection Range的访问不会产生Trap。

TC3xx芯片MPU介绍

 

Note 3: 为了保持Protection Regions的分离性,Protection Region间应该有空置的区域。

TC3xx芯片MPU介绍

1.5 使能内存保护

配置SYSCON.PROTEN == 1即使能内存保护功能。

TC3xx芯片MPU介绍

 

1.6 内存保护Trap

使能了内存保护后,如果产生Error,就会触发对应的Trap。可以参考<<TC3xx芯片的Trap详解>>一文。

TC3xx芯片MPU介绍

 

2. TC3xx内存保护配置

Protections SetsCode/Data Protection TypeDavinci ConfiguratorSIP包中根据定制的芯片类型以及预定义好的,只要使用的在配置Protection Range的时候引用就行。

TC3xx芯片MPU介绍

 

TC3xx芯片MPU介绍

如上图所示,我们配置了一个Data Protection Ranges,给DFlash0配置上MPU权限:


Short Name: Protection Ranges的名字。


Memory Region End Address: Protection Ranges的结束地址,必须是8字节的整数倍,且应该大于等于Start Address.


Memory Region Identifier: 定义可选的特定于硬件的内存保护区域标识符。不是必须配置项,一般不用配置。


Memory Region Owner: 指定内存保护区域是特定于OS-ApplicaitonTask ISR ,还是全局的。如果引用了Task, ISR后,只有进入到对应的TaskISR后该Protection Ranges才被激活。如果没有引用,则该Protection一直是被激活的。


Note: 这个配置项需要谨慎配置,如果不是很确定,建议不要配置,也就是Global的。因为,比如,我给该Protection Ranges配置了一个Task,那么该Protection Range只有该Task才能读写,如果有其他的Task也读写该Protection Ranges的话,就会产生MPU Trap


Memory Region Protection Unit: 配置该Protection Range属于哪一个CoreData/Code MPU Protection Ranges


Memory Region Protection Unit Slot: 和硬件特性相关,可以不用配置。


Memory Region Start Address: Protection Ranges的起始地址,必须是8字节的整数倍,且应该大于等于End Address.


Memory Region Access Rights: 选择预定义好的Protection Set的权限。

 

3. MPU功能验证

参考:<<TC3xx芯片的Trap详解>>

着重理解Trap产生后如何定位发生Trap的位置及产生Trap的原因。


4. 总结

使能MPU功能后,MCU的所有内存访问都会被监控,一单出现非预期内的内存访问就会触发MPU的保护,产生MPU Trap。根据使用经验,MPU是把双刃剑,用的好能把一些偶发内存异常访问问题扼杀在开发阶段,也能利用MPU来定位内存非法访问问题。用的不好,就会导致系统经常进入Trap(一般都会走Reset)。如果项目要上MPU,建议提前规划好MPU Protection Ranges及其访问权限,这样经过大量的开发过程验证才能确保MPU达到正向监控的作用,而不是出现反作用。



End

「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」


点击文章最后左下角的阅读原文可以获取更多信息


或者复制如下链接到浏览器获取更多信息

https://blog.csdn.net/qq_36056498/article/details/132125693



注:本公众号文章中使用了一些第三方工具和文档,若有侵权,请联系作者删除!


推荐阅读

汽车电子嵌入式精彩文章汇总第一期:20210530-20230703

AUTOSAR 架构下EcuM唤醒源事件详解

AUTOSAR架构下NVM Block连续写及Default Value问题分析

AUTOSAR架构下NvM模块详细分析

AUTOSAR架构下报文掉线超时不上报问题分析

Classic Autosar下的以太网通讯架构概览

通信中间件Someip服务化通信

AUTOSAR架构下Fee详细分析

TC37x芯片FLASH基本概念介绍

AUTOSAR架构下Fls详细分析

TC3xx芯片DMU介绍

End



欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号

原文始发于微信公众号(汽车电子嵌入式):TC3xx芯片MPU介绍

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月18日11:21:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TC3xx芯片MPU介绍https://cn-sec.com/archives/2044994.html

发表评论

匿名网友 填写信息