ARM-A架构入门基础(三)MMU

2023-11-17

14天学习训练营导师课程:周贺贺《ARMv8/ARMv9架构-快速入门》

1. MMU(Memory Management Unit)

内存管理单元,MMU的意义在于将软件程序的虚拟地址转换为真实的物理地址。

2. MMU种类

  1. Secure EL1&0 translation regime, when EL2 is disabled
  2. Non-secure EL1&0 translation regime, when EL2 is disabled
  3. SECURE EL1&0 translation regime, when EL2 is enabled
  4. Non-secure EL1&0 translation regime, when EL2 is enabled
  5. Secure EL2&0 translation regime
  6. Non-secure EL2&0 translation regime
  7. Secure EL2 translation regime
  8. Non-secure EL2 translation regime
  9. Secure EL3 translation regime

3. 如何开启MMU

  1. 设置页表基地址TTBR
  2. 初始化MAIR_EL3
  3. 配置TCR_EL3
  4. 创建页表
  5. 使能MMU

4. MMU模型

在这里插入图片描述

5. 页表属性

在这里插入图片描述
PBHA, bits[62:59] : for FEAT_HPDS2
XN or UXN, bit[54] : Execute-never or Unprivileged execute-never
PXN, bit[53] : Privileged execute-never
Contiguous, bit[51] : translation table entry 是连续的,可以存在一个TLB Entry中
DBM, bit[51] : Dirty Bit Modifier
GP, bit[50] : for FEAT_BTI
nT, bit[16] : for FEAT_BBM
nG, bit[11] : 缓存在TLB中的翻译,是否使用ASID标识
AF, bit[10] : Access flag, AF=0后,第一次访问该页面时,会将该标志置为1
SH, bits[9:8] : shareable属性
AP[2:1], bit[7:6] : Data Access Permissions bits
NS, bit[5] : Non-secure bit
Attrlndx[2:0], bits[4:2]

6. 内存属性

在这里插入图片描述
在这里插入图片描述

