项目1熟悉嵌入式系统开发环境_第1页
项目1熟悉嵌入式系统开发环境_第2页
项目1熟悉嵌入式系统开发环境_第3页
项目1熟悉嵌入式系统开发环境_第4页
项目1熟悉嵌入式系统开发环境_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国高等职业院校规划教材.精品与示范系列

李军锋主编邵瑛沈毓骏副主编嵌入式系统应用——仿真月球车控制系统设计电子工业出版社项目1熟悉嵌入式系统开发环境一、项目概况一、项目概况项目说明:

本项目利用嵌入式系统基本理论,构建嵌入式系统的集成开发环境,采用Linux操作系统平台在ARM板内烧写可执行文件并设置开机自动运行程序实现仿真月球车的直线运行控制,包括仿真月球车前进和后退。二、知识储备

2.1、嵌入式系统基本概念定义:根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”(即“控制、监视或者辅助机器和设备运行的装置”之意)。表明嵌入式系统是一个软硬件综合体的事实。有多种不同的关于嵌入式系统(EmbeddedSystem)的定义,被业界大多数人所接受的是根据嵌入式系统的特点下的定义:“以应用为中心、以计算机技术为基础、软件硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。二、知识储备2.1、嵌入式系统基本概念嵌入式系统的应用嵌入式应用信息家电智能玩具军事电子通信设备移动存贮工控设备智能仪表汽车电子网络设备消费电子军事国防电子商务工业控制二、知识储备2.1、嵌入式系统基本概念嵌入式系统应用领域极为广泛,具体例如:坦克、导弹、飞机、军舰、雷达DVD机、电视机、微波炉、洗衣机、电冰箱、热水器手机、MP3播放器、数码相机、数码摄像机、机顶盒键盘、鼠标、闪存盘、CD-ROM、交换机、路由器1.4嵌入式系统的应用领域二、知识储备2.1、嵌入式系统基本概念嵌入式系统应用领域二、知识储备2.1、嵌入式系统基本概念嵌入式系统应用领域二、知识储备2.1、嵌入式系统基本概念嵌入式系统应用领域2.1、嵌入式系统基本概念嵌入式系统应用领域空调控制后视镜照明系统座椅系统天窗系统锁车窗升降二、知识储备

2.1、嵌入式系统基本概念嵌入式系统应用领域分布式控制网关+分布式模块网关CANLIN后视镜LIN门控窗控面板分布式控制二、知识储备

二、知识储备

2.1、嵌入式系统基本概念嵌入式系统应用领域二、知识储备

2.1、嵌入式系统基本概念嵌入式系统的发展经历了以下四个阶段:无操作系统阶段简单操作系统阶段实时操作系统阶段面向Internet阶段

2.1.3嵌入式系统与PC的不同一般专用于特定的任务,而PC是一个通用计算机。使用多种类型的处理器和处理器体系结构。及其关注成本有实时约束使用实时多任务操作系统软件故障造成的后果比PC系统更严重大多有功耗约束经常在极端的环境下运行系统资源比PC少的多通常所有的目标代码存放在ROM中需要专用工具和方法进行开发设计嵌入式系统的数量远远超过PC2.1.4巨大的市场计算机应用的普及、互联网技术的实用以及纳米微电子技术的突破,正有力推动着21世纪工业生产,商业活动科学试验和家庭生活等领域自动化和信息化进程。嵌入式产品的巨大商机--全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居。你接触的每一样东西将装有芯片和嵌入式软件。2.1.5创新的机遇通用计算机产业是垄断的。嵌入式系统与技术是一个分散的工业,充满竞争、机遇与创新。没有哪一个系列的处理器和操作系统能够垄断全部市场即便在体系结构上存在着主流,但各不相同的应用领域决定了不可能有少数公司,少数产品垄断全部市场。因此嵌入式系统领域的产品和技术,必然是高度分散的,留给各个行业的中小规模高技术公司的创新余地很大。二、知识储备2.1、嵌入式系统基本概念嵌入式系统的特点和种类从构成上看:集软硬件一体、可独立工作的计算机;从外观上看:“可编程”的电子“器件”;从功能上看:对目标系统进行智能化控制。从用户和开发人员的角度来看:专用性强。体积小型化。实时性好。可裁剪性好。可靠性高。功耗低。本身不具备开发能力。通常采用“软硬协同设计”。二、知识储备2.1、嵌入式系统基本概念嵌入式系统的特点和种类嵌入式处理器的分类在目前的嵌入式处理器市场中,各种类型的处理器芯片层出不穷。据不完全统计,全世界范围内的处理器品种已超过1000种,流行的体系结构有30多个系列,其中8051体系和ARM体系的CPU是当前市场的主流。二、知识储备2.1、嵌入式系统基本概念嵌入式系统的特点和种类嵌入式技术的发展方向和特点向应用开发提供强大支持更强大的处理器OS,实时多任务编程技术交叉开发工具软件质量保障为设备网络通信提供标准接口。互联网移动网络,无线网络GPS卫星定位支持小型电子设备小尺寸、微功耗和低成本。提供精巧的多媒体人机界面。2.嵌入式系统的基本结构嵌入式系统的构架嵌入式微处理器嵌入式操作系统启动程序BootLoader介绍

