码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 英飞凌TC3xx的LMU SRAM保护机制(一)


    目录

    1.基本概述       

    2.理解Master Tag ID

    3.LMU memory保护使能

    4.测试结果分析

    5.小结


    1.基本概述       

           在英飞凌TC3xx中,每个CPU除了有自己的DLMU外,在SRI总线还挂着几块SRAM,这几块SRAM由LMU(Local Memory Unit)进行权限控制。

            RAM的具体地址(上述9H用于cached访问,Bh用于非cached访问):

            LMU除了本身硬件机制(如ecc)外,还提供了16个对SRAM区域的保护功能,这个机制主要是通过Master Tag ID的识别来限制对目标SRAM权限的访问。

            要实现对RAM区域的保护,每个区域需要由6个寄存器定义,分别对应受保护SRAM区域的上下限、针对Mastr Tag ID的读权限(2个寄存器)、针对Mastr Tag ID的写权限(2个寄存器)。

            与CPU的MPU相似,当定义的两块区域有交叉时, 是根据最高权限来进行分配的;

    区域A:CPU0读写权限

    区域B:CPU0只读权限

    A\B交叉的区域:CPU0读写权限

    2.理解Master Tag ID

            与Tricore的MPU不一样,LMU的memory保护是通过Master Tag ID来区分的,那么什么叫Master Tag ID。 根据TC3xx User Mannul章节4.10.7 ,在整个系统外设总线(SPB)或者SRI总线上,所有的Master接口都分配到了一个独立的ID,以便软件调试或者MCDS的时候辨别是哪个外设或者CPU执行了当前事务。以下图为例

            如果CPU0想要访问LMU0中的资源,就需要CPU0使用MIF通过MCI发送请求给LMU0,那么不同的MIF就通过Tag ID来进行分辨。 如表格所示:

    • SRI:Shared Resource Interconnect
    • SPB:System Peripheral Bus
    • BBB:Back Bone Bus
    • DMI:Data memory interface

            我们今天暂时先不管上面CPU0两个不同DMI对应的Tag ID为何不同,主要关注LMU的memory 保护机制。

    3.LMU memory保护使能

            有了Master Tag ID,那么接下里我们要看如何开始配置寄存器实现内存保护功能。

            一个区域保护有如下6个寄存器:

    • RGNLAx(x=0-15):定义受保护区域的下限
    • RGNUAx(x=0-15):定义受保护区域的上限
    • RGNACCENWAx(x=0-15):定义受保护区域的master(id= 0-31)的写访问
    • RGNACCENWBx(x=0-15):定义受保护区域的master(id = 32-63)的写访问
    • RGNACCENRAx(x=0-15):定义受保护区域的master(id= 0-31)的读访问
    • RGNACCENRBx(x=0-15):定义受保护区域的master(id = 32-63)的读访问

    4.小结 

            本章将LMU使能、master tag ID做了一个介绍,下一章将继续讲解使能和测试。    
     

  • 相关阅读:
    PGSQL大小写敏感总结
    Linux和Windows之间文件自动同步
    十五管还原炉舟皿自动卸料单元
    Callback详解
    R语言使用nnet包的multinom函数构建无序多分类logistic回归模型、使用AIC函数比较两个模型的AIC值的差异(简单模型和复杂模型)
    Unity Shader - 踩坑 - BRP 管线中的 depth texture 的精度问题(暂无解决方案,推荐换 URP)
    【前端】从 0 到 1 实现一个网站框架(一、注册 [1] )
    基于多传感器数据融合的全自动泊车系统研究与应用(文献综述)
    Axios 的介绍(使用和作用)
    如何在项目中使用kafka?
  • 原文地址:https://blog.csdn.net/djkeyzx/article/details/134504326
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号