R or W Meaning
0b0 No Allocate
0b1 Allocate
dd Meaning
0b00 Device-nGnRnE memory
0b01 Device-nGnRE memory
0b10 Device-nGRE memory
0b11 Device-GRE memory

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM-A架构入门基础(三)MMU 的相关文章

  • 使用 ARM NEON 内在函数添加 alpha 和排列

    我正在开发一个 iOS 应用程序 需要相当快地将图像从 RGB gt BGRA 转换 如果可能的话 我想使用 NEON 内在函数 有没有比简单分配组件更快的方法 void neonPermuteRGBtoBGRA unsigned char
  • 手臂“版本”之间的差异? (仅限 ARMv7)

    基本上我想知道ARMv7l和ARMv7之间的区别hl 我有一个带有armv7l的arm处理器 并且有很多armv7的rpmhl 我完全不知道我必须搜索什么才能获得相关信息 这个 后缀 叫什么 还有其他类型吗 他们的做法有何不同 我假设它指示
  • 用于 RHEL 的 gdb-multiarch

    我正在尝试寻找方法来运行gdb 多架构RHEL 中的命令 我已经安装了用于 ARM 处理的 QEMU 模拟器 我想安装GDB进行调试 我能够安装GDB 多体系结构在 Ubuntu 中运行命令成功 sudo apt get GDB multi
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d
  • 将 GCC 内联汇编与采用立即值的指令结合使用

    问题 我正在为 ARM Cortex M3 处理器开发定制操作系统 为了与我的内核交互 用户线程必须生成 SuperVisor Call SVC 指令 以前称为 SWI 用于软件中断 该指令在ARM ARM中的定义是 这意味着该指令需要即时
  • 在嵌入式设备上使用new或malloc引起的段错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 源和目标具有不同的 EABI 版本

    我正在尝试使用 ARM 工具链编译 so 文件 但是我不断收到这个错误 错误 源对象的 EABI 版本为 0 但目标对象的 EABI 版本为 5 我无法更改工具链中的任何内容 因为我必须使用给定的工具链 我以前从未见过这个错误 我使用了这个
  • 可以使用Visual Studio 2012构建ARM桌面程序吗?

    我正在使用 Visual Studio 2012 beta 我的桌面 win32 程序在 ARM 架构中编译得很好 升级到 Visual Studio 2012 RC 后 编译器无法工作并出现以下错误 不支持为 ARM 平台编译桌面应用程序
  • 为 ARM 交叉编译 zlib

    我尝试为arm poky linux gnueabi交叉编译zlib 但启动 make 时出现错误 zlib 1 2 11 AR HOST ar CC HOST gcc RANLIB HOST ranlib configure prefix
  • 在 Intel 机器上构建 Apple Silicon 二进制文件

    如何在 macOS 11 Intel 上编译 C 项目以在 Silicon 上运行 我当前的构建脚本很简单 configure make sudo make install 我尝试过使用 host and target标志与aarch64
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM
  • 了解 U-Boot 内存占用

    我不明白加载 U Boot 时 RAM 中发生了什么 我正在开发 Xilinx Zynq ZC702 评估套件 并尝试使用 U Boot 在其上加载 Linux 内核 于是我使用Xilinx工具Vivado和SDK生成了一个BOOT bin
  • gdb 不会从外部架构读取核心文件

    我正在尝试在 Linux 桌面上读取 ARM 核心文件 但似乎无法找出我的核心文件 有什么方法可以指示 gdb 我的核心文件是什么类型吗 file daemon daemon ELF 32 bit LSB executable ARM ve
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015
  • 使用 NEON 内在函数除以浮点数

    我当时正在处理四个像素的图像 这是在armv7对于 Android 应用程序 我想分一个float32x4 t向量由另一个向量组成 但其中的数字与大约不同0 7 to 3 85 在我看来 除法的唯一方法是使用右移 但这是针对一个数字2 n
  • iPhone 3GS 上的 ARM 与 Thumb 性能比较,非浮点代码

    我想知道是否有人有关于 iPhone 3GS 上 ARM 与 Thumb 代码性能的硬性数据 特别是对于非浮点 VFP 或 NEON 代码 我知道 Thumb 模式下的浮点性能问题 更大的 ARM 指令的额外代码大小是否会在某个时刻成为性能
  • 如何在WinMobile6上启用ARMv6非对齐访问?

    ARMv6 引入了一个很棒的功能 未对齐的内存访问 这使得代码中的某些事情变得更加简单和更快 但微软只在winCE6中提供了API 现在大多数 PDA 都基于 WinMobile6 基于 CE 5 x 默认情况下禁用未对齐访问 我尝试在 C
  • 上下文切换到安全模式(arm trustzone)的成本是多少

    我试图了解在arm中可信 安全 和非安全模式之间来回切换的成本 从非安全世界转移到安全世界时到底需要发生什么 我知道需要设置 ns 位 基于某些特殊指令 需要刷新和更新页表 刷新和更新处理器缓存 还有什么需要发生的吗 处理器缓存 它们是分段
  • 哪些 GCC 优化标志对二进制大小影响最大?

    我正在使用 GCC 为 ARM 开发 C 我遇到了一个问题 我没有启用优化 我无法创建二进制文件 ELF https en wikipedia org wiki Executable and Linkable Format 对于我的代码 因
  • 在 ARM Cortex-M3 中使用 newlib 的 malloc

    我正在为 ARM Cortex M3 NXP 的 LCP17xx 创建代码 到目前为止我一直在使用静态内存 一切都运行良好 我尝试添加动态内存支持 但是一旦调用 malloc 系统就会卡住 我正在使用 gcc 为 Arm Bare Meta