2.1嵌入式系统的构架API(ApplicationProgrammingInterface)2.2嵌入式系统的硬件基本结构2.3嵌入式处理器支持实时多任务.较短的中断响应时间存储区保护功能可扩展的处理器结构较低的功耗分类:★嵌入式微控制器(MicrocontrollerUnit)★嵌入式DSP处理器EDSP(EmbeddedDigitalSignalProcessor)★嵌入式微处理器(EmbeddedMicroprocessorUnit)★嵌入式片上系统SOC(SystemOnChip)

2.3.1嵌入式微处理器特点:功能和微处理器基本一样,是具有32位以上的处理器,具有较高的性能.具有体积小,功耗少,成本低,可靠性高的特点.有的可提供工业级应用.流行的嵌入式微处理器:ARM/Strong(ARM公司)PowerPC(MOTOROL公司)68000(MOTOROL公司)MIPS(MIPS公司)MIPS处理器MIPS技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商。在RISC处理器方面占有重要地位。MIPS的意思是“无内锁流水段微处理器”(Microprocessorwithoutinterlockedpipedstages),最早是在80年代初期由美国斯坦福大学Hennessy教授领导的研究小组研制出来的。1986年推出R2000处理器,1988年推出R3000处理器,1991年推出第一款64位商用微处理器R4000。之后,又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号。之后,MIPS公司的战略发生变化MIPS处理器此外,24K微架构能符合各种新兴的服务趋势,为宽频存取以及还在不断发展的网络基础设施、通讯协议提供软件可编程的弹性。在嵌入式方面,MIPS系列微处理器是目前仅次于ARM的用得最多的处理器之一(1999年以前MIPS是世界上用得最多的处理器),其应用领域覆盖游戏机、路由器、激光打印机、掌上电脑等各个方面。MIPS的系统结构及设计理念比较先进,在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。

PowerPC处理器PowerPC架构的特点是可伸缩性好,方便灵活。PowerPC处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备,无所不包。处理器芯片主要型号是PowerPC750,它于1997年研制成功,最高的工作频率可以达到500MHz,采用先进的铜线技术。该处理器有许多品种,以便适合各种不同的系统。包括IBM小型机、苹果电脑和其他系统。嵌入式的PowerPC405(主频最高为266MHz)和PowerPC440(主频最高为550MHz)处理器内核可以用于各种SoC设计上,在电信、金融和其他许多行业具有广泛的应用。2.3.2嵌入式微控制器 嵌入式微控制器就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM,RAM,总线,总线逻辑,定时/计数器,Watchdog,I/O,串行口等各种必要功能和外设.其特点为:一个系列的微控制器具有多种衍生产品;单片化,体积大大减小,功耗和成本降低,可靠性提高;是目前嵌入式工业的主流,约占嵌入式系统70%的份额;多是8位和16位处理器流行的嵌入式微控制器通用系列:8051,MCS251,MCS-96/196/296半通用系列:支持I2C,CANBUS,LCD及众多专用MCU和兼容系列2.3.3嵌入式DSP嵌入式DSP处理器有两个发展方向:是嵌入式DSP处理器和嵌入式处理器经过单片化设计,片上增加丰富的外设成为具有高性能DSP功能的SoC;是在通用微处理器、微控制器或SoC中增加DSP协处理器,例如Intel的MCS-296和Siemens的TriCore。2.3.4嵌入式外围接口电路

和设备接口根据外围设备的功能可分为以下5类存储器类型通信接口输入输出设备设备扩展接口电源及辅助设备存储器类型:存储器是嵌入式系统中存储数据和程序的功能部件,目前常见的存储设备按使用的存储器类型分为:

静态易失型存储器(RAM,SRAM);动态存储器(DRAM);

非易失性存储器ROM(ROMEPROM,EEPROM,FLASH);硬盘、软盘、CD-ROM等。通信接口目前存在的所有计算机通信接口在嵌入式领域中都有其广泛的应用,应用最为广泛的接口设备包括

RS-232接口(串口UART)

USB接口(通用串行总线接口)

IrDA(InfraRedDataAssociation-红外线接口)、

SPI(串行外围设备接口)、

I2C、CAN总线接口、蓝牙接口(Bluetooth)

Ethernet(以太网接口)、

IEEE1394接口和通用可编程接口GPIO。输入输出设备

CRT、LCD和触摸屏等,构成了嵌入式系统中重要的信息输入输出设备,应用广泛。触摸屏可以方便的实现鼠标和键盘功能。设备扩展接口

简单的嵌入式系统如具有简单的记事本、备忘录以及日程计划等功能的PDA,它所需要存储的数据量并不需要很大的内存。由于目前的嵌入式系统功能越来越复杂,需要大容量内存,大的内存使得系统成本和体积加大。目前一些高端的嵌入式系统都会预留可扩展存储设备接口,为日后用户有特别需求时,可购买符合扩展接口规格的装置直接接入系统使用。

