前言
广义上的内存保护,包括<<TC3xx芯片MPU介绍>>一文介绍的MPU(常规狭义上的内存保护),<<TC3xx芯片的Endinit功能详解>>一文中介绍的寄存器的EndInit保护,<<TC3xx芯片ACCEN寄存器保护详解>>一文中提到的ACCEN保护,还包括本文要介绍的Bus Memory Protection Unit (Bus MPU), 以及后续文章将要介绍的Peripheral Regions保护。
注:本文章引用了一些第三方工具和文档,若有侵权,请联系作者删除!
正文
当一个Master Tag (参考<<TC3xx芯片ACCEN寄存器保护详解>>)需要跨总线访问一块的内存的时候,首先要经过Bus MPU的权限判断,通过Bus MPU后才会执行侠义MPU的判断。
也就是说,Bus MPU是设置各个DSPR/PSPR/DLMU/PFLASH是否可以被其他Bus Master Tag访问。侠义的MPU是从内存本身角度来设置是否可以被其他CPU访问,Bus MPU是从内部总线的角度拉设置哪些Master Tag可以通过总线访问哪些内存。如上图所示,Bus MPU会比侠义的MPU先起作用。
SPR_SPROT_RGNLAi(i=0-7)寄存器设置一块(总共可以设置8组)需要Bus MPU的PSPR/DSPR内存的Low Address.
SPR_SPROT_RGNUAi (i=0-7)寄存器设置一块(总共可以设置8组)需要Bus MPU的PSPR/DSPR内存的Upper Address.
SPR_SPROT_RGNACCENAi_W (i=0-7)和SPR_SPROT_RGNACCENBi_W (i=0-7)寄存器设置一块(总共可以设置8组)PSPR/DSPR可以被哪些Master Tag (参考文章:)通过Bus写访问。
SPR_SPROT_RGNACCENAi_R (i=0-7)和SPR_SPROT_RGNACCENBi_R (i=0-7)寄存器设置一块(总共可以设置8组)PSPR/DSPR可以被哪些Master Tag (参考文章:)通过Bus读访问。
每个CPU核有八组寄存器可以设置8快PSPR/DSPR的总线访问权限。Bus MPU用于跨总线访问Memory的保护,对于一个CPU访问自己Local的memory是不会有Bus MPU的。
对于DLMU,Bus MPU类似于PSPR/DSPR:
DLMU_SPROT_RGNLAi(i=0-7)寄存器设置一块(总共可以设置8组)需要Bus MPU的DLMU内存的Low Address.
DLMU_SPROT_RGNUAi (i=0-7)寄存器设置一块(总共可以设置8组)需要Bus MPU的DLMU内存的Upper Address.
DLMU_SPROT_RGNACCENAi_W (i=0-7)和DLMU_SPROT_RGNACCENBi_W (i=0-7)寄存器设置一块(总共可以设置8组)DLMU可以被哪些Master Tag (参考文章:)通过Bus写访问。
DLMU_SPROT_RGNACCENAi_R (i=0-7)和DLMU_SPROT_RGNACCENBi_R (i=0-7)寄存器设置一块(总共可以设置8组)DLMU可以被哪些Master Tag (参考文章:)通过Bus读访问。
LPB_SPROT_ACCENA_R和LPB_SPROT_ACCENB_R寄存器可以设置哪些Master Tag可以读取LPB.
设置了Bus MPU后出现了非法的Memory Access, 就会产生如下的alarm给到SMU.
当发生Bus MPU违规时,该事件将通过来自CPU的tc16_safe_prot_err_o信号通知给安全管理单元(SMU)。我们可以捕获PIETR/DIETR和PIEAR/DIEAR寄存器用于Bus MPU error产生后问题分析。
TC3xx芯片提供了8组寄存器用于PSPR/DSPR以及DLMU的Bus MPU,以及一组寄存器用于LPB的Bus MPU. Bus MPU error后可以产生Alarm[0][1]和Alarm[7][17]两个alarms. User可以在Bus MPU error后捕获PIETR/DIETR和PIEAR/DIEAR寄存器用于问题定位和分析。Bus MPU监控的软硬件架构可以参考<<如何监控TC3xx芯片PFlash的ECC错误>>和<
End
「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」
点击文章最后左下角的阅读原文可以获取更多信息
或者复制如下链接到浏览器获取更多信息
https://blog.csdn.net/qq_36056498/article/details/132125693
文末福利
2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;
注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!
推荐阅读
汽车电子嵌入式精彩文章汇总第一期:20210530-20230703
汽车电子嵌入式精彩文章汇总第2期
TC3xx芯片GTM模块-CMU,CCM,TBU详解
TC3xx芯片GTM模块-TOM详解
AUTOSAR架构下PWM模块配置实践
TC3xx芯片GTM模块-TIM详解
AUTOSAR架构下ICU模块配置实践
TC3xx芯片电源管理系统PMS详解
TC3xx DMA模块详解
TC3xx芯片SMU模块详解
如何监控TC3xx芯片PFlash的ECC错误
TC3xx芯片RAM的错误检测
编译链接专题第1篇-make和makefile介绍
编译链接专题第2篇-初识makefile结构
编译链接专题第3篇-初识makefile中的伪目标
编译链接专题第4篇-变量和变量的不同赋值方式
编译链接专题第5篇-预定义变量的使用
编译链接专题第6篇-变量的高级主题(上)
编译链接专题第7篇-变量的高级主题(下)
编译链接专题第8篇-条件判断语句
End
欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!
汽车电子嵌入式
微信扫描二维码,关注我的公众号