浙江大学-嵌入式课件5 ARM Linux内核
精品课件-嵌入式Linux开发入门-第5章

第5章 内核移植与编译
③ 在Connection(连接)选项中选中Use ISO Image(使 用ISO镜像包),然后点击Browse(预览)按钮,找到放置ISO 文件的目录。
④ 在打开对话框中选择RedHat.ISO文件,然后点击打 开,将ISO文件打开(如果第一个ISO文件安装完毕,计算机 将提示插入第二张光盘,则在此选择RedHat.ISO,依此类 推)。
第5章 内核移植与编译
④ 在命令行后面输入如下命令(注意大小写和空格,同 时每行命令后记住回车):
mount -t iso9660/dev/cdrom/mnt (加载CDROM设备, 并且CDROM为只读属性);
cp/mnt/vmware-Linux-tools.tar.gz/tmp (将该软件包 拷贝到LINUX的TMP目录下);
第5章 内核移植与编译
第5章 内核移植与编译
5.1 虚拟机的使用 5.2 Linux简介 5.3 配置及编译过程
第5章 内核移植与编译
5.1 虚拟机的使用 VMware就是一个虚拟机软件,它可以在现有的操作系统 上虚拟出一个新的子机,这个子机一方面是建立在正在运行 的操作系统之上的,同时,它又拥有自己独立的CPU、硬盘、 内存及各个硬件,当然,这些都是虚拟出来的。虚拟子机的 CPU是通过i386的保护模式实现的,虚拟的硬盘其实就是母机 上的一个文件,内存是从物理层中划出的一块,其他硬件(例 如网络设备)也都是通过某种途径实现的。虚拟机的界面如图 5.1所示。
第5章 内核移植与编译
图5.1 VMware虚拟机
第5章 内核移植与编译
归根结底,VMware提供了这么一个机会:可以在一台 机器上真正同时运行两个独立的操作系统,一个是原始的 操作系统,一个运行于虚拟机上,前者称之为母机,后者 为子机。基于上述原因,可以在运行Win32平台的机器上 通过VMware安装并运行Linux,反之亦然。事实上,两个 操作系统之间并没有太多的依赖关系,同样可以在Linux 上再装一个Linux,或者在Win98下装一个WinXP。
《嵌入式ARM教案》课件