常用的扩展卡还有各种CF卡、SD卡、MemoryStick等。目前高端的嵌入式系统都留有一定的扩展卡接口。电源及辅助设备嵌人式系统力求外观小型化、重量轻以及电源使用寿命长,例如移动电话或PDA,体积较大或者过重的机型已经被淘汰。目前发展的目标是体积小、易携带和外观设计新颖等。在便携式嵌入式系统的应用中,必须特别关注电源装置等辅助设备。

2.4嵌入式操作系统 嵌入式操作系统是嵌入式应用软件的基础和开发平台.嵌入式系统的出现,解决了嵌入式软件开发标准化的难题.嵌入式系统具有操作系统的最基本的功能:进程调度内存管理设备管理文件管理操作系统接口(API调用)嵌入式操作系统具有的特点:系统可裁减,可配置.系统具备网络支持功能系统具有一定的实时性

2.4.1嵌入式操作系统的分类按照对实时系统的定义,嵌入式系统可分为实时嵌入式系统与非实时嵌入式系统:实时系统的定义:能够对外部事件做出及时响应的系统。响应时间要有保证。对外部事件的响应包括事件发生时要识别出来在给定时间约束内必须输出结果实时操作系统:VxWorks,WinCE,QNX,Nucleus非实时操作系统:嵌入式Linux

2.4.2嵌入式实时操作系统的特点实时系统必须产生正确的结果实时系统的响应必须在预定的周期内完成这两点同样重要实时系统是具有确定性的。在这些实时系统中,响应时间决定事件是有界的。一个确定的实时系统意味着系统的每个部件都必须具有确定的行为,使得整个系统是确定性的。2.5几种主流的嵌入式操作系统Vxworks:美国WindRiver公司于1983年开发,具有可靠、实时、可裁减特性。WindowsEmbedded:支持具有丰富应用程序和服务的32位嵌入式系统。主要系列:WindowsCE3.0,WindowsNTEmbedded4.0和带有ServerApplianceKit的Windows2000PalmOS:Com公司产品,在PDA市场占据很大份额,具有开放的操作系统应用程序接口(API),可让用户灵活方便地定制操作系统。嵌入式Linux:近两年来,Linux在嵌入式领域异军突起,他的独特性,使其作为开发嵌入式产品的操作系统具备巨大的潜力。Linux具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。

2.6嵌入式系统软件的层次结构如当设计一个简单的应用程序时,可以不使用操作系统,但是当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理、控制内存、多任务、周边资源等等。依据系统所提供的程序界面来编写应用程序,可以大大的减少应用程序员的负担。对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含四个层面:设备驱动层、实时操作系统(RTOS)、应用程序接口(API)层、实际应用程序层。有些资料将应用程序接口API归属于OS层,如图1-1的上半部分所示的嵌入式系统的软件结构,是按三层划分的。由于硬件电路的可裁减性和嵌入式系统本身的特点,其软件部分也是可裁减的。对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序。现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。本节主要讲述的具有操作系统的嵌入式软件层次。嵌入式系统软件的层次结构具有操作系统的嵌入式软件层次驱动层程序实时操作系统(RTOS)操作系统的应用程序接口(API)应用程序2.7启动程序BootLoader介绍对于PC机,其开机后的初始化处理器配置、硬件初始化等操作是由BIOS(BasicInput/OutputSystem)完成的,但对于嵌入式系统来说,出于经济性、价格方面考虑一般不配置BIOS,因此我们必须自行编写完成这些工作的程序。这就是所需要的开机程序,在嵌入式中称为BootLoader程序。系统加电复位后,几乎所有的CPU都从由复位地址上取指令。因此在系统加电复位后,处理器将首先执行BootLoader程序。启动程序BootLoader介绍BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。系统启动代码完成基本软硬件环境初始化后,对于有操作系统的情况下,启动操作系统、启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令;对于没有操作系统的系统直接执行应用程序或等待用户命令启动程序BootLoader介绍系统的启动通常有两种方式,一种是可以直接从Flash启动,另一种是可以将压缩的内存映像文件从Flash(为节省Flash资源、提高速度)中复制、解压到RAM,再从RAM启动。当电源打开时,一般的系统会去执行ROM(应用较多的是Flash)里面的启动代码。这些代码是用汇编语言编写的,其主要作用在于初始化CPU和板上的必备硬件如内存、中断控制器等。有时候用户必须根据自己板子的硬件资源情况做适当的调整与修改。

主流bootloader介绍U-bootPPCbootARMbootBlobRedboot

3.嵌入式系统的开发方法嵌入式系统的设计准则嵌入式系统的设计流程嵌入式系统的开发方法嵌入式系统的开发模式嵌入式系统的测试

