大学LINUX基础及应用教程-陈英-课件PPT
收藏
资源目录
压缩包内文档预览:(预览前20页/共30页)
编号:21836392
类型:共享资源
大小:12.24MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
linux
基础
应用
利用
运用
教程
陈英
课件
ppt
- 资源描述:
-
大学LINUX基础及应用教程-陈英-课件PPT,大学,linux,基础,应用,利用,运用,教程,陈英,课件,ppt
- 内容简介:
-
陈英 梁建武主编 中国水利水电出版社,Linux基础及应用,第11章 嵌入式Linux,陈英 梁建武主编 中国水利水电出版社,11.1嵌入式系统简介,11.1.1 嵌入式系统的定义 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。 Linux提供了完成嵌入功能的基本的内核和所需要的所有用户界面,它是多面的。它能处理嵌入式任务和用户界面。将Linux看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其他的分拆的、微内核到完整的服务器,支持所有的文件系统和网络服务。,陈英 梁建武主编 中国水利水电出版社,11.1.2 嵌入式系统的特征 嵌入式系统是面向用户、面向产品、面向应用的,如果独立于应用自行发展,则会失去市场。嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等方面均受到应用要求的制约,这些也是各个半导体厂商之间竞争的热点。,陈英 梁建武主编 中国水利水电出版社,11.2 嵌入式Linux基础,11.2.1 嵌入式Linux的应用 信息家电:PDA,机顶盒,Digital Telephone,Answering Machine,Screen Phone; 数据网络:Ethernet Switches,Router,Bridge,Hub,Remote access servers,ATM,Frame relay; 远程通信; 医疗电子; 交通运输; 计算机外设; 工业控制; 航空航天领域,陈英 梁建武主编 中国水利水电出版社,11.2.2 Linux作为嵌入式操作系统的优势 1免许可证费用 嵌入式Linux的版权费是免费的,其购买费用仅为媒介成本。大多数的商业操作系统,例如Windows, Windows CE对每套操作系统收取一定的许可证费用。相对地,Linux是一个免费软件,并且公开源代码。只要不违反GPL(General Public License,通用版权许可协议),就可以自由应用和发布Linux。,陈英 梁建武主编 中国水利水电出版社,2有很高的稳定性 在PC硬件上运行时,Linux是非常可靠和稳定的,特别是和现在流行的一些操作系统相比。 有两个因素会影响稳定性,一是使用了混乱的驱动程序。驱动程序的选择很有限,有些稳定有些不稳定。一旦离开了通用的PC平台,需要自己编写。二是使用了硬盘。,陈英 梁建武主编 中国水利水电出版社,3强大的网络功能 Linux天生就是一个网络操作系统,几乎所有的网络防议和网络接口都已经被定制在Linux中。Linux内核在处理网络防议方面比标准的Unix更具执行效率,在每一个端口上有更高的吞吐量。,陈英 梁建武主编 中国水利水电出版社,4丰富的开发工具 Linux提供C, C+, JAVA以及其他很多的开发工具。更重要的是,爱好者可以免费获得,技术上由全世界的自由软件开发者提供支持。 Linux基于GNU的工具包,此工具包提供了完整与无缝交叉平台开发工具,从编辑器到底层调试。其C编译器产生更有效率的执行代码。,陈英 梁建武主编 中国水利水电出版社,5实时性 在实时性能方面,RT_Linux ,Hardhat Linux 等嵌入式Linux支持实时性能;稳定性好,安全性好。,陈英 梁建武主编 中国水利水电出版社,11.3 Linux I/O端口编程,11.3.1如何在C语言下使用I/O端口 一般方法 在存取任何I/O端口之前,必须让程序有如此做的权限。要完成这个目的,可以在程序一开始的地方(但是,要在任何I/O端口存取动作之前)调用ioperm()这个函数(该函数在文件unistd.h中,并且被定义在内核中)。,陈英 梁建武主编 中国水利水电出版社,使用语法是: ioperm(from,num,turn_on) 其中from是第一个允许存取的I/O端口地址,num是接着连续存取I/O端口地址的数目。,陈英 梁建武主编 中国水利水电出版社,函数ioperm()只能取得端口地址0x000到0x3ff的存取权限;至于较高地址的端口,需要使用函数iopl()(该函数可以一次存取所有的端口地址)。将权限等级参数值设为3(例如,iopl(3)),以便程序能够存取所有的I/O端口(如果存取到错误的端口地址将对计算机造成各种不可预期的损害。同样地,调用函数iopl()必需要拥有root的权限。,陈英 梁建武主编 中国水利水电出版社,接着来实际地存取I/O端口。要从某个端口地址输入一个字节(8位)的信息,调用函数inb(port),该函数会传回所取得的一个字节的信息。要输出一个字节的信息,调用函数outb(value,port)。要从某两个端口地址x和x+1(两个字节组成一个字,故使用组合语言指令inw)输入一个字(16个bit)的信息,需要调用函数inw(x);要输出一个字的信息到两个端口地址,需要调用函数outw(value,x)。,陈英 梁建武主编 中国水利水电出版社,2替代方法:/dev/port 另一个存取I/O端口的方法是以函数open()打开文件/dev/port(一个字符设备,主设备编号为1,次设备编号为4),以便执行读与(或)写的动作(注意标准输出入函数f*()有内部的缓冲,所以要避免使用)。,陈英 梁建武主编 中国水利水电出版社,11.3.2 硬件中断与DMA存取 用户程序如果在用户模式下执行,不可以直接使用硬件中断(IRQ)或DMA。用户必须编写一个内核驱动程序。也就是说,在用户模式中所写的程序无法控制硬件中断的产生。,陈英 梁建武主编 中国水利水电出版社,11.3.3 延迟时间 在用户模式中执行的进程不能精确地控制时间,因为Linux是个多用户的操作环境,在执行中的进程随时会因为各种原因被暂停大约10ms到数秒(在系统负荷非常高的时候)。然而对于大多数使用I/O端口的应用程序而言,这个延迟时间实际上算不了什么。要缩短延迟时间,需要使用函数nice将你在执行中的进程设定成高优先权,或使用即时调度法(real-time scheduling)。,陈英 梁建武主编 中国水利水电出版社,11.4 嵌入式Linux开发,11.4.1 构造嵌入式Linux前先要了解的几个关键问题 1如何引导? 在PC上运行的Linux依靠PC的BIOS来提供这些配置和OS加载功能。 在一个嵌入式系统里经常没有这种BIOS。这样就要提供同等的启动代码。 在大多数情况下,一个最小的通电自检模块,可以检查内存的正常运行、让LED闪烁,并目驱动其它必须的硬件以使主Linux OS启动和运行。,陈英 梁建武主编 中国水利水电出版社,2需要虚拟内存吗? 由于CPU的原因,在嵌入式Linux中保存虚拟内存代码是明智的,因为将它清除很费事。而且还有另外一个原因它支持共享文本,这样就可以使许多程序共享一个软件。 虚拟内存的调入功能可以被关掉,只要将交换空间的大小设置为零。然后,如果用户写的程序比实际的内存大,系统就会当作用户的运行用尽了交换空间来处理,这个程序将不会运行。,陈英 梁建武主编 中国水利水电出版社,3选用什么样的文件系统? 实际上,许多商业性嵌入式系统,提供文件系统作为选项。许多或者是专用的文件系统或者是MS-DOS-Compatible文件系统。Linux提供MS-DOS-Compatible文件系统,同时还有其它多种选择。 文件系统可以被放在传统的磁盘驱动器、Flash Memory或其它这类的介质上。而且,用于暂时保存文件,一个小RAM盘就足够了。,陈英 梁建武主编 中国水利水电出版社,4如何消除嵌入式Linux系统对磁盘的依赖? 在一个嵌入式系统里,可能没有磁盘。有两种途径可以消除对磁盘的依赖,这要看系统的复杂性和硬件的设计。 在一个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多数传统的嵌入式系统工作模式,它同样可以被Linux支持。 有了Linux,就有了第二种可能性。因为Linux已经有能力“加载”和“卸载”程序,一个嵌入式系统就可以利用它来节省内存。,陈英 梁建武主编 中国水利水电出版社,5嵌入式Linux达到怎样的实时性? 在嵌入式领域中,实时并非是最重要的。嵌入式系统常常被错误地分为实时系统,尽管多数系统一般并不要求实时功能。实时是一个相对的词,常常被严格地定义实时为对一事件以预定的方式在极短的时间如微秒作出响应,渐渐地,在如此短暂时间间隔内的严格实时功能在专用DSP芯片或ASIC上实现了。只有在设计低层硬件FIFO、分散/聚集DMA引擎和定制硬件时才会有这样的要求。,陈英 梁建武主编 中国水利水电出版社,11.4.2 嵌入式Linux开发环境,陈英 梁建武主编 中国水利水电出版社,嵌入式Linux开发流程,陈英 梁建武主编 中国水利水电出版社,11.4.3 开发嵌入式Linux的步骤 1精简内核 构造内核常用命令包括:make config, dep,clean,mrproper,zImage,bzImage,modules, modules install。 (1)make config 核心配置, (2)make dep 寻找依存关系。 (3)make clean 清除以前构核所产生的所有目标文件、模块文件、核心以及一些临时文件等,不产生任何文件。 (4)make rmproper 删除所有因构核过程中产生的所有文件。,陈英 梁建武主编 中国水利水电出版社,(5)make, make zImage, make bzImage make:构核。 make zImage:在make的基础上产生压缩的核心映象文件./arch/$ (ARCH) /boot/zImage以及在./arch/$ (ARCH) /boot/compresed/目录下产生一些临时文件。 make bzImage:在make的基础上产生压缩比例更大的核心映象文件./arch/$ (ARCH) /boot/bzImage以及在./arch/$ (ARCH) /boot/compresed/目录下产生一些临时文件。在核心太大时进行。 (6)make modules 编译模块文件。 (7)make modules install,陈英 梁建武主编 中国水利水电出版社,2系统启动 bootsect是第一个被读入内存中并执行的程序。bootsect的启动程序如下 : 第一步,bootsect将它从被ROM BIOS载入的绝对地址0x7C00处搬到0x90000处,然后利用一个jmpi(jump indirectly)的指令,跳到新位置的jmpi的下一行去执行。 第二步,将其他segment registers包括DS, ES, SS都指向0x9000这个位置,与CS看齐。另外将SP及DX指向一任意位移地址(offset),这个地址等一下会用来存放磁盘参数表(disk para- meter table)。 第三步,接着利用BIOS中断服务int 13h的第0号功能,重置磁盘控制器,使得刚才的设定发挥功能。,陈英 梁建武主编 中国水利水电出版社,第四步,完成重置磁盘控制器之后,bootsect就从磁盘上读入紧邻着bootsect的setup程序,也就是setup.S,此读入动作是利用BIOS中断服务int 13h的第2号功能。Setup的image将会读入至程序所指定的内存绝对地址0x90200处,也就是在内存中紧邻着bootsect所在的位置。待setup的image读入内存后,利用BIOS中断服务int 13h的第8号功能读取目前磁盘的参数。 第五步,读入Linux的kernel。在读入前,将会先呼叫BIOS中断服务int l0h的第3号功能,读取游标位置,之后再呼叫BIOS中断服务int l0h的第13h号功能,在屏幕上输出字串“Loading”,这个字串在boot linux时都会首先被看到。 第六步,接下来做的事是检查root device,陈英 梁建武主编 中国水利水电出版社,3驱动程序 在Linux系统里,设备驱动程序所提供的这组入口点由一个结构来向系统进行说明,此结构定义为: #include struct file_ operations int (*lseek)(struct inode *inode,struct file *filp, off_ t off, int pos); int (*read) (struct inode *inode, struct file *filp, char *buf, int count); int (*write)(struct inode *inode,struct file *filp, char *buf, int count);,陈英 梁建武主编 中国水利水电出版社,int (*readdir)(struct inode *inode,struct file *filp, struct dirent *dirent, int count); int (*select)(struct inode *inode,struct file *filp, int sel_ type, select_ table *wait); int (*ioctl) (struct inode *inode,struct file *filp, unsigned int cmd, unsigned int arg); int (*mmap) (void); int (*open) (struct inode *inode, struct file *filp); void (*release) (struct inode *inode, struct fil
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。