英飞凌TC3xx的LMU SRAM保护机制(二)

news2024/11/16 13:45:52

   

目录

1.SRAM保护配置使能

2.测试结果分析

3.小结


我们接着上文继续来梳理如何配置LMU的保护机制 英飞凌TC3xx的LMU SRAM保护机制(一)-CSDN博客

1.SRAM保护配置使能

        简单举两个例子,地址下限寄存器如下:

        可以看到使用SRI地址的bit31-5用于作为边界,为什么低5位不要呢?因为手册上说明最小保护单位为32byte。

        写权限配置寄存器如下:

        所以,配置就很简单了:

        首先明确保护区域,配置好上下限,

        然后根据需要开启或者关闭对应master tag id的读写权限。

        开测

2.测试结果分析

        事实上,真的有上述那么简单吗?我做了这么一个试验:

1.LMU0从B004 000+32KB,使用了Master Tag ID保护,CPU0仅有写操作;

2.在上述位置定义变量

3.测试CPU0写访问操作

 代码示例如下:

void lmu_test(void)
{
    int cpu_id;
    int i;

    cpu_id = GetCoreIdcpu_id();

    printf("CPU %d original lmusfdata:%u\n", cpu_id, testdata[32 * 1024 - 1]);
    for (i = 0; i < 32 * 1024; i++)
    {
        lmutestdata = cpu_id;
    }
    printf("CPU %d modified lmusfdata:%u\n", cpu_id, testdata[32 * 1024 - 1]);
}

        实际上,CPU0仍然可以进行写访问。

        这就有点奇怪了,因此回看芯片手册,发现这样一句话:

         针对LMU0的区域,我只配置了一组寄存器,而其他15组没有配置,查看寄存器默认值,[LA,UA] = [0x00000000, 0xFFFF FFE0]。

        问题就来了,交叉的区域是根据最高权限来的,所以CPU0仍然可以通过其他寄存器访问LMU0的受保护区域,如下:

        也就是说,想要CPU0不能访问RAM0,还得把余下所有的寄存器组均配置,这里有两种方式就不一一列举了。

        最后一个for循环将所有寄存器全部配置了,测试结果cpu0无法写入。

3.小结

        这用起来就很麻烦了,假设现在想CPU0独占RAM0,CPU1独占RAM3,那首先配置2套寄存器,只开启CPU0/1的读写权限;为了保证独占成功,还得去配置其余14套寄存器,那应该如何去分寄存器呢?例如RAM0的独占写几套寄存器?RAM3独占需要写几套寄存器?

        不知道各位有没有实际应用过这种以master tag id方式保护的内存保护方法,欢迎大家积极讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1231689.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Swift-day 2

1、数据绑定&#xff0c;改变标题 State private var zoomed: Bool false 属性包装器包装的变量self.title 单向绑定 self.$textInput 双向绑定 传的是数据结构 self.title self.textInput 赋值是String self._titletitle //绑定类型加下划线2、数据绑定&#xff0c;传递结构…

毕业设计JSP 2384网上diy蛋糕店管理系统【程序源码+讲解视频+调试运行】

一、摘要 本文将介绍一个功能全面、易于使用的网上DIY蛋糕店管理系统。该系统包括用户和管理员两种用户&#xff0c;每种用户都有相应的功能模块。系统实现了网站首页、用户注册/登录、蛋糕展示、综合排行、购物车、蛋糕DIY和用户中心等功能&#xff0c;同时管理员还可以进行管…

测试之路,女孩子软件测试-职业规划建议,路就在脚下...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、测试岗是不是加…

Axure RP Pro 8 mac/win中文版:打造无限可能的原型设计工具

在如今的数字化时代&#xff0c;原型设计工具越来越受到设计师和产品经理们的重视。而Axure RP Pro8作为一款强大的原型设计工具&#xff0c;成为了众多专业人士的首选。 首先&#xff0c;Axure RP Pro8具备丰富的功能。它提供了多种交互元素和动画效果&#xff0c;使得用户可…

“移动机器人课程群实践创新的困境与突围”素材

以下是一篇应用型本科教研论文“移动机器人课程群实践创新的困境与突围”的大纲。您可以根据这个大纲展开您的论文写作&#xff1a; 一、引言 移动机器人技术的发展和应用价值移动机器人课程群在应用型本科教育中的重要性论文目的和研究问题&#xff1a;解析移动机器人课程群实…

如何科学的进行Android包体积优化

这篇文章会分享小厂如何做包体积优化相关主题&#xff0c;涉及内容包括&#xff1a;1) Android包体积优化的一种可能是比较标准的推进做法&#xff0c;2) 大致流程的心路历程和思考方式&#xff0c;3) 如何去总结和分享你们进行过的包体积优化项目。本文不仅仅是一篇分享&#…