《嵌入式ARM教案》PPT课件第一章:嵌入式系统概述1.1 嵌入式系统的定义介绍嵌入式系统的概念、特点和应用领域强调嵌入式系统与传统计算机系统的区别1.2 嵌入式系统的发展回顾嵌入式系统的发展历程探讨未来嵌入式系统的发展趋势1.3 嵌入式系统的组成部分介绍嵌入式系统的硬件和软件组成解释嵌入式系统中的核心部件:中央处理器(CPU)第二章:ARM处理器简介2.1 ARM处理器的发展历程介绍ARM公司的成立和发展历程讲解ARM处理器的命名规则和版本更新2.2 ARM处理器的特点阐述ARM处理器的架构和指令集特点强调ARM处理器的功耗、性能和成本优势2.3 ARM处理器的应用领域分析ARM处理器在不同领域的应用案例展望ARM处理器在未来的应用前景第三章:ARM指令集和编程3.1 ARM指令集概述介绍ARM指令集的分类和特点讲解ARM指令的格式和操作码3.2 ARM指令的执行过程分析ARM指令的取指、译码、执行和写回过程解释ARM指令的流水线结构和流水线优化3.3 ARM编程实例介绍ARM编程的基本方法和技巧提供简单的ARM编程实例,让学员了解编程过程第四章:嵌入式系统设计和开发流程4.1 嵌入式系统设计原则讲解嵌入式系统设计的关键原则强调嵌入式系统设计的灵活性和可扩展性4.2 嵌入式系统开发流程介绍嵌入式系统开发的各个阶段阐述各阶段的主要任务和注意事项4.3 嵌入式系统开发工具和环境讲解常用的嵌入式系统开发工具和软件介绍嵌入式系统开发环境搭建的步骤和方法第五章:嵌入式系统硬件设计5.1 嵌入式系统硬件设计概述介绍嵌入式系统硬件设计的基本要求强调嵌入式系统硬件设计的可靠性和稳定性5.2 嵌入式系统硬件模块设计讲解嵌入式系统中的主要硬件模块分析各个模块的功能和相互之间的关系5.3 嵌入式系统硬件设计实例提供嵌入式系统硬件设计实例让学员了解硬件设计过程和注意事项第六章:嵌入式系统软件开发6.1 嵌入式操作系统概述介绍嵌入式操作系统的概念和分类强调嵌入式操作系统在嵌入式系统中的重要性6.2 嵌入式操作系统原理讲解嵌入式操作系统的核心组件和工作原理解释嵌入式操作系统的任务调度和资源管理6.3 嵌入式软件开发介绍嵌入式软件开发的基本方法和技巧提供嵌入式软件开发实例,让学员了解开发过程第七章:嵌入式系统应用案例分析7.1 嵌入式系统在工业控制中的应用分析嵌入式系统在工业控制领域的应用案例强调嵌入式系统在提高工业生产效率方面的作用7.2 嵌入式系统在消费电子中的应用讲解嵌入式系统在消费电子领域的应用案例探讨嵌入式系统在智能家居、可穿戴设备等领域的应用前景7.3 嵌入式系统在其他领域的应用介绍嵌入式系统在医疗、交通、教育等领域的应用案例展望嵌入式系统在未来各个领域的发展趋势第八章:嵌入式系统安全与防护8.1 嵌入式系统安全概述讲解嵌入式系统安全的重要性介绍嵌入式系统面临的安全威胁和攻击手段8.2 嵌入式系统安全防护策略阐述嵌入式系统安全防护的技术和方法强调安全防护策略在提高嵌入式系统安全性方面的作用8.3 嵌入式系统安全案例分析分析典型的嵌入式系统安全案例让学员了解嵌入式系统安全防护的实践应用第九章:嵌入式系统发展趋势与挑战9.1 嵌入式系统技术发展趋势分析嵌入式系统技术的发展趋势强调创新技术和新兴领域对嵌入式系统的影响9.2 嵌入式系统面临的挑战讲解嵌入式系统在发展过程中面临的挑战探讨应对挑战的方法和策略9.3 我国嵌入式系统发展现状与展望介绍我国嵌入式系统发展的现状展望我国嵌入式系统未来的发展前景第十章:总结与展望10.1 课程回顾总结本课程的主要内容和知识点强调嵌入式ARM教案在实际应用中的重要性10.2 实践与思考鼓励学员在实际工作中运用嵌入式ARM教案的知识提出针对性的思考题,引导学员深入思考和探索10.3 未来展望展望嵌入式系统领域的未来发展趋势强调继续学习和不断提升自身能力的重要性重点解析本文教案主要围绕嵌入式ARM系统进行讲解,涵盖了嵌入式系统的概述、ARM 处理器简介、ARM指令集和编程、嵌入式系统设计和开发流程、嵌入式系统硬件设计、嵌入式系统软件开发、嵌入式系统应用案例分析、嵌入式系统安全与防护、嵌入式系统发展趋势与挑战以及课程总结与展望等内容。
嵌入式系统概述(浙江大学)

嵌入式系统与桌面通用系统的区别(3/7)
嵌入式系统中使用的操作系统一般是实时操作系统 嵌入式实时操作系统数量众多,如:
VxWorks Windows CE pSOS QNX uc/OS
嵌入式系统是以应用为中心,以计算机技 术为基础,采用可剪裁软硬件,适用于对 功能、可靠性、成本、体积、功耗等有严 格要求的专用计算机系统。
计算机应用领域的划分
小型专用型
桌面通用型
高端服务型
嵌入式系统与桌面通用系统的区别(1/7)
嵌入式系统中运行的任务是专用而确定的
心脏监视器只需运行信号输入、信号处理、心电图显示任务 如要更改任务,需要对整个系统进行重新设计或在线维护
早期:10%;90年代初:30%;目前:80~90%
嵌入式系统开发工具越来越丰富 嵌入式系统产业链形成
前车门控 制系统 发动器控 制系统
座椅控制 系统
后车门控 制系统
尾灯控制 系统
所有的控 制系统都 是一个完 整的嵌入 式系统
马达 控制器 车灯
两大分支
嵌入式软件市场规模
• 全球规模600亿美元,过去三年中,年均增长速度超过 12.5%。
嵌入式系统与桌面通用系统的区别(7/7)
嵌入式系统开发是一项综合的计算机应用技术
系统结构:状态控制器、中断控制器处理 汇编语言:操纵外围设备、端口 操作系统:设置运行任务、通讯、互斥 编译原理:交叉编译、bootloader加载
提纲
嵌入式系统的发展历程
嵌入式系统出现于20世纪60年代,40多年来随着计算机技 术、电子信息技术的发展,嵌入式系统的各项技术蓬勃发 展,市场迅猛扩大,已深入生产和生活的各个角落。
浙江大学本科课程简介和教学大纲