3.1嵌入式系统的设计准则 嵌入式系统设计不同于桌面系统,它非常受制于功能和具体的应用环境。所以嵌入式系统的设计具有一些特殊的要求。 嵌入式系统的设计要求:并发处理,及时响应接口方便,操作容易稳定可靠,维护简便功耗管理,降低成本功能实用,便于升级

3.2嵌入式系统的设计流程嵌入式系统开发的最大特点就是需要软硬件综合开发。其原因在于:一方面,任何一个嵌入式产品都是软件和硬件的结合体;另一方面,一旦嵌入式产品研发完成,软件就固化在硬件环境中,嵌入式软件是针对相应的嵌入式硬件开发的,是专用的。嵌入式系统的这一特点决定了嵌入式应用开发方法不同于传统的软件工程方法。

3.2.1嵌入式系统的开发流程3.2.2从生命周期看嵌入式系统的设计流程3.3嵌入式系统开发方法设计过程的明确目标是建造一个有用的产品产品功能产品性能制造成本功耗特性上市时间嵌入式产品设计需要一个小组的技术人员协作完成设计过程会受内外因素的影响而变化

3.3.1嵌入式系统分层设计模型

3.3.2嵌入式系统的软硬件并行设计3.4嵌入式系统的开发模式网线串口线宿主机目标机3.4嵌入式系统的开发模式嵌入式系统的软件使用交叉开发平台进行开发。系统软件和应用软件在主机开发平台上开发系统软件和应用软件在嵌入式硬件平台上运行。宿主机(Host)是用来开发嵌入式软件的系统。目标机(Target)是被开发的目的嵌入式系统。交叉编译器(Cross-compiler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。

3.5嵌入式系统的测试测试目的:找到软硬件设计中的错误减少风险节约成本提高性能测试什么:功能调试(黑盒测试)压力测试,边界测试,异常测试错误测试,随机测试,性能测试覆盖测试(白盒测试)语句测试,判定和分支测试,条件覆盖二、知识储备2.2Arm-Linux开发环境搭建

Arm-Linux程序的开发并不像我们以前接触的Windows程序开发那样,关于平台的搭建就繁琐很多,所以在正式进入程序开发之前先对这种开发模式进行简要介绍,让一个即使没有任何Linux开发经验的程序员也能够看懂后面的内容。二、知识储备2.2Arm-Linux开发环境搭建宿主机和目标机由于嵌入式Linux的开发资源有限,不可能在开发板上运行开发和调试工具。通常需要交叉编译调试的方式进行,即“宿主机+目标机(开发板)”的形式。目标机和宿主机一般采用串口连接,亦可同时通过网口连接,如下图所示。二、知识储备嵌入式Linux应用程序调试模型2.2Arm-Linux开发环境搭建二、知识储备2.2Arm-Linux开发环境搭建宿主机是运行Linux的PC。可以是安装了Linux操作系统的本地机,亦可以是Linux服务器(模型假定其IP为0)。宿主机和目标机的处理器通常情况下都不会相同。宿主机需要建立适合于目标机的交叉编译环境。程序在宿主机上编译—连接—定位,得到的可执行文件则在目标机运行。二、知识储备2.2Arm-Linux开发环境搭建开发arm-linux程序至少需要三种系统:

Windows系统

PC-Linux系统

Arm-Linux系统二、知识储备2.2Arm-Linux开发环境搭建

Windows系统主要用来文件传送和一些简单的文本文件编辑。这个系统其实并非必需,只是因为目前PC机上最流行的系统仍然是Windows系统,我们的很多关于PC的文件和数据的操作习惯都是在Windows系统上养成的,已经对其形成了严重的依赖,所以Windows系统扮演着的“辅助开发系统”的角色。二、知识储备2.2Arm-Linux开发环境搭建

PC-Linux系统在此系统上安装arm-Linux交叉编译器后,就可以对代码文本文件进行编译,生成可在arm-Linux系统中运行可执行程序。此系统就是前面所称的“Linux宿主机”,我们对Linux程序的开发工作(包括代码编写、调试和编译生成可执行文件)基本上就是在此系统上进行的。二、知识储备

2.2Arm-Linux开发环境搭建

Arm-Linux系统

Arm-Linux程序运行的平台。此系统的硬件载体是一块小型的嵌入式arm板,我们在Linux宿主机上开发好程序并编译生成arm-linux可执行程序后,将可执行程序文件传送到嵌入式arm板中,然后就可以在arm板上直接运行此程序了。二、知识储备2.2Arm-Linux开发环境搭建三种系统的职能和联系:二、知识储备2.2Arm-Linux开发环境搭建

关于开发语言,因为目前购买的Arm-Linux嵌入式板提供的编译库都是C/C++的,所以一般选择C/C++进行程序设计。

二、知识储备2.2Arm-Linux开发环境搭建

系统平台搭建方式“三系统”的搭建方式,有两种方法:三台分立的单系统机器组合“三机器”组合模式或者一台双系统PC机和一台单系统Arm板机器“两机器”组合模式。“三机器”组合模式。将三个系统分别安装在三台机器上并将三台机器组建局域网。

“两机器”组合模式。在PC机上利用虚拟工作站可以同时运行两个系统,虚拟机上的Linux系统基本可以完成所有的实体PC-Linux机器的所有任务,当然也能够组建局域网。

日前主流为“两机器”组合模式。

二、知识储备“两机器”组合模式图

2.2Arm-Linux开发环境搭建二、知识储备2.2Arm-Linux开发环境搭建虚拟机VmwareWorkstation软件安装双击VMware-workstation-6.5.1-126130.exe安装程序,出现如下图所示安装提示向导:二、知识储备2.2Arm-Linux开发环境搭建接下来按照安装提示根据自己的需求进行设置,点击下一步进行安装,当出现如下提示画面时在SerialNumber中输入SN.txt文本下的序列号,点击Enter完成虚拟机的安装。二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统

二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统单击NewVirtualMachine选项,开始安装Redhat操作系统,由于不是光盘安装,而是安装包,所以在以下界面中选择Installerdisc….选项,如图所示:二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统并点击Browse找到Redhat安装文件,点击Next进行安装。接下来在选择操作系统提示框中选择Linux,如下图所示:二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统下面的安装向导,全部选择默认即可,点击Next,直至出现redhat安装界面,如下图所示:二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统在安装画面下敲击回车,进行安装。在语言选择界面中选择简体中文,如图:二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统在接下来的安装向导中,均选择默认选项即可,直接点击下一步,进行安装,直至出现根口令输入提示,如图:二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统输入密码,此密码为root根用户的登录密码。注意:一定要记住所填的根口令,否则无法登录。接着点击下一步,直至出现如下的安装界面,此时需等待系统的安装。二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统单击虚拟机菜单VM下的Settings选项,出现如下图所示的界面,选择CD/DVD选项,在Browse中选择第二个安装包,并将上面的Connect选项勾上,点击OK进行安装,当出现插入第三张光盘提示时,安装方法同上。二、知识储备2.2Arm-Linux开发环境搭建安装LINUX操作系统在安装进度完成后的提示界面中,选择不创建引导盘,点击下一步,接下来的安装界面,全部选择默认选项即可,等待系统重启,重启后的安装向导根据个人需求配置即可,配置完后,等待登录界面,如下所示:二、知识储备2.2Arm-Linux开发环境搭建安装Vmwaretools工具

Vmwaretools工具的安装是为了实现Windows与Linux之间的文件传输。点击虚拟机的菜单VM下的InstallVM….选项,将第三个文件移到Linux系统下,打开终端,将刚移动的文件进行解压,命令为“tarxzvf文件名”,解压后进入目标文件夹,用命令“./vmware-install.pl”进行Vmware-tools工具的安装,出现提示后,直接回车,选择默认即可。单击菜单VM下Settings后选择Options选项卡下的Sharefolders,右则选择Alwaysenabled,点击add添加共享文件夹,此文件夹即为Windows与Linux共享的文件夹,可根据需要自行设置,此时Windows下共享文件夹下的内容即可在Linux下查看与应用,在Linux下共享文件夹的路径为/mnt/hgfs/共享文件夹

二、知识储备2.2Arm-Linux开发环境搭建安装交叉编译工具具体过程如下:首先,将开发环境文件夹下的交叉编译工具EABI-4.3.3_EmbedSky_20100610.tar.bz2放置Linux下,然后用命令“tarxjvf文件名”对其进行解压。其次,解压后还需设置环境变量,在终端下输入“vi/etc/profile”将打开profile文件,然后在“pathmunge/usr/local/sbin”下面设置交叉编译环境的环境变量,加入“pathmunge/opt/EmbedSky/4.3.3/bin”,退出profile后,还需在终端下输入“sourceprofile”使刚才设置的环境变量生效,至此表示交叉编译环境搭建成功。二、知识储备2.2Arm-Linux开发环境搭建将实验文件下的mooncar文件夹共享到Linux下,进入mooncar文件夹下,运行make,即对运行程序mooncar进行了编译和运行。二、知识储备2.3Linux常用命令Linux系统具有非常丰富的命令,绝大多数命令具有大量的参数,要对这些命令进行详细描述需要大量篇幅,在此,仅对嵌入式开发过程中可能用到的命令进行简单介绍。二、知识储备

2.3Linux常用命令

Linux中的文件类型

Linux中有四种基本文件类型,分别为普通文件、目录文件、符号链接文件和设备文件,此外,还有一些其他类型的文件,如命名管道文件、socket文件等。可用file命令来识别指定文件的类型。普通文件如文本文件、源代码文件、Shell脚本文件、二进制的可执行文件、二进制的数据文件等。在图形界面下,用与文件属性相匹配的图标表示;在终端命令ls中,用“-”表示。目录文件是储存文件名的唯一地方,其中包括所属的文件名、子目录名及其指针。在图形界面下,用文件夹图标表示;在终端命令ls中,用“d”表示。二、知识储备2.3Linux常用命令

Linux中的文件类型符号链接文件是指向某个文件存储位置的指针,也称为软链接文件或者符号链接文件,硬链接文件或者物理链接文件见本书后面的ln命令部分。在图形界面下,文件名以斜体显示;在终端命令ls中,用“l”表示,并且文件名后面以“->”指向所链接的文件。设备文件表示如磁盘、终端、打印机等设备的一类文件,以便用户象操作文件一样来操作设备,这些文件常放在/dev目录内。根据设备与系统内存交换数据的方式将设备分为块设备和字符设备,块设备以数据块为单位与系统内存交换数据,字符设备以单个字节为单位与系统内存交换数据。在图形界面下,分别用不同的图标区分块设备与字符设备;在终端命令ls中,用“b”表示块设备,用“c”表示字符设备。二、知识储备2.3Linux常用命令

Linux文件系统中有一些常用的目录,这些目录中存放指定的内容,如下所示:/etc:包含大多数引导和配置系统所需的系统配置文件,如:host.conf、httpd、fstab等,另外,还有大量的配置文件保存在子目录中,如sshd_config保存在目录/etc/ssh/中,lvm.conf保存在目录/etc/lvm/中。/lib:包含c编译程序所需要的函数库,这些函数库以二进制文件形式存在。/usr:包含其它一些子目录,如src、bin等,其中src子目录中存放Linux的内核源代码,bin子目录中存放已经安装的程序语言的命令,如javac、java、gcc、perl等。

二、知识储备2.3Linux常用命令常用的目录/var:包含一些经常改变的文件,如日志文件。/tmp:存放用户和程序所产生的临时数据文件,系统会定时清除该目录中的内容。/bin:大多数普通用户使用的命令文件存放在此。/home:普通用户主目录默认存放在此,系统管理员增加新用户时,若没有特别指明用户主目录,则系统会在此处自动增加与用户同名的目录作为用户主目录。/dev:包含系统中的设备文件,如fd0、hda等。/mnt:其它文件系统的挂载点。二、知识储备2.3Linux常用命令

在Linux系统中,针对某个文件,将操作该文件的用户分为三类:文件的所有者,用单词user的第一个字母u表示;同组用户,即与文件的所有者具有相同组ID的用户,用单词group的第一个字母g表示;其他用户,即与文件的所有者不同组的用户,用单词other的第一个字母o表示;此外,将上述三类用户合起来称为所有用户,用单词all的第一个字母a表示。

二、知识储备2.3Linux常用命令文件操作权限文件有三种基本的操作权限,分别为:读权限,表示用户可以读取文件的内容,用单词read的第一个字母r表示;写权限,表示用户可以修改文件内容或者删除文件,用单词write的第一个字母w表示;执行权限,表示用户可以执行文件,对于目录文件,表示用户可以进入该目录,用单词execute的第二个字母x表示。二、知识储备2.3Linux常用命令

对文件操作的三类用户和文件的三种操作权限进行组合,形成文件的授权属性,分三组,每组三位,分别用字母表示用户和操作权限;第一组表示文件主的操作权限,第二组表示同组用户的操作权限,第三组表示其他用户的操作权限,无操作权限的位置用符号“-”表示。举例如下:

rwxr-xr--//文件主具有读、写和执行权限;同组用户具有读和执行权限;其他用户仅有读权限。

二、知识储备2.3Linux常用命令

pwd

显示当前工作目录。该命令无参数,直接输入命令pwd回车,会显示当前的工作目录。

cd

进入指定目录。cd命令格式为:cd[路径],其中路径可以为相对路径或者绝对路径。举例如下:cd/home/user//进入/home/user目录。cd///退回到根目录。cd..//退回到上级目录,当前目录为根目录时,该命令执行不会改变当前目录。二、知识储备2.3Linux常用命令

ls

列出指定目录或者当前目录下的文件名。ls是用户最常用的命令之一,因为用户经常需要查看某个目录下有哪些文件。

ls命令格式为:ls[选项][文件名列表],其中选项是对ls命令要执行功能的进一步说明,文件表示要显示的文件名。选项

-l:每行显示一个文件的详细信息,称为以长格式显示,该选项最常用。若不加该参数,ls将在一行中显示多个文件名,并以不同颜色来标记不同类型的文件。该参数所显示的文件信息依次是文件类型、授权属性、链接数、文件属主、文件属组、文件大小、文件建立或最后修改时间、文件名。对于符号链接文件,显示的文件名之后有“->”和指向的文件名;对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。二、知识储备2.3Linux常用命令

ls

用ls-l命令显示的文件信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一:

-:普通文件

d:目录文件

l:符号链接文件

b:块设备文件

c:字符设备文件

p:命名管道文件

s:socket文件二、知识储备

2.3Linux常用命令

cp命令的功能是将给出的文件或目录拷贝到指定的文件或目录中,cp命令的格式为:cp[选项]源文件目标文件,其中选项是对cp命令要执行功能的进一步说明,源文件表示要复制的文件,目标文件表示源文件将被复制的目的目录名或者目的文件名。

选项

-a:该选项通常在拷贝目录时使用,它保留链接、文件属性,并递归地拷贝子目录中的内容,其作用等于dpr选项的组合。

-d:拷贝时保留链接。

-p:除复制源文件的内容外,还将把其最后修改时间和访问权限也复制到目标文件中。

-r:若源文件是目录文件,cp将递归复制该目录下所有的子目录和文件,目标文件名必须为一个目录文件名。

-l:不作拷贝,只是链接文件。二、知识储备2.3Linux常用命令

mvmv命令能够将指定文件或目录改名或将指定文件或目录进行移动。选项

-i:交互方式操作,如果mv操作将导致对已存在目标文件的覆盖,则系统要求用户回答“y”进行文件覆盖或“n”放弃覆盖。

-f:禁止交互操作,在mv操作要覆盖已有的目标文件时不给任何提示而直接覆盖目标文件。

-u:只有在源文件比目标文件新,或者目标文件不存在时,才执行移动功能。

二、知识储备2.3Linux常用命令

rm命令可以一次删除一个或多个文件或目录,对于链接文件,只是删除链接,原有文件保持不变。

rm命令的格式为:rm[选项]文件,其中选项是对rm命令要执行功能的进一步说明,使用举例

rm/home/user/test//删除目录/home/user/下的文件testrm–r/var/tmp///以递归形式删除目录/var/tmp/及其包含的文件和子目录。

二、知识储备2.3Linux常用命令

cat显示文本文件的内容。该命令后可以跟多个文本文件名,将依次显示每个文件的内容。cat命令的格式为:cat[选项]文件,其中选项是对cat命令要执行功能的进一步说明,文件表示要显示内容的文件名。使用举例cat1.txt//在屏幕上显示1.txt文件的内容。

cat1.txt2.txt//依次显示1.txt和2.txt文件的内容。

二、知识储备2.3Linux常用命令

chmodchmod命令用于改变文件的访问许可权限。在chmod命令中,用户和访问许可权限既可以用字母表示,也可以用数字表示。选项

-R:表示许可权限的设置对指定目录及其子目录下的所有文件和目录都有效。

-v:显示命令执行的信息使用举例

chmod–va+x/home/user/test//给所有用户追加文件/home/user/test的执行权限,同时显示命令执行的信息。

chmod–v+s-t/home/user/test//给文件/home/user/test设置SUID和SGID位,去掉粘附位,同时显示命令执行的信息。

2.3Linux常用命令

tar是文件和目录的备份命令,能够将指定的文件和目录打包成一个归档文件即备份文件。tar命令的格式为:tar主选项[辅选项]文件名,其中,主选项是必须的,辅选项可选。

tar-cvfetc.tar/etc//将目录/etc下的所有文件和子目录备份打包到当前目录下的文件etc.tar中,并显示打包过程。

tar-xZvfetc.tar.z//解压缩并还原归档文件etc.tar.z中的文件和目录。二、知识储备二、知识储备2.3Linux常用命令

mount命令的功能是挂载其它文件系统到当前文件系统中,被挂载的文件系统必须是当前Linux系统所能识别的系统。mount命令的格式为:mount[选项][挂载点],其中选项是对mount命令要执行功能的进一步说明,挂载点表示被挂载的文件系统的根目录在当前文件系统中的位置。选项

-a:挂载/etc/fstab文件中所列的全部文件系统。

-t:指定所要挂载的文件系统名称,系统所支持的文件系统信息在/proc/filesystems文件中保存。

-o:后跟指定选项,如nolock、iocharset等,选项之间用逗号分隔。

mount//查看当前所挂载的文件系统信息。

mount–ttest/dev/hda2/mnt/test二、知识储备2.3Linux常用命令

lsmodLinux系统为了保证能方便地支持新设备、新功能,而又不会无限扩大内核规模,对设备驱动和文件系统部分采用了可动态加载的模块化设计方式,用户在需要时可以动态加载这些模块,使用完毕后可以动态卸载这些暂时不用的模块,以减少内核对系统内存的占用。

二、知识储备2.3Linux常用命令

insmodinsmod命令能够将一个可动态加载的内核模块加载到内核中。通常情况下,系统内核模块的文件后缀为“.ko”,而扩展内核模块的文件后缀为“.o”,系统内核模块位于目录“/lib/modules/2.6.18-8.10WS”的各个子目录中,扩展模块位于用户指定的目录中。该命令只能由root用户执行。

insmod命令的格式为:insmod模块文件名,举例如下:

insmod/lib/modules/cat/cat.ko

二、知识储备

2.3Linux常用命令

rmmodrmmod命令能够将内核中未被使用的模块进行卸载,正在使用的模块不能被卸载,该命令只能由root用户执行。使用举例

rmmod–Vrmmod–vfatrmmod–wvfloppy.ko二、知识储备

2.4vi编辑器

vi是Linux系统中的全屏幕文本编辑器,是最常用的文本编辑工具软件之一。vi是字符界面下最常用的编辑工具,其功能强大,占用资源少,但不支持鼠标操作。现在出现了图形界面下的vi,称为VIM,启动菜单选项为“开始→应用程序→实用工具→VIM编辑器”,支持鼠标操作,有类似其他软件的菜单和快捷按钮。字符界面下vi的操作规则可以用在图形界面下的VIM中,本书主要介绍字符界面的vi。

vi有命令行状态和文本编辑两种状态,vi的命令行状态的命令丰富,功能强大,在命令行状态下按Insert键或者输入i、I、a等字符进入编辑状态,在编辑状态按Esc键可以回到命令行状态。二、知识储备

2.4vi编辑器

vi编辑器使用命令vi启动,启动方式有多种,如下所示:

vifilename//打开或新建文件filename,并将光标置于第一行的行首。

vi+nfilename//打开文件filename,并将光标置于第n行行首。

vi+filename//打开文件filename,并将光标置于最后一行行首。

二、知识储备2.4vi编辑器移动光标类命令h:光标左移一个字符。l:光标右移一个字符。Space键:光标右移一个字符。Backspace键:光标左移一个字符。k或Ctrl+p:光标上移一行。j或Ctrl+n:光标下移一行。Enter键:光标下移一行。w或W:光标右移一个字至下个字的字首。b或B:光标左移一个字至上个字的字首。二、知识储备

2.4vi编辑器移动光标类命令nG:光标移至第n行行首。n+:光标下移n行。n-:光标上移n行。n$:光标移至第n行行尾。H:光标移至屏幕顶行。M:光标移至屏幕中间行。L:光标移至屏幕最后行。0:光标移至当前行行首。$:光标移至当前行行尾。二、知识储备

2.4vi编辑器

屏幕类命令

Ctrl+u:屏幕向上滚动半屏,同时光标向上移动到相应行。

Ctrl+d:屏幕向下滚动半屏,同时光标向下移动到相应行。

Ctrl+b:屏幕向上滚动一屏,同时光标向上移动到相应行。

Ctrl+f:屏幕向下滚动一屏,同时光标向下移动到相应行。

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。2.4vi编辑器插入文本类命令

i:由命令行状态进入编辑状态,输入的内容插入到光标前。

I:由命令行状态进入编辑状态,输入的内容插入到当前行行首。

a:由命令行状态进入编辑状态,输入的内容插入到光标后。

A:由命令行状态进入编辑状态,输入的内容插入到当前行尾。

o:由命令行状态进入编辑状态,在当前行之下新插入一行。

O:由命令行状态进入编辑状态,在当前行之上新插入一行。

r:不进入编辑状态而用输入的字符替换当前字符。二、知识储备

二、知识储备2.4vi编辑器删除命令

ndw或ndW:不进入编辑状态,删除光标处开始及其后的n-1个字。

d0:不进入编辑状态,删除当前光标处至当前行首的字符。

d$:不进入编辑状态,删除当前光标处至当前行尾的字符。

ndd:不进入编辑状态,删除当前行及其后的n-1行。

x:不进入编辑状态,删除光标后的字符。

X:不进入编辑状态,删除光标前的字符。

二、知识储备2.4vi编辑器搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern,并对搜索到的pattern加上标记。

?pattern:从光标开始处向文件首搜索pattern,并对搜索到的pattern加上标记。

n:同一方向重复上一次搜索命令。

N:反方向重复上一次搜索命令。:s/p1/p2/g:将当前行中所有p1均用p2代替。:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2代替。:g/p1/s//p2/g:将文件中所有p1均用p2替换。

二、知识储备

2.4vi编辑器存盘与退出命令:w:当前文件存盘。:efilename:打开文件filename进行编辑。:x:保存当前文件并退出。:q:退出vi。:q!:不保存文件内容并退出vi。

二、知识储备

2.4vi编辑器编辑状态

vi编辑器从命令行状态进入到编辑状态后就可以全屏幕的方式对文本内容进行编辑,编辑过程中可以通过键盘的“Insert”键在“插入”和“替换”状态之间切换,可以使用键盘的4个方向键及其“Home”、“End”、“PageUp”、“PageDown”等键移动光标,可以使用退格键和删除键对文本内容进行删除。编辑完成后按键盘的“Esc”键回到命令行状态执行命令“:wq”存盘退出,或者“:q!”不存盘退出。二、知识储备2.5内核移植与烧写包括:Arm-Linux操作系统制作步骤Arm-Linux操作系统烧写步骤二、知识储备2.5内核移植与烧写Arm-Linux操作系统制作步骤在一个最基本的Linux操作系统应该包括:引导程序、Linux内核与文件系统三部分,其中引导程序(Bootloader)是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用Linux内核。Linux内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统。根文件系统是Linux系统的核心组成部分,它可以做为Linux系统中文件和数据的存储区域,通常它还包括系统配置文件和运行应用软件所需要的库。二、知识储备2.5内核移植与烧写Arm-Linux操作系统制作步骤制作步骤:建立交叉编译环境编译uboot及生成相应文件(利用已有的)编译linux内核及生成相应文件制作根文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论