解锁数据分析的神器:ChatGPT引领人工智能革命

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在当今数字化时代&#xff0c;数据分析成为决策…

色彩的基础知识——适用于camera tuning

#灵感#AWB CC是图像调优中的一个重要色彩部分&#xff0c;了解一些色彩知识。 目录 1、光谱的颜色-------滤光片、颜色风格 2、人眼的明暗视觉-----------侧向光学&#xff0c;对比度、色噪 3、视觉残留-------帧率 4、颜色的明度、色调、饱和度 5、三基色 RGB---------调…

《云计算:云端协同,智慧互联》

《云计算&#xff1a;云端协同&#xff0c;智慧互联》 云计算&#xff0c;这个科技领域中的热门词汇&#xff0c;正在逐渐改变我们的生活方式。它像一座座无形的桥梁&#xff0c;将世界各地的设备、数据、应用紧密连接在一起&#xff0c;实现了云端协同&#xff0c;智慧互联的愿…

#gStore-weekly | gBuilder功能详解之数据入库、定时任务、抽取日志、数据库管理等

gBuilder提供了一系列强大的功能模块&#xff0c;涵盖了数据入库、定时任务、抽取日志以及数据库管理与查询等关键领域。用户可以轻松地进行数据库的创建、定时任务的设定和执行、抽取日志的管理以及数据库的导入、导出、备份和还原操作。此外&#xff0c;高效的数据库查询功能…

C# 监测 Windows 设备变动事件

本程序通过WPF窗口的 WindowProc 函数处理Windows的硬件或配置改变的事件。开发环境为VS 2022。 基础信息 硬件或配置改变的基础有以下内容&#xff1a; 消息: WM_DEVICECHANGE 要实现的WindowProc 函数参数&#xff1a; protected IntPtr WndProc(IntPtr hwnd, int msg, In…

小小发票拦住出海“巨头”,合合信息智能文档处理技术助力企业重塑财务管理流程

作为连接企业采购、生产、运营、销售等经营行为的枢纽&#xff0c;财务系统的数字化、智能化升级近年来变得愈发重要。发票的录入、存储关乎企业应收账款管理和税务规范&#xff0c;通过技术手段提升发票管理的精准度与效率&#xff0c;也成为了财务数字化的关键环节。 近日&a…

2024年全网最全的Jmeter教程:jmeter_BeanShell脚本通过BeanShell进行加解密方法

BeanShell脚本 BeanShell简介&#xff1a; BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些 语法和方法&#xff1b; BeanShell是一种松散类型的脚本语言&#xff1b; BeanShell是用Java写成的&#xff0c;一个小型的、免费的、可以下载、嵌入式的 Ja…

ArcEngine:如何进行缩放图层、属性信息显示、状态栏显示?

01 前言 如果以后不是工作相关&#xff0c;我或许以后再难了解ArcEngine相关的GIS桌面软件二次开发的内容&#xff1f; 02 要求 创建窗体应用程序&#xff1b;&#xff08;10分&#xff09;修改窗口标题为本人的“学号 姓名”&#xff1b;&#xff08;5分&#xff09;添加主…

SpringBoot——日志及原理

优质博文&#xff1a;IT-BLOG-CN 一、SpringBoot日志 选用 SLF4j&#xff08;接口&#xff09;和 logback&#xff08;实现类&#xff09;&#xff0c;除了上述日志框架&#xff0c;市场上还存在 JUL(java.util.logging)、JCL(Apache Commons Logging)、Log4j、Log4j2、SLF4j…

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序

环境&#xff1a;Windows 10 64位 Opencv版本&#xff1a;4.5 QT&#xff1a;5.14 QT5 MSVC2017配置OpenCV 版本参考&#xff1a; opencv msvc c对应版本 1.安装MSVC2017&#xff08;vs2017&#xff09; 打开Visual Studio Installer&#xff0c;点击修改 选择vs2017生成工…

U-boot(三):start.S

本文主要探讨x210的uboot的start.S文件,也是uboot启动的第一阶段。 头文件 config.h config.h x210_sd.h,由mkconfig脚本生成,包含了开发板的配置宏 rootkaxi-virtual-machine:~/qt_x210v3s_160307/uboot/include# cat config.h /* Automatically generate…

基于水基湍流算法优化概率神经网络PNN的分类预测 - 附代码

基于水基湍流算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于水基湍流算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于水基湍流优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

day15-Linux对文件系统的支持

1.Linux中使用文件系统分几个部分 1.1 有关于Linux中高速缓冲区的管理程序。 分页机制 buffer.c 1.2 文件系统的底层通用函数(对于硬盘的读写 分配 释放等&#xff0c;对于目录的节点管理 inode 内存与磁盘的映射) 1.3 对文件数据进行读写操作模块 (VFS&#xff1a;虚拟文件系统…

CSDN的文档编辑器使用

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…