课程简介和教学大纲课程代码:15120660 课程名称:嵌入式系统设计学分: 5.0 周学时:4.0-2.0面向对象:大学本科生预修课程要求:微机原理、C程序设计一、课程介绍(100-150字)(一)中文简介《嵌入式系统设计》是工科学生学习掌握嵌入式系统的结构原理、ARM处理器核的设计原理和方法、理解操作系统的基本原理、学习掌握嵌入式应用软件开发的主要流程和相关技术的一门课程,重点在于理解ARM体系结构及其组成嵌入式系统的结构原理基础上,培养学生具备初步的嵌入式系统软硬件设计开发能力。
课程内容主要包括ARM处理器核的设计原理,ARM体系结构,ARM编程模型及指令集,ARM调试结构与存储器层次,操作系统的I/O接口技术、操作系统进程与线程的概念和管理、并发、进程间通信,操作系统的内存管理策略,调度算法和实时调度算法等内容,并以树莓派实验板为基础进行相应的实验设计,掌握嵌入式系统设计开发能力。
(二)英文简介《Embedded System Design》is one of the basic courses for engineering students to master the structural principle of embedded system, principle and method of ARM core design, basic principle of operating system, the main process of embedded application software development and related technologies. The priority of this course is making students have an initial capacity of embedded system hardware and software design and development based on understanding the ARM architecture and composition of the embedded system. Course content includes core design of ARM processor, ARM architecture, ARM programming model and instruction set, ARM debug architecture and memory hierarchy, IO technologies of operating system, concept and management of operating system processes and threads, concurrent, inter-process communication, memory management, scheduling algorithm and real-time scheduling algorithm etc. Experimental design on Raspberry Pi2 development board may also be made to know the embedded system design and development process well.二、教学目标(一)学习目标本课程通过嵌入式系统的开发平台,使学生熟悉嵌入式应用开发流程,更方便地学习和理解嵌入式系统的基础知识,使学生具备基本的嵌入式系统的软硬件设计能力。
嵌入式系统概述浙江大学71页PPT

❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
嵌入式系统概述浙江大学
41、实际上,我们想要的不是针对犯 罪的法 律,而 是针对 疯狂的 法律。 ——马 克·吐温 42、法律的力量应当跟随着公民,就 像影子 跟随着 身体一 样。— —贝卡 利亚 43、法律和制度必须跟上人类思想进 步。— —杰弗 逊 44、人类受制于法律,法律受制于情 理。— —托·富 勒
嵌入式系统基础-第3章--ARM体系结构-PPT

N
N=1表示运算的结果为负数;N=0表示运算的结果为正
数或零
共页
41
标志位
含义
Z
Z=1表示运算的结果为零;Z=0表示运算的结果为非
零。
C
当运算结果产生了进位时(无符号数溢出),C=1;
否则C=0
V
V=1表示有溢出;V=0表示无溢出
Q
在ARM v5及以上版本的E系列处理器中,用Q标志位
指示增强的DSP运算指令是否发生了溢出。在其他版
将上图中的CPU部分叫做处理器核。
把处理器核与其通用功能模块的组 合叫做处理器。
共页
11
把在处理器基础上经芯片厂商二次开 发,以芯片形式提供的用于嵌入式系统的 产品叫做嵌入式处理器。
IP商提供的是处理器核和处理器的知 识产权,而半导体芯片生产厂商生产的则 是嵌入式处理器芯片。
世界上知名的IP商当属ARM公司和 MIPS公司。
共页
3
3.1.1 SoC与嵌入式处理器 计算机SoC的概念如下图所示:
共页
4
计算机的这种单片系统特别适合于嵌 入式应用,所以这种SoC也叫做嵌入式处 理器。
3.1.2 嵌入式处理器的研发和生产方式
宿主对象的多样化,势必决定了嵌 入式系统的多样化、个性化。
1、在SoC技术出现之前
共页
5
CPU和与其配合的接口及功能模块都 是单独的芯片。 2、在SoC技术出现之后
37
3、程序计数器R15(PC)
在ARM中,基本寄存器R15固定地作为 程序计数器来使用。为了提高程序的可读 性,也通常使用PC来标识。
4、程序状态寄存器PSR
基本寄存器R16专门用作程序状态寄 存器。同样为了提高程序的可读性,在程 序中用PSR来标识他。
ARM嵌入式系统第5章硬件电路与接口技术精品PPT课件

