西南林业学院信息大学3+1实验班——嵌入式linux培训课程介绍目的:本课程致力指导朋友们入门。通过本阶段学习,可以自己学习嵌入式Linux相关内容。尽快成为具有嵌入式linux开发能力的人才。讲课方式:采用理论教学与实践相结合的形式,将整个培训界定为三个阶段即环境及基础阶段、linux开发阶段及自学增强阶段,各阶段循序渐进,本课程主要指导你们完成前两个阶段。实验环境:PC机,各类开发软件,嵌入式开发板(TQ2440)课程内容及安排K:%5C3+1%E5%AE%9E%E9%AA%8C%E7%8F%AD%E5%B5%8C%E5%85%A5%E5%BC%8Flinux%E5%9F%B9%E8%AE%AD%5C3+1%E5%9F%B9%E8%AE%AD%E7%8F%ADlinux%E5%9F%B9%E8%AE%AD%E8%AE%A1%E5%88%推荐的教材《嵌入式linux应用程序开发解读》孙琼等华清远见图书《linux设备驱动开发解读》李俊等华清远见图书《嵌入式linux应用开发完全指南》韦东山《ARM嵌入式linux系统开发从入门到精通》李亚峰,欧文圣注:那些都是我使用的。
有些有电子版我置于电子书文件夹里了。第一章嵌入式linux基础及嵌入式开发软件的安装嵌入式Linux简介及历史1、什么是嵌入式linux?嵌入式linux是以linux为基础的嵌入式作业系统,它被广泛应用在联通电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及民航航天等领域中。嵌入式linux将linux操作系统进行剪裁更改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既承继了Internet上开放的源代码资源,又具有嵌入式操作系统的特点。知识回顾1、什么是嵌入式系统?2、什么是嵌入式操作系统?下一页1、嵌入式系统以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统通常这部份组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定的应用程序。嵌入式系统的特征为应用的特定性和广泛性、高效性、高可靠性、软硬一体返回返回2、嵌入式操作系统是嵌入式应用软件的基础和开发平台。嵌入式系统的出现,解决了嵌入式软件开发标准化的困局。嵌入式系统具有操作系统的最基本的功能包括进程调度、内存管理、设备管理、文件管理、操作系统插口(API调用)。
嵌入式操作系统具有的特征为系统可裁减,可配置、系统具备网路支持功能、系统具有一定的实时性返回2、嵌入式linux发展历史1)、1983年RichardStallman成立了GNU计划。这个计划的目标是为了发展一个完全免费自由的unix-like操作系统。这个计划自90年代以来,GNU开始大量生产搜集各类系统所必须的器件,然而不仅执行核心(kernel)。2)、Linux发展史1991年Linux诞生,由加拿大蒙特利尔学院中学生LinusTorvalds在本校用于系统教学的Minix系统基础上开发的类UNIX操作系统。它的标志是一个名为Tux的甜美的小企鹅。1991年10月5日,Linus发布了Linux的第一个版本:Linux,遵守通用公共许可证(GPL,GeneralPublicLicense)同年11月Linus发布了其稳定版版,12月又发布了版本。因为许多专业用户(主要是程序员)自愿的开发它的应用程序,并利用Internet掏出来你们一起更改,所以它的应用程序越来越多,linux本身也逐步发展壮大。目前,最新的Linux内核版本是linux。
开发软件安装与常用软件的使用安装开发软件ADS软件、keilMDK、jlink、虚拟机vmware、vmwaretools软件、redhat9操作系统、学会使用上述软件、DNW及超级终端使用。ADS(ARMDeveloperSuite)是ARM公司推出的新一代ARM承继开发工具。ADS由命令行开发工具,ARM实时库linux命令vi,GUI开发环境(CodeWarrior和AXD),实用程序和支持软件组成。有了这种部件,用户就可以为ARM系统的RISC处理器编撰和调试自己的开发应用程序。CodeWarriorc/c++编辑区工程管理区c/c++浏览区AXD图形工具图形窗口寄存器反汇编储存器KEILMDKRealviewMDK开发套件源自英国的keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各类嵌入式处理器的软件开发工具。KeilMDK集成了业内最先进的技术,包括μVision4集成开发环境和Realview编译器。支持ARM7、ARM9和最新的Cortex-M3/M1/M0内核处理器linux就该这么学,手动配置启动代码,集成Flash烧录模块,强悍的simulation设备模拟,性能剖析等功能arm 嵌入式 linux 系统开发从入门到精通,与ARM之前的工具包ADS相比,RealView编译器的最新版本可将性能改善超过20%。
Jlink现今的pc,越来越少串口了,非常是手提笔记本。那如何用Jtag下载程序到开发板,成为开发者面临的问题。J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAREWARM,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过插口和各集成开发环境无缝联接,操作便捷、连接便捷、简单易学,是学习开发ARM最好最实用的开发工具。实验一嵌入式开发软件的安装及使用linux操作系统Linux发行版本:RedHatFedoraCoreMandrakeSuseDebianCentOSUbuntuRedFlaglinux操作系统安装前打算1、Linux操作系统硬件打算:CPU:Pentium以上处理器。显存:起码128MB,推荐使用256MB以上的显存。硬碟:起码须要600MB硬碟空间。完全安装大概须要5GB的硬碟空间。主板:VGA兼容主板。硬盘:CD-ROM或DVD-ROM。其他设备:如声卡、网卡、软驱和Modem等。注意:用户可以通过Windows的设备管理器来获得自己计算机的硬件机型等参数。
2、linux分区打算每块计算机硬碟上最多可以被界定出4个主分区,也可以被界定出3个主分区和一个扩充分区,之后在扩充分区内构建多个逻辑分区,一般逻辑分区没有个数的限制。在安装RedHatLinux9之前,一般对Linux系统的分区做如下的安排:/swap:交换分区,拿来支持虚拟显存的分区,一般置于单独的分区,其大小为显存容量的1~2倍。/:根分区,它只储存启动系统所需的文件和系统配置文件,应放置在ext3fs主分区中,单独分区。Linux文件及文件系统文件类型普通文件通常包括文本文件、数据文件、可执行的二补码程序文件等。可以通过ls–lh命令来查看文件的属性(-)目录文件Linux系统把目录看成是一种特殊的文件,借助它构成文件系统的树型结构。目录文件只容许系统管理员对其进行更改,用户进程可以读取目录文件,但不能对它们进行更改。每位目录文件起码包括两个条目,“..”表示上一级目录,“.”表示该目录本身。可以用ls–lh查看某个目录文件详尽信息。(d)链接文件有两种,一种是符号链接,亦称为软联接,一种是硬链接。(l)设备文件Linux系统把每位设备都映射成一个文件,这就是设备文件,它是用于向I/O设备提供联接的一种文件,分为字符设备和块设备文件。
(b)管线文件是Linux中较特殊的文件类型,这类文件多用于进程间的通讯方面。使用ls-lh命令查看文件信息时。(p)套接字(s)linux操作系统的订制安装实验二虚拟机vmware的安装实验三Linux操作系统的安装实验四vmwaretools的安装及配置windows共享文件linux系统的根文件目录结构构建嵌入式开发环境Linux下开发环境的完善主要有完善交叉编译环境、配置网路文件系统、配置PC机Linux的FTP服务、配置PC机linux的Telnet服务。其中最重要的构建交叉编译环境。为何使用交叉编译环境宿主机和目标机的体系结构不同,在宿主机X86平台上可以运行的程序在目标机ARM平台上是难以运行的。嵌入式硬件(目标机)的性能通常难以满足开发环境的要求。诸如:外频比较低、内存少、没有硬碟、没有小型显示设备、没有全按键。交叉编译——采用PC(X86)作为主机来搭建开发环境进行编译,但编译下来的软件就能在不同CPU体系构架的目标设备上运行。我们使用的虚拟机安装的linux是redhat9,内核是的内核,这么在redhat9上编译开发板上的内核,就要用到交叉编译器编译开发板用的的内核。
交叉编译器借助PC的linux作为工作平台,它调用的头文件,库等都是交叉编译器自身或则开发板所用的linux内核自带的,和PC的linux一点关系都没有。搭建交叉编译环境的方式好多,不同的体系结构、不同的操作内容甚至是不同版本的内核,还会用到不同的交叉编译器。我用的开发板是天嵌的。所以我搭建的交叉编译环境是针对TQ开发板的。对于其他的开发板搭建具体过程类似。实验五完善开发环境之完善交叉编译环境。嵌入式系统开发流程bootloader介绍Bootloader是硬件启动的引导程序,是启动操作系统的根本;是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序arm 嵌入式 linux 系统开发从入门到精通,可以初始化硬件设备、建立显存空间的映射图,因而将系统的软硬件环境带到一个合适的状态,便于为最终调用打算好环境;在通常典型系统中整个系统加载启动任务就完全由bootloader来完成。Uboot介绍Uboot是日本DENX小组开发用于多种嵌入式CPU的bootloader程序。linux内核介绍内核指的是一个提供硬件具象层、磁盘机文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。
一般我们使用的linux系统是一个集linux内核、工具集、各种库、桌面管理器、应用程序等等与一体的一个发挎包。linux文件系统文件系统是一组程序,它们告诉操作系统怎样访问及解释储存在c盘或磁带驱动器或则其他储存媒介上的内容。Cramfs只读压缩的文件系统。文件系统类型是ext2,ext3。内核把cramfs文件系统载入显存中解压,比较占显存。Yaffs是一种类似于JFFS/JFFS2的专门为flash设计的嵌入式文件系统。