- 1、本文档共62页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统8-嵌入式Linux
嵌入式Linux 一、嵌入式Linux的定义 嵌入式Linux(Embedded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几K字节或几M字节的存储器芯片或单片系统中,应用于特定嵌入式场合的专用Linux操作系统 嵌入式Linux的优势 Linux系统是层次结构且内核完全开放 强大的网络支持功能 Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍 Linux具有广泛的硬件支持特性 嵌入式Linux面临的挑战 1、扩充Linux的实时系统 2、改变Linux内核的体系结构 3、完善Linux的集成开发环境 1、扩充Linux的实时系统 内核不支持事件优先级和抢占实时特性 对Linux实时性的扩展可以从两方面进行: 向外扩展(让实时系统支持的范围更广,支持的设备更多) 向上扩展(扩充Linux内核,从功能上扩充Linux的实时处理和控制系统) RT-Linux的做法 Linux本身的任务以及Linux内核本身作为一个优先级最低的任务 实时任务作为优先级最高的任务 实时任务以Linux的内核模块(Loadable Kernel Module,LKM)的形式存在 2、改变Linux内核的体系结构 Monolithic内核体系 MicroKernel体系 执行效率 内核的体积 升级、维护和移植 微内核技术 缺点:操作系统的服务模块在独立的地址空间运行,使得进程间通信和上下文切换的系统开销大大增加,降低了系统效率。 3、完善Linux的集成开发环境 Linux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还存在差距 POSIX实时扩展 POSIX(Portable Operating System Interface)是为标准化类UNIX操作系统所必须具有的特征和接口而制定,其思想就是为了增强为类UNIX操作系统编写的软件的可移植性 二、嵌入式linux开发 最小的嵌入式 Linux 系统仅需要三个基本元素: 引导实用程序 Linux 微内核,由内存管理、进程管理和定时服务构成 初始化过程 ? 硬件驱动程序 一个或多个应用进程,以提供所需功能 面向嵌入式Linux 系统的图形用户界面 MicroWindows/NanoX 开放源码 无任何硬件加速能力 图形引擎中存在许多低效算法 代码质量较差 OpenGUI 可移植性稍差 Qt/Embedded? 低的程序效率、大的资源消耗 MiniGUI 嵌入式Linux开发 了解硬件 针对所用CPU的编译器/汇编器/连接器,相应的库工具,目标文件分析/管理工具,符号查看器 编程器,下载工具和查错器 安排内存地址 编写启动代码和机器相关代码:硬件初始化,装载内核及安装根文件系统以及开始内核执行 驱动程序 系统启动 系统启动的相关文件如下: ./arch/$ARCH/boot/ bootsect.s ./arch/$ARCH/boot/setup.s ./init/main.c bootsect.S 及 setup.S 三、linux启动流程 1 加电或复位 2 BIOS的启动 3 Boot Loader 4 操作系统初始化 1 加电或复位 冷启动过程开始,中央处理器进入复位状态,将内存中的所有数据清零,对内存进行校验,如果没错,CS寄存器将置入FFFF,IP寄存器置入0000,这个CS:IP组合指向的是BIOS的入口。系统就是这样进入BIOS启动过程的。 2 BIOS启动 上电自检POST(Power On Self Test) 对系统内的硬件设备进行监测和连接 最后,BIOS将从软盘或硬盘上读入Boot Loader.如果从硬盘启动,BIOS将读入该盘的零柱面零磁道1扇区(MBR),这个扇区上就放着Boot Loader. 2 BIOS启动 除了启动程序,BIOS还提供了一组中断以便于对硬件设备的访问。我们知道,当键盘上的某一键被按下,CPU就会产生一个中断并把这个键的信息读入。 在操作系统没有被装入以前(Bootsect.S还没有被读入),中断的响应程序由BIOS提供。 3 Boot Loader Boot Loader是一段汇编代码,存放在MBR中,它的主要作用就是将系统启动代码读入内存。 3 Boot Loader 因为在启动过程中,BIOS会把Boot Loader读入内存,并把控制权交给它。MBR(硬盘启动)内的代码就是Boot Loader或者它的一部分,为了说明Boot loader的实现,先解释磁盘结构。 3 Boot Loader 一个硬盘在DOS文件系统下可被分为四个基本分区
文档评论(0)