如果不使用LPC2000的AD功能,或对AD的 要求不高,模拟电源和数字电源可以不分开供电。
最小系统
• 各部件简介 ——电源
CZ 1 PO WER(9V)
D1 1N5819 1 2 3
U1 1
SPX111 7M3 -1.8
1
Vi n
V IN
V OU T
2
V DD 1. 8
C2 1 0u F/1 6V
GN D 1
1 6
4 3
S W1 R ST
U4
MR NC
V CC R ST
P FI
R ST
G ND P FO
S P7 08 S
V DD 3. 3 2 8
7
n RST
5
R1 1 0K
V DD 3. 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
62
64 63
P0 . 4 / SCPPK33 ..0 /11C12 //AAAP110 .121 P1 . 2P53 ./ 1E3X/TIA1N30
P0 . 3 /P0S.D5 /A /MIMSAOT00/.0M/AEIT0N .T11
3 0P U3 S PX 11 17 M3 -1 .8
+5V
3
29 nWE 90 nOE
LPC2210
A1 1 A2 2 A3 3 A4 4 A5 5 A6 18 A7 19 A8 20 A9 21 A10 22 A11 23 A12 24 A13 25 A14 26 A15 27 A16 42 A17 43 A18 44
nCS1 6 nOE 41 nWE 17 nBLS140 nBLS039
第4课嵌入式Linux开发基础ppt课件-PPT文档资料

