『Linux』嵌入式Linux系统编程——推荐给所有学嵌入式系统的,难得的好文
我相信以下内容是每一位想学习Linux嵌入式系统想要了解的内容 , 真的很想要分享给大家!
本文分享的内容主要如下几个方面:
系统总线
处理器
主存储器
输入/输出模块
数据寄存器、地址寄存器、索引寄存器
段指针
栈指针
pc程序计数器
取指令和执行指令
IO模块
中断系统机制
中断处理
多道程序设计
存储器的层次结构
高速缓冲存储器
块大小
映射函数
直接存储器访问
DMA模块
1.1 嵌入式系统组成概述
操作系统利用一个或多个处理器的硬件资源 , 为系统用户提供一组服务 , 它还代表用户来管理辅助存储器和输入/输出(Input/Output , I/O)设备 。 因此 , 在开始分析操作系统之前掌握一些底层的计算机系统硬件知识是很重要的 。
本节给出了计算机系统硬件的概述 。 假设读者对这些领域已经比较熟悉 , 所以对大多数领域的概述是简要的 。 但某些内容对本书后面的主题比较重要 , 因此对这些内容的讲述比较详细 。
1.1.1 基本构成
从最顶层看 , 一台计算机由处理器、存储器和输入/输出部件组成 , 每类部件有一个或多个模块 。 这
些部件以某种方式互联 , 以实现计算机执行程序的主要功能 。 因此 , 计算机有四个主要的结构化部件:
? 处理器 (Processor):控制计算机的操作 , 执行数据处理功能 。 当只有一个处理器时 , 它通常指中
央处理器(CPU) 。
? 主存储器n (Main memory):存储数据和程序 。 此类存储器通常是易失性的 , 即当计算机关机时 , 存
储器的内容会丢失 。 相对于此的是磁盘存储器 , 当计算机关机时 , 它的内容不会丢失 。 主存储器通
常也称为实存储器(real memory)或主存储器(primary memory) 。
? 输入/ / 输出模块O (I/O modules):在计算机和外部环境之间移动数据 。 外部环境由各种外部设备组成 , 包括二级存储器设备(如硬盘)、通信设备和终端 。
本文插图
1.1.2 处理器寄存器
处理器包括一组寄存器 , 它们提供一定的存储能力 , 比主存储器访问速度快 , 但比主存储器的容量小 。
处理器中的寄存器有两个功能:
? 用户可见寄存器:优先使用这些寄存器 , 可以使机器语言或汇编语言的程序员减少对主存储器的访
问次数 。 对高级语言而言 , 由优化编译器负责决定哪些变量应该分配给寄存器、哪些变量应该分配
给主存储器 。 一些高级语言(如 C 语言)允许程序员建议编译器把哪些变量保存在寄存器中 。
? 控制和状态寄存器:用以控制处理器的操作 , 且主要被具有特权的操作系统例程使用 , 以控制程序
的执行 。
这两类寄存器并没有很明显的界限 。 例如 , 对某些机器而言 , 程序计数器是用户可见的 , 但对其他机
器却不是这样 。 但为了方便起见 , 以下的讨论使用这种分类方法 。
1 用户可见寄存器
用户可见寄存器可以通过由处理器执行的机器语言来引用 , 它一般对所有的程序都是可用的 , 包括应
用程序和系统程序 。 通常可用的寄存器类型包括 数据寄存器、 地址寄存器和 条件码寄存器 。
? 数据寄存器 (data register)可以被程序员分配给各种函数 。 在某些情况下 , 它们实际上是通用的 ,
可被执行数据操作的任何机器指令使用 。 但通常也有一些限制 , 例如对浮点数运算使用专用的寄存
器 , 而对整数运算使用其他寄存器 。
? 地址寄存器 (address register)包含数据和指令的主存储器地址 , 或者包含用于计算完整地址或有
推荐阅读
- 华为:华为最强神秘新旗舰来了! 首发鸿蒙OS系统+屏下摄像头: 售价或破万
- 『』疑似华为Mate40工程机照片曝光,屏下摄像头和鸿蒙系统稳了?
- 热门数码华为鸿蒙手机系统首次曝光,汉字界面简洁明了
- OpenstackOne2020年小米平板2值得魔改内存?win10系统卡吗?
- 特朗普▲截止于5月11日,特朗普“欺骗”了所有人,美国医疗系统未崩溃,是骗局?
- 数码科技大爆炸华为最强神秘新旗舰来了!首发鸿蒙OS系统+屏下摄像头:售价或破万
- #操作系统#可以提升手机性能和使用体验的手机隐藏功能: 开发者选项
- 深度解读华为意义!即便美国停供芯片和系统,国产手机也不会崩
- 周界安科技脉冲电子围栏系统断电了还能用吗?
- #安徽省#(法治)安徽人防系统现腐败窝案多名领导干部被查
