《嵌入式linux培训第一章.ppt》由会员分享,可在线阅读,更多相关《嵌入式linux培训第一章.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、东北林业大学信息学院东北林业大学信息学院3+1实验班实验班 嵌入式嵌入式linux培训培训2021/9/271课程介绍课程介绍l目的:本课程旨在指导同学们入门。通过本阶目的:本课程旨在指导同学们入门。通过本阶段学习,可以自己学习嵌入式段学习,可以自己学习嵌入式Linux相关内容。相关内容。早日成为具有嵌入式早日成为具有嵌入式linux开发能力的人才。开发能力的人才。l授课形式:采用理论教学与实践相结合的方式,授课形式:采用理论教学与实践相结合的方式,将整个培训划分为三个阶段即环境及基础阶段、将整个培训划分为三个阶段即环境及基础阶段、linux开发阶段及自学提高阶段,各阶段循序渐开发阶段及自学提
2、高阶段,各阶段循序渐进,本课程主要指导大家完成前两个阶段。进,本课程主要指导大家完成前两个阶段。l实验环境:实验环境:PC机,各种开发软件,嵌入式开发机,各种开发软件,嵌入式开发板(板(TQ2440)课程内容及安排课程内容及安排2021/9/272推荐的教材推荐的教材l嵌入式嵌入式linux应用程序开发详解孙琼等华清应用程序开发详解孙琼等华清远见图书远见图书llinux设备驱动开发详解李俊等华清远见图设备驱动开发详解李俊等华清远见图书书l嵌入式嵌入式 linux应用开发完全手册韦东山应用开发完全手册韦东山lARM嵌入式嵌入式linux系统开发从入门到精通李系统开发从入门到精通李亚峰,欧文圣亚峰
3、,欧文圣l注:这些都是我使用的。有些有电子版我注:这些都是我使用的。有些有电子版我放在电子书文件夹里了。放在电子书文件夹里了。2021/9/273第一章第一章 嵌入式嵌入式linux基础及嵌入式开基础及嵌入式开发软件的安装发软件的安装1.1 嵌入式嵌入式Linux简介及历史简介及历史l1、什么是嵌入式、什么是嵌入式linux?l嵌入式嵌入式linux是以是以linux为基础的嵌入式作业系统,为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及)、媒体播放器、消费性电子产品以及航空航天等领域中。嵌入式航空航天等
4、领域中。嵌入式linux将将linux操作系操作系统进行裁剪修改,使之能在嵌入式计算机系统统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式上运行的一种操作系统。嵌入式linux既继承了既继承了Internet上开放的源代码资源,又具有嵌入式操上开放的源代码资源,又具有嵌入式操作系统的特性。作系统的特性。2021/9/274知识回顾知识回顾l1、什么是嵌入式系统?、什么是嵌入式系统?l2、什么是嵌入式操作系统?、什么是嵌入式操作系统?下一页下一页2021/9/275l1、嵌入式系统、嵌入式系统以应用为中心,以计算机以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用技术
5、为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。有严格要求的专用计算机系统。l嵌入式系统一般这部分组成嵌入式系统一般这部分组成:嵌入式微处嵌入式微处理器、外围硬件设备、嵌入式操作系统、理器、外围硬件设备、嵌入式操作系统、特定的应用程序。特定的应用程序。l嵌入式系统的特点为应用的特定性和广泛嵌入式系统的特点为应用的特定性和广泛性、高效性、高可靠性、软硬一体性、高效性、高可靠性、软硬一体返回返回2021/9/276返回返回2021/9/277l2、嵌入式操作系统、嵌入式操作系统是嵌入式应用软件的是嵌入式应用软件的基
6、础和开发平台。嵌入式系统的出现基础和开发平台。嵌入式系统的出现,解解决了嵌入式软件开发标准化的难题。决了嵌入式软件开发标准化的难题。l嵌入式系统具有操作系统的最基本的功能嵌入式系统具有操作系统的最基本的功能包括进程调度、内存管理、设备管理、文包括进程调度、内存管理、设备管理、文件管理、操作系统接口件管理、操作系统接口(API(API调用调用)。l嵌入式操作系统具有的特点为系统可裁减嵌入式操作系统具有的特点为系统可裁减,可配置、系统具备网络支持功能、系统具可配置、系统具备网络支持功能、系统具有一定的实时性有一定的实时性返回返回2021/9/2782、嵌入式嵌入式linux发展历史发展历史l1)、
7、)、1983年年Richard Stallman创立了创立了GNU计划。这个计划的目标是为了发展计划。这个计划的目标是为了发展一个完全免费自由的一个完全免费自由的unix-like操作系统。操作系统。这个计划自这个计划自90年代以来,年代以来,GNU开始大量开始大量生产收集各种系统所必须的元件,但是除生产收集各种系统所必须的元件,但是除了执行核心(了执行核心(kernel)。)。2021/9/279l2)、)、Linux发展史发展史l1991年年Linux诞诞生生,由由芬芬兰兰赫赫尔尔辛辛基基大大学学学学生生Linus Torvalds在在本本校校用用于于系系统统教教学学的的Minix系系统统
8、基基础础上上开开发发的的类类UNIX操操作作系系统统。它它的的标标志志是是一个名为一个名为Tux的可爱的小企鹅。的可爱的小企鹅。l1991年年10月月5日日,Linus发发布布了了Linux的的第第一一个个版版本本:Linux 0.0.2,遵遵循循通通用用公公共共许许可可证证(GPL,General Public License)l同同年年11月月Linus发发布布了了其其稳稳定定版版0.10版版,12月月又又发布了发布了0.11版本。版本。2021/9/2710l由于许多专业用户(主要是程序员)自愿由于许多专业用户(主要是程序员)自愿的开发它的应用程序,并借助的开发它的应用程序,并借助Int
9、ernet拿拿出来大家一起修改,所以它的应用程序越出来大家一起修改,所以它的应用程序越来越多,来越多,linux本身也逐渐发展壮大。本身也逐渐发展壮大。l目前,最新的目前,最新的Linux内核版本是内核版本是linux 2.6.38。2021/9/27111.2开发软件安装与常用软件的使用开发软件安装与常用软件的使用l安装开发软件安装开发软件ADS软件、软件、keilMDK、jlink、虚拟机虚拟机vmware、vmwaretools软件、软件、red hat 9操作系统、学会使用上述软件、操作系统、学会使用上述软件、DNW及超级终端使用。及超级终端使用。2021/9/27121.2.1 AD
10、S1.2lADS(ARM Developer Suite)是)是ARM公司推出的新一代公司推出的新一代ARM继承开发工具。继承开发工具。ADS由命令行开发工具,由命令行开发工具,ARM实时库,实时库,GUI开发环境(开发环境(Code Warrior 和和AXD),),实用程序和支持软件组成。有了这些部件,实用程序和支持软件组成。有了这些部件,用户就可以为用户就可以为ARM系统的系统的RISC处理器编处理器编写和调试自己的开发应用程序。写和调试自己的开发应用程序。2021/9/2713CodeWarriorc/c+编辑区编辑区工程工程管理区管理区c/c+浏览区浏览区2021/9/2714AXD
11、图形工具图形工具图形图形窗口窗口寄存器寄存器反汇编反汇编存储器存储器2021/9/27151.2.2 KEIL MDKlRealview MDK开发套件源自德国的开发套件源自德国的keil公司,公司,被全球超过被全球超过10万的嵌入式开发工程师验证和使万的嵌入式开发工程师验证和使用,是用,是ARM公司目前最新推出的针对各种嵌入公司目前最新推出的针对各种嵌入式处理器的软件开发工具。式处理器的软件开发工具。lKeil MDK集成了业内最先进的技术,包括集成了业内最先进的技术,包括Vision4集成开发环境和集成开发环境和Realview编译器。支编译器。支持持ARM7、ARM9和最新的和最新的Co
12、rtex-M3/M1/M0内核处理器,自动配置启动代码,集成内核处理器,自动配置启动代码,集成Flash烧烧写模块,强大的写模块,强大的simulation设备模拟,性能分设备模拟,性能分析等功能,与析等功能,与ARM之前的工具包之前的工具包ADS相比,相比,RealView编译器的最新版本可将性能改善超过编译器的最新版本可将性能改善超过20%。2021/9/27161.2.3 Jlink l现在的现在的pc,越来越少并口了,特别是手提电脑。,越来越少并口了,特别是手提电脑。那怎么用那怎么用Jtag下载程序到开发板,成为开发者下载程序到开发板,成为开发者面临的问题。面临的问题。J-Link 是
13、是SEGGER 公司为支持仿公司为支持仿真真ARM 内核芯片推出的内核芯片推出的JTAG仿真器。配合仿真器。配合IAR EWARM,ADS,KEIL,WINARM,RealView 等集成开发环境支持所有等集成开发环境支持所有ARM7/ARM9 内核芯片的仿真,通过接口和各内核芯片的仿真,通过接口和各集成开发环境无缝连接,操作方便、连接方便、集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发简单易学,是学习开发ARM 最好最实用的开发最好最实用的开发工具。工具。2021/9/2717l实验一实验一 嵌入式开发软件的安装及使用嵌入式开发软件的安装及使用 2021/9/27181.3
14、linux操作系统操作系统lLinux发行版本:发行版本:RedHatFedora CoreMandrakeSuseDebianCentOSUbuntuRedFlag2021/9/27191.3.1 linux操作系统安装前准备操作系统安装前准备1、Linux操作系统硬件准备:操作系统硬件准备:lCPU:Pentium以上处理器。以上处理器。l内存:至少内存:至少128MB,推荐使用,推荐使用256MB以上的内存。以上的内存。l硬盘:至少需要硬盘:至少需要600MB硬盘空间。完全安装大约硬盘空间。完全安装大约需要需要5GB的硬盘空间。的硬盘空间。l显卡:显卡:VGA兼容显卡。兼容显卡。l光驱:
15、光驱:CD-ROM或或DVD-ROM。l其他设备:如声卡、网卡、软驱和其他设备:如声卡、网卡、软驱和 Modem等。等。l注意:用户可以通过注意:用户可以通过WindowsWindows的设备管理器来获的设备管理器来获得自己计算机的硬件型号等参数。得自己计算机的硬件型号等参数。2021/9/27202、linux分区准备分区准备l每块计算机硬盘上最多可以被划分出每块计算机硬盘上最多可以被划分出4个主分区,也可个主分区,也可以被划分出以被划分出3个主分区和一个扩展分区,然后在扩展分个主分区和一个扩展分区,然后在扩展分区内建立多个逻辑分区,通常逻辑分区没有个数的限制。区内建立多个逻辑分区,通常逻辑
16、分区没有个数的限制。l在安装在安装Red Hat Linux 9之前,通常对之前,通常对Linux系统的分区系统的分区做如下的安排:做如下的安排:/swap:交换分区,用来支持虚拟内存的分区,通常放:交换分区,用来支持虚拟内存的分区,通常放在单独的分区,其大小为内存容量的在单独的分区,其大小为内存容量的12倍。倍。/:根分区,它只存放启动系统所需的文件和系统配置文:根分区,它只存放启动系统所需的文件和系统配置文件,应放置在件,应放置在ext3fs主分区中,单独分区。主分区中,单独分区。2021/9/27211.3.2 Linux文件及文件系统文件及文件系统 文件类型文件类型l普通文件普通文件一
17、般包括文本文件、数据文件、可执一般包括文本文件、数据文件、可执行的二进制程序文件等。可以通过行的二进制程序文件等。可以通过ls lh命令来命令来查看文件的属性查看文件的属性(-)l目录文件目录文件 Linux系统把目录看成是一种特殊的文系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。目录文件,利用它构成文件系统的树型结构。目录文件只允许系统管理员对其进行修改,用户进程件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。可以读取目录文件,但不能对它们进行修改。每个目录文件至少包括两个条目,每个目录文件至少包括两个条目,“.”表示上一表示上一级目录,级目录
18、,“.”表示该目录本身。可以用表示该目录本身。可以用ls lh查看查看某个目录文件详细信息。(某个目录文件详细信息。(d)2021/9/2722l链接文件链接文件有两种,一种是符号链接,也称为软有两种,一种是符号链接,也称为软连接,一种是硬链接。连接,一种是硬链接。(l)l设备文件设备文件Linux系统把每个设备都映射成一个文系统把每个设备都映射成一个文件,这就是设备文件,它是用于向件,这就是设备文件,它是用于向I/O设备提供设备提供连接的一种文件,分为字符设备和块设备文件。连接的一种文件,分为字符设备和块设备文件。(b)l管道文件是管道文件是Linux中较特殊的文件类型,这类文中较特殊的文件
19、类型,这类文件多用于进程间的通信方面。使用件多用于进程间的通信方面。使用ls-lh命令查命令查看文件信息时。看文件信息时。(p)l套接字套接字(s)2021/9/27231.3.3 linux操作系统的定制安装操作系统的定制安装l实验二实验二 虚拟机虚拟机vmware的安装的安装 l实验三实验三 Linux操作系统的安装操作系统的安装 l实验四实验四 vmware tools的安装及配置的安装及配置windows共享文件共享文件 2021/9/27241.3.4 linux系统的根文件目录结构系统的根文件目录结构2021/9/27251.4 建立嵌入式开发环境建立嵌入式开发环境lLinux下开
20、发环境的建立主要有建立交叉下开发环境的建立主要有建立交叉编译环境、配置网络文件系统、配置编译环境、配置网络文件系统、配置PC机机Linux的的FTP服务、配置服务、配置PC机机linux的的Telnet服务。服务。l其中最重要的建立其中最重要的建立交叉编译环境交叉编译环境。2021/9/2726为什么使用交叉编译环境为什么使用交叉编译环境l宿主机和目标机的体系结构不同,在宿主机宿主机和目标机的体系结构不同,在宿主机X86平台上可以运行的程序在目标机平台上可以运行的程序在目标机ARM平台上是平台上是无法运行的。无法运行的。l嵌入式硬件(目标机)的性能一般无法满足开嵌入式硬件(目标机)的性能一般无
21、法满足开发环境的要求。例如:主频比较低、内存少、发环境的要求。例如:主频比较低、内存少、没有硬盘、没有大型显示设备、没有全键盘。没有硬盘、没有大型显示设备、没有全键盘。l交叉编译交叉编译采用采用PC(X86)作为主机来搭建)作为主机来搭建开发环境进行编译,但编译出来的软件能够在开发环境进行编译,但编译出来的软件能够在不同不同CPU体系架构的目标设备上运行。体系架构的目标设备上运行。2021/9/2727l我们使用的虚拟机安装的我们使用的虚拟机安装的linux是是red hat 9,内核是,内核是linux-2.4.20的内核,那么在的内核,那么在red hat 9上编译开发板上的上编译开发板上
22、的linux2.6内核,内核,就要用到交叉编译器编译开发板用的就要用到交叉编译器编译开发板用的Linux2.6的内核。交叉编译器利用的内核。交叉编译器利用PC的的linux作为工作平台,它调用的头文件,作为工作平台,它调用的头文件,库等都是交叉编译器自身或者开发板所用库等都是交叉编译器自身或者开发板所用的的linux内核自带的,和内核自带的,和PC的的linux一点关一点关系都没有。系都没有。2021/9/2728l搭建交叉编译环境的方法很多,不同的体搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器的内
23、核,都会用到不同的交叉编译器。我用的开发板是天嵌的。所以我搭建的交我用的开发板是天嵌的。所以我搭建的交叉编译环境是针对叉编译环境是针对TQ开发板的。对于其开发板的。对于其他的开发板搭建具体过程类似。他的开发板搭建具体过程类似。2021/9/27292021/9/2730l实验五实验五 建立开发环境之建立交叉编译环建立开发环境之建立交叉编译环境境。2021/9/27311.5 嵌入式系统开发流程嵌入式系统开发流程2021/9/27321.5.1 bootloader介绍介绍lBootloader是硬件启动的引导程序,是启动操是硬件启动的引导程序,是启动操作系统的根本;作系统的根本;l是在操作系统
24、内核或用户应用程序运行之前运是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,可以初始行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便系统的软硬件环境带到一个合适的状态,以便为最终调用准备好环境;为最终调用准备好环境;l在一般典型系统中整个系统加载启动任务就完在一般典型系统中整个系统加载启动任务就完全由全由bootloader来完成。来完成。2021/9/27331.5.2 Uboot介绍介绍lUboot是德国是德国DENX小组开发用于多种嵌小组开发用于多种嵌入
25、式入式CPU的的bootloader程序。程序。2021/9/27341.5.3 linux内核介绍内核介绍l内核指的是一个提供硬件抽象层、磁盘机内核指的是一个提供硬件抽象层、磁盘机文件系统控制、多任务等功能的系统软件。文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。通常一个内核不是一套完整的操作系统。通常我们使用的我们使用的linux系统是一个集系统是一个集linux内核、内核、工具集、各种库、桌面管理器、应用程序工具集、各种库、桌面管理器、应用程序等等与一体的一个发布包。等等与一体的一个发布包。2021/9/27351.5.4 linux文件系统文件系统l文件系统是一组程序,它们告诉操作系统文件系统是一组程序,它们告诉操作系统如何访问及解释存储在磁盘或磁带驱动器如何访问及解释存储在磁盘或磁带驱动器或者其他存储媒介上的内容。或者其他存储媒介上的内容。lCramfs只读压缩的文件系统。文件系统只读压缩的文件系统。文件系统类型是类型是ext2,ext3。内核把。内核把cramfs文件系文件系统载入内存中解压,比较占内存。统载入内存中解压,比较占内存。lYaffs是一种类似于是一种类似于JFFS/JFFS2的专门为的专门为flash设计的嵌入式文件系统。设计的嵌入式文件系统。2021/9/2736
限制150内