Linux下的目录结构
• /bin 二进制可执行命令 /dev 设备文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是 /home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似 windows里的.dll文件 /sbin 系统管理命令,这里存放的是系统管理员使用的管理 程序 /tmp 公用的临时文件存储点 /root 系统管理员的主目录 /mnt 让用户临时挂载(mount)其他的文件系统。 /lost+found 这个目录平时是空的,系统非正常关机而留下 “无家可归”的文件(windows下的.chk)放在这里 /proc 虚拟的目录,是系统内存的映射。可直接访问这个目 录来获取系统信息。 /var 某些大文件的溢出区,比方说各种服务的日志文件
文件权限 文 件 类 型
链 接 个 数
文 件 属 主 名
用 户 分 组 名
文 件 长 度
文件上次 被修改的 时间和日 期
文 件 名
Linux下的目录结构
/usr /bin /var /lib /dev /etc /tmp / /home /mnt /root /proc /sbin /local /lib /bin /bin /etc /src /man
Linux
Linux下的文件类型
• 普通文件
• 目录文件 • 连接文件 • 设备文件
普通文件
• 系统文件
– .conf: 配置文件,也用.cfg – .lock:锁文件,用来判定程序或设备是否正在被 使用 – .rpm: RedHat用来安装软件的软件包管理器文件
• 编程和脚本文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
• 凡是支支持虚存的CPU必须为有关的映射表提 供高高速缓存,使地址映射的过程在不访问内 存的前提下完成,用用于这个⺫目目的高高速缓存称 为TLB • 高高速缓存 (I/O的特殊性) • ARM系统结构中配备了两个地址映射TLB和 两个高高速缓存
10
• ARM处理器中,MMU是作为协处理器CP15 的一一部分实现的 • MMU相关的最主要的寄存器有三个:
22
2.5 ARM-‐Linux进程的虚存空间
• Linux虚拟内存的实现需要6种机制的支支持:
– 地址映射机制 – 内存分配回收机制 – 缓存和刷新机制 – 请求⻚页机制 – 交换机制 – 内存共享机制
23
• 系统中的每个进程都各有自自己己的首首层映射表, 这就是它的空间,没有独立立的空间的就只是 线程而而不是进程 • Linux内核需要管理所有的虚拟内存地址,每 个进程虚拟内存中的内容在其task_struct结 构中指向的 vm_area_struct结构中描叙
18
确定processor type
• 确保kernel运行行在SVC模式下,并且IRQ和FIRQ中 断已经关闭。 • 通过cp15协处理器的c0寄存器来获得 processor id的指令。 • 跳转到 ,在 __lookup_processor_type 中会 把 存储在r5中。 • 判断r5中的process_type是否是0,如果是0,说明 是无无效的 processor type ,跳转到出错。
• adr指令取指获得的是基于PC的一一个地址,由 于此时MMU还没有打开,也可以 理解成物理 地址(实地址)
20
创建⻚页表
• kernel 里里面面的所有符号在链接时 , 都使用用了虚拟地址值。在 完成基本的初始化后 ,kernel 代码将跳到第一一个 C 语言言函数 start_kernl来执行行行行,在那时候,这些虚拟地址必须能够对应 到它所存放在真正内存位置,否则运行行会出错。为此,CPU必 须开启MMU,但在开启MMU前,必须为虚拟地址到物理地址 的映射建立立相应的⻚页表。在开启MMU后,kernel并不⻢马上将 PC值指向start_kernl,而而是要做一一些C语言言运行行期的设置,如堆 栈等工工作后才跳到start_kernel去执行行。在此过程中,PC值还 是物理地址,因此还需要为这段内存空间建立立va = pa的内存 映 射 关 系 。 当 然 , 此 时 建 立立 的 所 有 ⻚页 表 都 会 在 将 来 paging_init时销毁再重建,这是临时过度性的映射关系和⻚页 表。
– ENTRY(stext)
• vmlinux.lds.S是ld script文文件,ENTRY(stext)表示示 程序的入入口口是在符号stext。 而而符号stext是在 arch/arm/kernel/head.S中定义的
17
启动的主线
• • • • • • • 确定process type 确定machine type 创建⻚页表 调用用平台特定的__CPU_flush函数 开启mmu 切换数据 最终调整到start_kernel
6
2.2 冯·∙诺依曼结构和哈佛结构
• 冯·∙诺依曼结构:程序只是一一种数据,对程 序也可以像对数据一一样加以处理,并且可以 和数据存储在同一一个存储器中 • 嵌入入式系统中往往采用用程序和数据两个存储 器、两条总线的系统结构,称为“哈佛结构”
7
2.3 ARM存储管理机制
• Linux在启动初始化的时候依次调用用: start_kernel()>setup_arch()>pageing_init()>me mtable_init()>create_mapping()
16
Linux的启动
• head.S是linux运行行的第一一个文文件。 • 内核的入入口口是stext,这是在arch/arm/kernel/ vmlinux.lds.S中定义的
ARM Linux内核
提纲
• • • • • 1. ARM系统结构简介 2. ARM-‐Linux内存管理 3. ARM-‐Linux进程管理和调度 4. ARM-‐Linux 的中断响应和处理 5. ARM-‐Linux系统调用用
1. ARM系统结构简介
• ARM有7种运行行状态:
– – – – – – 用用户状态(User) 中断状态(IRQ, Imterrupt Request) (0x18) 快中断状态(FIQ,Fast Imterrupt Request)(0x1c) 监管状态(Supervisor) 终止止状态(Abort) 无无定义状态(Undefined)
26Leabharlann 3 ARM-‐Linux进程管理和调度
– 控制寄存器,控制MMU的开关、高高速缓存的开 关、写缓冲区的开关等 – 地址转换表基地址寄存器 – 域访问控制寄存器
11
• 控制寄存器中有S位(表示示System)和R位(表示示 ROM),用用于决定了CPU在当前运行行状态下对⺫目目 标段或者⻚页面面的访问权限,如果段或者⻚页面面映 射表项中的2位的“访问权限” AP为00,那么S位 和R位所起的作用用如表
24
• task_struct结构分析图 :
25
• 由于那些虚拟内存区域来源各不相同,Linux 使用用vm_area_struct中指向一一组虚拟内存处 理过程的指针来抽象此接口口 • 为进程创建新的虚拟内存区域或处理⻚页面面不 在物理内存中的情况下,Linux内核重复使用用 进程的vm_area_struct数据结构集合。采用用 AVL树来减少查找时间。 • 当进程请求分配虚拟内存时,Linux并不直接 分配物理内存
13
2.4 ARM-‐Linux存储机制的建立立
• ARM-‐Linux内核也将这4GB虚拟地址空间分为 两个部分 ,系统空间和用用户空间 • ARM将I/O也放在内存地址空间中,所以系 统空间的一一部分虚拟地址不是映射到物理内 存,而而是映射到一一些I/O设备的地址
S 0 1 0 1 R 0 0 1 1 CPU运行在特权 状态 不能访问 只读 只读 不确定 CPU运行在用户 状态 不能访问 不能访问 只读 不确定
12
• 如果AP为01,则和S位R位无无关,特权状态可 读可写,用用户状态不能访问。 • 如果AP为10,则和S位R位无无关,特权状态可 读可写,用用户状态只读。 • 如果AP为11,则和S位R位无无关,特权状态、 用用户状态都可读可写。
19
__lookup_processor_type
• __lookup_processor_type函数主要是根据从 CPU中获得的process id和系统中的proc_info 进行行匹配
– adr r3, __lookup_processor_type_data – ldmia r3, {r4 -‐ r6}
– 系统状态(System)
3
• ARM系统结构中各个寄存器的使用用方方式
寄存器 程序计数器pc(r15) 通用寄存器r0-r7 通用寄存器r8-r12 当前程序状态寄存 器CPSR 保存程序状态寄存器 SPSR 堆栈指针sp(r13)和 链接寄存器lr(r14) 使用方式 由所有运行状态共用 由所有运行状态共用 除快中断以外所有其他运行状态共用(快中断状态有自 己专用的r8-r12) 由所有运行状态共用 除用户状态以外的6种运行状态,各有自己的保存程序状 态寄存器SPSR 7种运行状态各有自己的sp和lr
14
#define TASK_SIZE #define PAGE_OFFSET #define PHYS_OFFSET
(0xc0000000UL) (0xc0000000UL) (0xa0000000UL)
#define __virt_to_phys(x) #define __phys_to_virt(x)
4
2 ARM-‐Linux内存管理
• 存储管理是一一个很大大的范畴
– 地址映射、空间分配、保护机制
• 存储管理机制的实现和具体的CPU以及MMU 的结构关系非非常紧密 • 操作系统内核的复杂性相当程度上来自自内存 管理,对整个系统的结构有着根本性的深远 影响
8
•
如果采用用⻚页面面映射,“段映射表”就成了“首首 层⻚页面面映射表”,映射的过程如下(以⻚页面面 大大小小=4KB为例):
– – – 以32位虚地址的高高12位(bit20-‐bit31)作为访问首首层映射表的下 标,从表中找到相应的表项,每个表项指向一一个二二层映射表。 以虚拟地址中的次8位(bit12-‐bit19)作为访问所得二二层映射表的 下标,进一一步从相应表项中取得20位的物理⻚页面面地址。 最后,将20位的物理⻚页面面地址和虚拟地址中的最低12位拼接在一一 起,就得到了32位的物理地址。
5
2.1内存管理和MMU
• MMU,也就是“内存管理单元”,其主要作用用 是两个方方面面:
– 地址映射 – 对地址访问的保护和限制
• MMU就是提供一一组寄存器 • MMU可以做在芯片片中,也可以作为协处理 器
– ARM中的CP15
• ARM系统结构中,地址映射可以是单层的按“段 (secQon)”映射,也可以是二二层的⻚页面面映射 • 采用用单层的段映射的时候,内存中有个“段映射 表” ,当CPU访问内存的时候:
– 其32位虚地址的高高12位用用作访问段映射表的下标,从表中找到相应 的表项 – 每个表项提供一一个12位的物理段地址,以及对这个段的访问许可标 志,将这12位物理段地址和虚拟地址中的低20位拼接在一一起,就得 到了32位的物理地址
((x) - PAGE_OFFSET + PHYS_OFFSET) ((x) - PHYS_OFFSET + PAGE_OFFSET)