随机推荐

  • 【渗透测试笔记】之【内网渗透——Windows系统散列值获取与防范】

    拓扑图 Windows系统散列值获取 1 通过CS模块获取用户凭证信息 在获取到目标主机权限后 我们可以抓取hash和dump明文密码 这两项功能都需要管理员权限 如果权限不足 先要进行提权操作 抓取密码哈希 右键被控主机 gt Acces
  • 【OpenCV学习笔记】【教程翻译】五 (车牌识别之OCR分割)

    车牌识别 车牌识别的第二步主要是提取出车牌中的字符 对于每个被检测出的车牌 我们对车牌进行分割获取每个字符 然后用神经网络机器学习算法实现字符的识别 在这个过程中 我们也可以学习到如何评估一个分类算法 OCR分割 首先 我们将车牌图像作为具
  • sqli-labs 21——40关攻略

    Less 21 基于错误的复杂的字符型Cookie注入 base64编码 单引号 报错型 cookie型注入 本关和less 20相似 只是cookie的uname值经过base64编码了 登录后页面 圈出来的地方显然是base64加密过的
  • 浅谈Linux的文件系统, 新增XFS.Ext3.GFS.ReiserFS.JFS相关知识

    如果您是一位新手 也许 您还不知道如何把文件从Windows拷贝到 Linux上吧 下面 我们将说明Unix文件系统以及mount的工作过程 然后再比较详细地讨论 mount的使用和有关选项 如果您已经了解Unix文件系统是如何工作的 那么
  • debug调试神器pysnooper

    异常bug定位 print 函数也可以 但效率上还是慢 后来发现了一个叫PySnooper的装饰器 一般debug调试 都是在我们可能觉得会有问题的地方 去打印输出 看下实际输出了什么 然后思考问题所在 下载库 pip install py
  • python3 练习题100例 (十二)

    题目十二 打印出所有的 水仙花数 所谓 水仙花数 是指一个三位数 其各位数字立方和等于该数本身 例如 153是一个 水仙花数 因为153 1的三次方 5的三次方 3的三次方 usr bin env python3 coding utf 8
  • “ModuleNotFoundError: No module named sklearn”解决办法

    最近在跑实验的时候 需要导入sklearn 但是运行代码一直提示 ModuleNotFoundError No module named sklearn 实验中导入sklearn的代码 from sklearn import metrics
  • Linux CentOS7 中 完美解决VMTools失效,windows 与 Liunx间完美复制文件,无报错的解决方案

    问题 我也是才刚使用CentOS7没多久 搭建好环境后出现比较头疼的问题就是 Windows 和 Linux 之间无法复制粘贴文本和文件 这个问题只要在虚拟机中安装 VMTools 就能解决 但是不知道什么原因导致 我在CentOS 6 8
  • Linux 狂神说学习笔记

    狂神说linux Linux 基本目录 目录相关命令 文件属性 查看文件 硬链接和软链接 vim 账号管理 用户组管理 磁盘管理 进程管理 环境安装 基本目录 目录相关命令 ls al 列出目录 a所有文件包括隐藏文件 l列出所有文件包括文
  • MyBatis ognl.NoSuchPropertyException 或者 Invalid bound statement (not found)

    描述 SpringBoot Mybatis plus 项目 运行时出现如下错误 ognl NoSuchPropertyException 没有对应属性异常 Invalid bound statement not found 绑定语句无效 未
  • 问题小结(3)-dialog标题居中

    dialog标题居中问题 用系统的AlertDialog Builder创建dialog时 如果需要将dialog的title居中显示 需要调用 setCustomTitle View view 方法 对需要设置的view设置居中的相关属性
  • zookeeper 分布式共享锁的流程图

    1分布式共享锁的流程图 原理 package cn itcast bigdata zklock import java util Collections import java util List import java util Rand
  • 水球图 及各种参数设置

    水球图 Liquid Fill Chart 是Echarts的一个插件 在官方文档中没有 可以用来优雅的展示百分比数据 水球图 gif 安装 HTML中引入水球图
  • docker基础1——架构组成、安装配置

    文章目录 一 发展起源 1 1 传统虚拟化与容器虚拟化 1 2 docker底层核心技术 1 2 1 命名空间 1 2 2 控制组 1 3 docker工作方式 1 4 docker容器编排 1 5 docker优劣势 1 6 docker
  • iframe的替代品

    面试题 使用过iframe框架 那你对于iframe框架的优缺点知道多少 并且由于iframe的一些缺点 国内外针对这个框架的替代品你知道有哪些呢 知识点1 iframe框架的优缺点 优点 1 可以跨域请求其他网站 并将网站完整展示出来 2
  • [课程复习] 数据结构之线性表、树、图、查找、排序经典算法复习

    作者最近在复习考博 乘此机会分享一些计算机科学与技术 软件工程等相关专业课程考题 一方面分享给考研 考博 找工作的博友 另一方面也是自己今后完成这些课程的复习资料 同时也是在线笔记 基础知识 希望对您有所帮助 不喜勿喷 无知 乐观 低调 谦
  • 【Qt Modbus通信】QModbus实现modbus的主机功能 源码分享

    前言 modbus在上下位机数据交互时被广泛使用 因此写了这篇笔记和大家一起学习 Qt Modbus通信 libmodbus实现modbus的主机功能 从机功能 源码分享 之前使用libmodbus实现了modbus的主从功能 但发现主机查
  • docker frp 搭建内网穿透

    docker frp 搭建内网穿透 可运行的云服务器 docker pull snowdreamtech frps mkdir p root docker frp cd root docker frp touch frps ini comm
  • 企业微信如何简单实现定时发送文件到群:企业微信群机器人操作(Java代码实现)

    前言 不知道小伙伴们的公司组织架构通勤用的啥软件 我公司用的企业微信 然后业务销售部那边需要每天统计销售数据报表然后发在群里 我是开发 我不配在群里 知道这个背景以后 产品给我们的需求是 直接统计数据按照业务那边的报表模板直接生成销售报表
  • ARM-A架构入门基础(三)MMU

    14天学习训练营导师课程 周贺贺 ARMv8 ARMv9架构 快速入门 1 MMU Memory Management Unit 内存管理单元 MMU的意义在于将软件程序的虚拟地址转换为真实的物理地址 2 MMU种类 Secure EL1