嵌入式linux开发基于arm无线通讯实验at_第1页
嵌入式linux开发基于arm无线通讯实验at_第2页
嵌入式linux开发基于arm无线通讯实验at_第3页
嵌入式linux开发基于arm无线通讯实验at_第4页
嵌入式linux开发基于arm无线通讯实验at_第5页
已阅读5页,还剩146页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录第一章开发预备知识71.1 系统和开发71.1.1 系统的定义71.1.2 系统的发展71.1.3 系统的技术特点81.2 AT91RM9200 和Linux操.101.2.1 AT91RM9200 处理器101.2.2 Linux操 .101.3 Linux常见术语和常用命令121.3.1 Linux常见术语121.3.2 Linux常用命令131.4 gcc编译器和Makefile221.4.1 gcc编译器221.4.2 Makefile261.5 实验板硬件系统分析291.6 SemitARM9200 实验箱简介30第二章 系统开发环境实验332.1 引言332.2 基本原理33

2、2.2.1 宿主机开发环境332.2.2 文件与目录结构372.2.3 Linux系统的配置编译和文件系统392.2.4 Linux系统在地址空间中的位置402.2.5 中断412.2.6 GPIO432.2.7 总线432.2.8 在实验板上开发应用程序432.2.9 如何创建编译 的应用452.2.10 加入应用程序的ramdisk文件系统映像制作462.3 实验与环境472.4 实验内容和步骤472.5 预习要求512.6 实验报告要求512.7 思考题51第三章 LINUX内核编译、及运行实验.523.1 引言523.2 基本原理523.2.1 Linux系统的烧写523.2.2 内核

3、至RAM中直接启动553.3 实验与环境563.4 实验内容与步骤563.5 预习要求593.6 实验报告要求593.7 思考题60第四章 UART数据收发实验614.1 引言614.2 实验原理611524.2.1 串口通信协议614.2.2 串口的基本任务614.2.3 串口电路的组成614.2.4 有关串行通信的物理标准624.3 实验 与 环境624.4 实验内容与步骤624.5 预习要求644.6 实验报告要求644.7 实验思考题64第五章 U盘挂载及读写实验655.1 引言655.2 基本原理655.2.1 USB 的逻辑结构655.2.2 USB通信协议655.3 实验 与 环

4、境665.4 实验内容与步骤665.5 预习要求675.6 实验报告要求675.7 实验思考题68第六章GPIO驱动实验696.1 引言696.2 基本原理696.2.1 GPIO696.2.2 GPIO的优点696.2.3 SemitARM9200 开发板上的GPIO口 .696.3 实验与环境696.4 实验内容与步骤696.5 预习要求716.6 实验报告要求716.7 实验思考题71第七章实时时钟实验727.1 引言727.2 基本原理727.2.1 实时时钟的功能727.2.2 计算机内部时钟的运行机制727.3 实验 与环境727.4 实验内容727.5 预习要求747.6 实验报

5、告要求747.7 实验思考题74第八章 TCP/UDP实验758.1 引言758.2 实验原理758.2.1 TCP/IP协议概述758.2.2 网络通信原理768.2.3 TCP协议768.2.4 UDP协议778.2.5 端分配788.3 实验与环境798.4 实验内容与步骤798.5 预习要求848.6 实验报告要求848.7 实验思考题84第九章 蓝牙无线通信系统实验859.1 引言859.2 基本原理859.2.1 什么是蓝牙859.2.2 蓝牙的起源859.2.3 蓝牙通讯技术的特点869.2.4 蓝牙的发展869.3 实验与 环境869.4 实验内容与步骤869.5 预习要求89

6、9.6 实验报告要求909.7 实验思考题90第十章 GSM/GPRS无线通信系统实验9110.1 引言9110.2 基本原理9110.2.1 GSM的涵义9110.2.2 GSM的发展状况91与 环境9210.4 实验内容与步骤9310.5 预习要求9710.6 实验报告要求9710.7 实验思考题97第十一章 IEEE802.11B/G无线通信系统实验9911.1 引言9911.2 基本原理9911.2.1 802.11.9911.2.2 802.11g10111.3 实验与环境10111.4 实验内容与步骤10111.5 预习要求10411.6 实验报告要求10411.7 实验思考题10

7、4第十二章 ZIGBEE无线通信系统实验10512.1 引言10512.2 基本原理10512.2.1 什么是Zigbee10512.2.2 Zigbee的起源10512.2.3 Zigbee自身的技术优势10512.2.4 Zigbee联盟10612.3 实验与环境10612.4 实验内容与步骤10612.5 预习要求10812.6 实验报告要求10812.7 实验思考题108第十三章 CDMA2000 1X无线通信系统实验10913.1 引言10913.2 基本原理10913.2.1 CDMA200010913.3 实验 与 环境11013.4 实验内容与步骤11013.5 预习要求115

8、13.6 实验报告要求11513.7 实验思考题116第十四章 GPS无线实验11714.1 引言11714.2 基本原理11714.2.1 GPS概述11714.2.2 GPS的前身11714.2.3 GPS. 11814.2.4 GPS原理11814.2.5 GPS数据格式11914.3 实验与环境12114.4 实验内容与步骤12114.5 预习要求12214.6 实验报告要求12214.7 实验思考题123第十五章 蓝牙网 统综合开发案例12415.1 引言12415.2 实验流程12415.3 实验 与 环境12515.4 实验内容与步骤12515.5 预习要求12715.6 实验报

9、告要求12715.7 实验思考题127第十六章 WSN与广域网融合系统综合开发案例12816.1 引言12816.2 实验流程12816.3 基本原理12916.3.1 WSN12916.3.2 广域网12916.4 实验与环境12916.5 实验内容与步骤12916.6 预习要求13216.7 实验报告要求13216.8 思考题132第十七章 无线传输系统综合开发案例13417.1 引言13417.2 实验流程134与 环境13517.4 实验内容与步骤13517.5 预习要求13917.6 实验报告要求13917.7 实验思考题139第十八章 基于多网融合的综合接入系统开发案例 14118

10、.1 引言14118.2 实验流程14118.3 基本原理14218.3.1 多网融合的涵义14218.4 实验 与 环境14218.5 实验内容与步骤14318.6 预习要求15118.7 实验报告要求15118.8 思考题151第十九章 其他可开发案例152第一章 开发预备知识1.1 系统和开发1.1.1 系统的定义在当前数字 和网络技术高速发展的后 PC(Post-PC) , 系统已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业艺术以及人们的日常生活等 中。随着国内外各种的进一步开发和推广,技术越来越和人们的生活紧密结合。在 PC ,可能有人从来没有接触过计算机;但是在后 P

11、C ,他就不可能会接触不到 系统,因为 系统可能 于生活的方方面面中,从家里的洗衣机、电冰箱,到作为交通工具的自行车、小汽车,到办公室里的 会议系统等等,都属于可以使用 技术开发和改造的 。何谓 系统,系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的计算机系统。系统应用的领域无处不在,现在市场上的,PDA,MP3 器等消费都是系统 系统还有应用于很多领域如电信网络 路由器, 交换机,网关),工业医疗()等。在未来的里面,使用系统的情形会越来越多,人可以不接触电脑,但是不接触系统的情况是不 的。系统可能 于您生活的各个角落:您

12、家里可能就是通过一个 系统的中心,管理您家里的所有家电,家庭和外界网络的连接,的生活更为方便;您出门旅行的时候,在饭店的门把手里面安装有电子识别 系统,利用系统根据您手上的特征,时候应该给您开门;在坐车的时候,汽车电脑可以通过 GPS(全球)来的具置,利用嵌入式智能系统应该走哪条路比较方便;如果您一不生病住院,在医院的仪器里面都可能有 系统,用来选择和仪器,提高您手术的率和方便程度。1.1.2 系统的发展实际上 系统这个概念很早以前就已经 了。在通讯方面, 系统在1960 年就被用于对机械交换的,当时被称为“式程序系统”(Stored Program Control)。那个时候,计算机一词却还

13、不是很普遍,而式程序主要是指用于 程序及日常讯息的内存部分。这些逻辑数据,而不是将其写入硬盘,这个概念的确具有 性的意义。这个时候还没有出现操 的概念,对每一个应用要提供一整个计算机的设计。后来微处理器的出现,它用来提供一个计算引擎。利用微处理器,组成了一个基于由总线连接起来的计算机硬件体系结构,并且提供了一个通用功能的编程模型,从而简化了编程。系统的概念是在 1970 年左右出现的。不过在当时,大部分都是由汇编语言完成的,而且这些汇编程序只能用于某一种固定的微处理器。当这种微处理器过时之后, 这种 系统就没有用了;并且还要开始对新的微处理器写新的 系统。这个时候的 系统很多都不是操 ,他们只

14、是为了实现某个 功能,使用一个简单的循环 对外界的 请求进行处理。不可否认,这对一些简单的系统而言是足够的。但是当我们的系统越来越复杂,利用的范围越来越广泛的时候,没有操作系统就成为了一个最大的缺点了,因为需要添加一项新功能都可能需要从头开始设计, 否则只能增加开发成本和系统复杂度。C 语言的出现使得我们的操开发变得越来越简单。我们可以利用 C 语言很快的写出一个小型的、的操 。众所知之,C 语言的作者 Dennis M. Ritchie 和Brian W. Kernighan 利用它写出了著名的 UNIX 操,直接影响了这三十年计算机业的发展。同时,对开发 系统来说,在效率和速度上都提高了很

15、多。从上世纪八十年始,开始出现各种各样的商业用操 ,这些操作系统大部分都是为专有系统而开发,从而形成了现在多种形式的操 百家的局面。如 VxWorks,pSOS,Neculeus 和 Windows CE 等等。现在,网络在人们生活中的应用越来越广泛,自然,在系统中使用网络系统也成为了一项基本的要求。把网络协议栈实现在系统中,对日常生活中的需要极有意义。利用系统中的网络功能,可以实现下面我将要描述的电器这一即将取代 PC 在后 PC 占据市场主体的商品。我们知道,如果在上面所说的那种采用循环 的系统中加入网络协议栈,复杂度会呈指数级增长。这种情况下,在 操 中增加网络协议模块要方便得多,并且还

16、能方便各种网络应用程序的不同平台移植。我们知道,如果在上面所说的那种采用循环 的系统中加入网络协议栈, 复杂度会呈指数级增长。这种情况下,在操 中增加网络协议模块要方便得多,并且还能方便各种网络应用程序的不同平台移植。1.1.3 系统的技术特点系统通常的基本运行环境的硬件和操 两部分 系统的运行环境和应用场合决定了系统具有区别于其它操的一些特点。(1) 处理器处理器可以分为三类: 微处理器、 微器、 DSP(Digital Signal Processor)。微处理器就是和通用计算机的微处理器对应的 CPU。在应用中,是将微处理器装配在专门设计的电路板上,在母板上只保留和相关的功能即可,这样可

17、以满足系统体积小和功耗低的要求。目前的处理器主要 :PowerPC、Motorola 68000、ARM 系列等等。微器又称为单片机, 它将 CPU、器(少量的 RAM、ROM 或两者都有)和其它外设封装在同一片集成电路里。常见的有 8051。 DSP 专门用来对离散时间信号进行极快的处理计算,提高编译效率和执行速度。在数字滤波、FFT、谱分析、图像处理的分析等领域,DSP 正在大量进入 市场。(2) 微内核结构大多数操至少被划分为内核层和应用层两个层次。内核只提供基本的功能, 如建立和管理进程、提供文件系统、管理等,这些功能以系统调用方式提供给用户。一些桌面操 ,如 Windows、Linu

18、x 等,将许多功能引入内核,操的内核变得越来越大。内核变大使得占用的资源增多,剪裁起来很麻烦。大多数操 采用了微内核结构,内核只提供基本的功能,比如:任务的调度、任务之间的通信与同步、内存管理、时钟。其它的应用组件,比如网络功能、文件系统、GUI 系统等均工作在用户态,以系统进函数调用的方式工作。因而系统都是可裁减的,用户可以根据的需要选用相应的组件。(3) 任务调度系统为多任务多进程的操 。多任务运行的实现实际是靠 CPU 在多个任务之间切换、调度。每个任务都有其优先级,不同的任务优先级可能相同也可能不同。任务的调度有三种方式:可抢占式调度、不可抢占式调度和时间片轮转调度。不可抢占式调度是指

19、,一个任务一旦获得 CPU 就独占 CPU 运行,除非由于某种,它决定放弃 CPU 的使用权;可抢占式调度是基于任务优先级的,当前正在运行的任务可以随时让位给优先级更高的处于就绪态的其它任务;当两个或两个以上任务有同样的优先级, 不同任务轮转地使用 CPU,直到系统分配的 CPU 时间片用完,这就是时间片轮转调度。目前,大多数操对不同优先级的任务采用基于优先级的抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。(4) 硬实 软实时有些 系统对时间的要求较高,称之为实时系统。有两种类型的实时系统:硬实时系统和软实时系统。软实时系统并不要求限定某一任务必须在一定的时间内完成, 只要求各任务运

20、行得越快越好;硬实时系统对系统响应时间有严格要求,一旦系统响应时间不能满足,就可能会引起系统 或致命的错误, 在工业 中应用较多。(5) 内存管理有内存管理单元(MMU)的处理器设计的一些桌面操 ,如 Windows、Linux,使用了虚拟器的概念。虚拟内存地址被送到 MMU。在这里,虚拟地址被映射为物理地址,实际器被分割为相同大小的页面,采用分页的方式载入进程。一个程序在运行之前,没有必要全部装入内存,而是仅将那些当前要运行的部分页面装入内存运行。大多数 系统没有 MMU 的处理器设计,不能使用处理器的虚拟内存管理技术,采用的是实器管理策略。因而对于内存的是直接的,它对地址的不需要经过 MM

21、U,而是直接送到地址线上输出,所有的地址都是实际的物理地址;而且,大多数操 对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须为它分配足够的连续地址空间,然后全部载入主 器的连续空间。由此可见,对于没有 MMU 系统的开发 不得不参与系统的内存管理。从编译内核开始,开发必须告诉系统这块开发板到底拥有多少内开发应用程序时,必须考虑内存的分配情况并关注应用程序需要运行空间的大小。另外,由于采用实 器管理策略,用户程序同内核以及其它用户程序在一个地址空间,程序开发时要保证不其它程序的地址空间,以使得程序不至于破坏系统的正常工作,或导致其它程序的运行异常;因而,系统的开发对

22、 中的一些内存操作要格外。(6) 内核加载方式操内核可以在 Flash 上直接运行,也可以加载到内存中运行。Flash 的运行方式,是把内核的可执行映像烧写到 Flash 上,系统启动时从 Flash 的某个地址开始执行。这种实际上是很多系统所采用的 。内核加载方式是把内核的压缩文件存放在 Flash 上,系统启动时压缩文件在内存里解压,然后开始执行。这种方式相对复杂一些,但是运行速度可能更快,因为 RAM 的存取速率要比 Flash 高。,由于 系统的内存管理机制 操对用户程序通常采用静态链接的形式。在系统中,应用程序和操内核代码编译、链接生成一个二进制影像文件来运行。1.2 AT91RM9

23、200 和Linux操1.2.1 AT91RM9200 处理器SemitARM9200 开发板由 板和底板组成, 板上集成了 Atmel 的AT91RM9200 处理器,64M SDRAM 以及 16M 的 FLASH,为您的应用研发提供了足够的空间。底板上则提供以下外设接口:两个 RS-232 串口(COM),一个 USB Host 接口,两个 USB Device,一个 10M/100M 自适应以太网接口,一个 LCD 接口。板和底板配合即 一个最小的完整应用系统。系统具有体积小、耗电低、处理能力强、等特点,能够装载和运行 Linux 操。用户可以在这个系统平台上进行 软件开发。AT91R

24、M9200 具有丰富的接口资源:l 16-KB 数据Cache,16-KB 指令 Cache,写缓冲区;l 虚拟内存管理单元 NMU;l 带有 Debug 调试的在片 Emulator;l Mid-level Implementation Embedded Trace Macrocell;l 16KB 的内部 SRAM 和 128KB 的内部 ROM;l 外部总线接口(EBI);l 支持 SDRAM,SRAM,Burst Flash,和 CompactFlash,SmartMedia and NAND Flash 的无缝连接;l 增强型的时钟产生器和电源管理单元;l 带有两个 PLL 的两个在

25、片振荡器;l 慢速的时钟操作模式和电源优化能力;l 4 个可编程的外部时钟信号;l周期性中断看门狗和第二计数器的系统定时器;l 带有中断的实时时钟;l 带有 8 个优先级可单个中断源Spurious 中断保护的先进中断器;l 7 个外部中断源和一个快速中断源;l 四个 32 位的 PIO 器可以达到 122 个可编程 I/O 引脚(每个都有输入可中断及开路的输出能力);l 20 通道的外部数据器(DMA);l 10/100M 的以太网接口;l 两个全速的 USB2.0 主接口和一个从口;l 四个 USART;l 3 通道 16 位的定时/计数器(TC);l 两线接口(TWI);l IEEE 1

26、149.1 JTAG 标准扫描接口;1.2.2 Linux操 随着微处理器的产生,价格低廉、结构小巧的 CPU 和外设连接提供了可靠的硬件架构,那么限制系统发展的瓶颈就突出表现在了方面。尽管从八十年代末开始,陆续出现了一些操,比较著名的有 Vxwork、pSOS、Neculeus 和Windows CE。但这些操 都是商业化 ,其高昂的价格使许多做低端的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。另外,结合国内实情,当前对 操 的大力支持,也为源代码开放的 Linux 的推广提供了广阔的发展前景。还有,对上层应用开发者而言,系统需要的是一套高度简练、界面友善、质量可靠、应用广

27、泛、易开发、 多任务,并且价格低廉的操。在的将来,从冰箱到收音机都会有内置处理器。因为 Linux 的开放性,许多人认为 Linux 非常适合多数 Internet 。他们认为 Linux 可以支持不同的,支持不同的配置。Linux 对厂商不偏不倚而且成本极地,能够很快成为用于各种的操。如今,业界已经达成共识:即 Linux 是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。操 主要有 Palm OS,Windows CE,EPOC,LinuxCE,QNX,ECOS,LYNX,高端 系统要求许多高级的功能,如图形用户界面和网络支持。很多高端 RTOS 供应商已经提供

28、了这些功能,但其价格也很高端, 人难以接受。微软的 Windows CE 也有此类似功能,却不具备大多数系统要求的实时性能,而且难以移植,也曾有人想以 DOS 为基础用单独的第工具拼成一个系统,但这种努力将是白费。现在需要的是一个便宜、成熟并且提供高端 系统所必须特性的操 , Linux 操以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,所以,众多商家纷纷转向了 Linux。Linux 为操 提供了一个极有吸引力的选择,它是个和 UNIX 相似、以 为基础的、完全内存保护、多任务多进程的操。Linux 支持广泛的计算机硬件, MOTOROLA,X86,Alpha,MIPS,PP

29、C,ARM,NEC 等现有的大部分。,源码全部公开,任何人可以修改并在 GNU 通用公共证(GNU General Public License)下 ,所以开发 可以对操 进行定制,再也不必担心象 Microsoft Windows 操中“后门”的威胁。同时由于有 GPL 的,大家开发的东西大都相互兼容 之路。Linux 用户遇到问题时可以通过 Internet 向网上成千上万的 Linux 开发者请教,这使最的问题也有办法解决。Linux 带有 UNIX 用户熟悉的完善的开发工具,几乎所有的 UNIX 系统的应用都已经移植到了 Linux 上。Linux 还提供了强大的网络功能,有多种可选择

30、窗口管理器(X windows)。其强大的语言编译器 gcc、g+等也可以很容易得到。不但成熟完善、而且使用方便。系统选择 Linux 作为操,主要有以下几个:(1) Linux 可应用于多种硬件平台。目前 Linux 已经被移植到 PPC、ARM、MIPS 等多种硬件平台,这对受开销、时间限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发然后移植到具体的硬件上,加快了 与硬件的开发过程。(2) Linux 可以随意地配置不需要任何的证或商家的合作 。唯一的限制是开发者必须做出对 Linux 社区有益的改动。(3) Linux 是的,源代码可以得到。这使最吸引人的。,这会节省大量的开

31、发费用。(4) Linux 的微内核直接提供网络支持,而不必象其他操要 TCP/IP 协议包。(5) Linux 的高度模块化使添加部件非常容易。(6) Linux 在台式机上的,也保证了 Linux 在系统中的辉煌前景。(7) Linux 与 UNIX 系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于 系统领域。(8) Linux 是一个 开放的世界,在 Linux(无论 PC 还是系统)上进行开发都可以在广袤的网络资源中获取帮助。1.3 Linux常见术语和常用命令1.3.1 Linux常见术语LinuxLinux 是一种 UNIX

32、操的克隆,它(的内核)由 Linus Torvalds 以及网络上组织松散的 队伍一起从零开始编写而成。 Linux 的目标是保持和 POSIX 的兼容。Linux 具备现代一切功能完整的 UNIX 系统所具备的全部特征,其中真正的多任务、虚拟内存、共享库、需求装载、共享的写时程序执行、优秀的内存管理以及 TCP/IP 网络支持等。Linux 的遵守 GNU 的通用公共证。Linux 起初为基于 386/486 的 PC 机开发,但现在,Linux 也可以运行在 DEC Alpha、S arc、M68000,以及 MIPS 和 PowerPC 等计算机上。POSIXPOSIX 表示可移植操接口

33、(Portable Operating System Interface ,缩写为POSIX 是为了读音更像 UNIX)。电气和工程师(Institute of Electrical and Electronics Engineers,IEEE)最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。 ,POSIX 并不局限于 UNIX。许多其它的操,例如 DEC OpenVMS 和 Microsoft Windows NT ,都支持 POSIX 标准,尤其是 IEEE Std. 1003.1-1990(1995 年修订)或 POSIX.1,POSIX.1 提供了源代码级别

34、的 C 语言应用编程接口(API)给操 的服务程序,例如读写文件。POSIX.1 已经被国际标准化组织(International Standards Organization,ISO)所接受,被命名为 ISO/IEC 9945-1:1990 标准。POSIX 现在已经发展成为一个非常庞大的标准族,某些部分正处在开发过程中。POSIX 与 IEEE 1003 和 2003 的标准是可互换的。GNUGNU 是 GNU Is Not UNIX 的递归缩写,是的一个项目,该项目的目标是开发一个 的 UNIX 版本,这一 UNIX 版本称为 HURD。尽管 HURD 尚未完成,但 GNU 项目已经开发

35、了许多高质量的编程工具, emacs 编辑器、著名的GNU C 和 C+ 编译器(gcc 和 g+),这些编译器可以在任何计算机系统上运行。所有的 GNU 派生工作均适用 GNU 通用公共证,即 GPL。GPL 作者拥有,但授予其他任何人以合法、 和修改的权利。Linux 的开发使用了许多 GNU 工具。Linux 系统上用于实现 POSIX.2 标准的工具几乎都是 GNU 项目开发的,Linux 内核、GNU 工具以及其他一些组成了人们常说的 Linux:符合 POSIX 标准的操 Shell 和工具。C 语言编译器和其他开发工具及函数库。X Window 窗口系统。各种应用 , 字处理 、

36、图象处理 等。其他各种 Internet , FTP 服务器、WWW 服务器等。 数据库 。GPLGPL (General Public License)GPL 的文本保 Linux 系统的不同目录下名为 COPYING 的文件里。例如,输入 cd /usr/doc/ghostscript* 然后再输入 more COPYING 可查看 GPL 的内容。GPL 和是否 无关,它主要目标是保证 对所有的用户来说是 的。GPL 通过如下途径实现这一目标:它要求 以源代码的形式发布,并规定任何用户能够以源代码的形式将或发布给别的用户。它提醒每个用户,对于该 不提供 的担保。如果用户的 使用了受 GP

37、L 保护的任何的一部分,那么该 就继承了GPL ,并因此而成为 GPL ,也就是说必须随应用程序一起发布源代码。GPL 并不排斥对进行商业性质的包装和 ,也不限制在的基础上打包其他非。遵照 GPL 的并不是可以任意传播的,这些通常都有正式的 ,GPL 在发布 或者时限制条件。但是,从用户的角度考虑,这些根本不能算是限制条件,相反用户只会从中受益,因为用户可以确保获得源代码。尽管 Linux 内核也属于 GPL 范畴,但 GPL 并不适用于通过系统调用而使用内核服务的应用程序,通常把这种应用程序看作是内核的正常使用。 Linux 采用 RPM 的保管理方式, 的安装、卸载和升级非常方便, 并提供

38、了大量的图形化管理工具,是初学者的最佳选择。Mandrake、Slackware、Debian GNU/Linux 是由 GNU 的 Linux 版本,最符合GNU 精神。提供了最大的灵活性,适合 Linux 的高级用户。1.3.2 Linux常用命令以下均以 Linux 为例说明 Linux 操的常用命令。基本命令:ls:显示当前目录下的所有文件和目录。ls a :可以看到隐藏的文件,如以.开头的文件。pwd:显示当前目录路径。ps:列举当前 TTY 下所有进程ps A:列举所有cd 目录名:进入目录mkdir 目录名:创建目录rmdir 目录名:删除空目录rm rf 目录名:强行删除整个目

39、录内容(无法恢复),其中 f 表示强制不进行提示,r 表示目录递归。Linux 下的文件和目录是区分大小写的。TAB 文件目录匹配搜索的使用:例如 SEMIT 安装的目录为:/SEMIT,假设/目录下没有其它以 SE 字符开头的其它目录和文件,则要进入这个目录,只需敲入:cd /SE然后按下 TAB 键,则 SHELL 会自动匹配找到 SEMIT 目录,这样就不必完全输入剩余的 MIT 字符,这个功能在名字很长的文件和目录时非常有效,可以大大提供键盘输入的速度,极为方便。ncftp 工具的使用:ncftp 是 Linux 下非常 FTP 工具,它除了支持 FTP 命令操作外,还支持LINUX

40、SHELL 下令用法,例如,它也支持 TAB 键用法,支持目录上传和(用-r 或-R 参数)。ncftp 的用法,例如要 FTP 一台 IP 为 2 的 Linux PC机 A,命令如下:ncftp u SEMIT 2其中 SEMIT 为A 机器上的合法的用户,连接上之后会提示输入 SEMIT 用户的, 验证通过后,就进入 ncftp 命令提示符。 编程时获取帮助 man(类似于 VC 编程中的 MSDN)man,即 manunal:man 是 UNIX 系统手册的本。根据习惯,UNIX 系统手册通常分为不同的部分(或小节,即 section),每个

41、小节阐述不同的系统内容。目前的小节划分如下:命令:普通用户命令系统调用:内核接口函数库调用:普通函数库中的函数特殊文件:/dev 目录中的特殊文件文件格式和约定:/etc/passwd 等文件的格式游戏。杂项和约定:标准文件系统布局、手册页结构等杂项内容 系统管理命令。内核例程:非标准的手册小节。手册页保 /usr/man 目录下,其中每个子目录(如 man1, man2, 。, manl, mann)包含不同的手册小节。使用 man 命令查看手册页。常用 man 命令行:man strtoul取消 root :vim /etc/shadow可以看到第一行内容大致如下:root:$1$dVVd

42、5YVP$OgZG58TL/NRExTfcr6URH.:11829:0:99999:7:-1:-1:134539236要取消 root ,只需将第一行 root 后第一对:之间的字符全部删除即可,删除后如下:root:11829:0:99999:7:-1:-1:134539236然后用:w!强行存盘(因为 shadow 文件是只读的)后用:q vi 则实现取消了 root。修改 PC 机 IP 地址:ifconfig eth0 2压缩/解压缩:Linux 的是以.gz 或.tar 或者.tar.gz 结尾的。前者是由 gzip 压缩的,后者是先用 tar 归档,在用 gz

43、ip 压缩而成的。1、以.gz 结尾的为压缩文件,用命令:gzip -d filename 来解压,得到的文件在当前目录中,但已没有了.gz。2、以.tar 结尾的为归档文件,用命令:tar -xvf filename 来展开,生成的文件与源文件在同一目录中,只是少了.tar。3、以.tar.gz 结尾的文件最常见,可直接用命令:gzip -cd filename | tar xfv 来解开。tar 的用法:解压:x 参数表示解压tar xzf SEMIT.tgz把一个目录 SEMIT 压缩成一个文件:SEMIT.tgztar czf SEMIT.tgz SEMITc 参数表示压缩。如:需查找

44、文件 main.c: 或者:find name main.c locate shadow注意:locate 为模糊匹配,它会递归的在当前目录下的目录下搜索,并列出所有名字包含 shadow 字串的文件。在一个目录下(含子目录)的所有文件中查找含有某个字符串(如“Modified by SEMIT”)的所有文件:grep Modified by SEMIT * -rvi(m)用法vi 是 Linux/Unix 世界里极为普遍的全屏幕文本编辑器,几乎可以说任何一台Linux/Unix 机器都会提供这个。vi 有三种状态,即编辑方式、命令方式。在命令方式下,所有命令都要以:开始,所输入的字符系统均作

45、命令来处理,如:q 代表 ,:w 表示存盘。当你进入 vi 时,会首先进入命令方式(同时也是编辑方式)。按下 i 就进入方式,用户输入的可视字符都添加到文件中,显示在屏幕上。按下 ESC 就可以回到命令状态(同时也是编辑方式)。编辑 命令方式类似,都是要输入命令,但它令不要以:开始,它直接接受键盘输入的单字符或组合字符命令,例如直接按下 u 就表示取消上一次对文件的修改,相当于 WINDOWS 下的 Undo 操作。编译方式下有一些命令是要以/开始的, 例如查找字符串就是:/string 则在文件中匹配查找 string 字符串。在编辑模式下按下:就进入命令方式。基本命令解释:1光标命令k、j

46、、h、l上、下、左、右光标移动命令。虽然您可以在 Linux 中使用键盘右边的 4 个光标键,但是记住这 4 个命令还是非常有用的。这 4 个键正是右手在键盘上放置的基本位置。nG跳转命令。n 为行数,该命令立即使光标跳到指定行。Ctrl+G光标所在位置的行数和列数报告。w、b使光标向前或向后跳过一个单词。2编辑命令i、a、r在光标的前、后以及所在处字符命令(i=insert、a=append、r=replace)。cw、dw改变(置换)/删除光标所在处的单词令 (c=change、d=delete)。x、d$、dd删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。3. 查找命令

47、- /string、?string从光标所在处向后或向前查找相应的字符串令。4. 拷贝命令- yy、p拷到剪贴板或取出剪贴板中内容 令。常用操作:无论是开启新档或修改旧文件,都可以使用 vi,所需指令为:$vifilemane如果文件是新的,就会在荧幕底部看到一个 ,告诉用户正在创建新文件。如果文件早已 ,vi 则会显示文件的首廿四行,用户可再用光标(cursor)上下移动。上面是一个经 vi 开启的模拟文件,一行开始处的波折号()表示文件的结尾。指令 i 在光标处正文指令 I 在一行开始处正文指令 a 在光标後追加正文指令 A 在行尾追加正文指令 o 在光标下面指令 O 在光标上面在方式下,

48、不能打入指令,必需先按Esc键,返回命令方式。假若户不知身处何态,也可以按Esc键,不管处於何态,都会返回命令方式。在修改文件时,如何存档及指定文件都非常重要。在 vi 内,行使存档或退出的指令时,要先按冒号(:),改变为命令方式,用户就可以看见在荧幕左下方,出现冒号(:),显示 vi 已经改为指令态,可以进行存档或等工作。:q!放弃任何改动而 vi,也就是强行 :w 存档:w! 对于只读文件强行存档:wq 存档并 vi:x 与 wq 的工作一样:zz 与 wq 的工作一样删除正文删除或修改正文都是利用编辑方式,故此,下面所提及的指令只需在编辑方式下,直接输入指令即行。x 删除光标处字符(Ch

49、aracter)nx 删除光标处後 n 个字符nX 删除光标处前 n 个字符ndw 删除光标处下 n 个单词(word)dd 删除整行d$或 D 删除由光标至该行最末u 恢复前一次所做的删除当使用 vi 修改正文,加减字符采用另一组在编辑方式下操作的指令。 rchar 由char 代替光标处的字符RtextEsc由 text 代替光标处的字符cwtextEsc由 text 取代光标处的单词CtextEsc由 text 取代光标处至该行结尾处cc 使整行空白,但保留光标位置,让你开始打入如删除指令一样,在指令前打入的数,表示执行该指令多少次。要检索文件,必需在编辑方式下进行。strReturn向

50、前搜寻 str 直至文件结尾处?strReturn往後搜寻 str 直至文件开首处n 同一重复检索N 相反重复检索vi 缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。全程替换命令::%s/string1/string2/g 在整个文件中替换“string1”成“string2”。如果要替换文件中的路径:使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin 换成/bin。也可以使用命令“:%s/usr/bin/bin/g”实现,其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。同时编辑 2 个文件,拷贝一个文件中的文本并粘贴到

51、另一个文件中: 命令如下:- vi file1 file2- yy 在文件 1 的光标处拷贝所在行- :n 切换到文件 2 (n=next) 或者按ctrl+ww,就在两个文件间切换。- p 在文件 2 的光标所在处粘贴所拷贝的行- :n 切换回文件 1将文件中的某一部分修改保存到临时文件,例如仅仅把第 2059 行之间的内容存盘成文件/tmp/1,我们可以输入如下命令。- vi file- :20,59w /tmp/1如果要在vi 执行期间,转到 shell 执行,使用惊叹号(!)指令,例如在vi 期间,列出当前目录内容,可以输入 ::!ls另一方面,用户可以在主目录中创建。exrc 环境文

52、件,用 set 打入选项,每次调用vi 读入。exrc 中的指令与设置。下面是。exrc 环境文件的实例:setwrapmarging8 setshowmodesetautoindentminicom 用法minicom 是安装 时安装的 ,它使用配置文件/etc/minirc.dfl,SEMIT 光盘安装时会提供这个文件。【注意】minicom 占用串口,能且仅能启动一个 minicom,启动第二个报错:Device/dev/modem is locked。其中/dev/modem 就是/dev/ttyS0,即 PC 机串口 1,它是在光盘安装时执行./arminstall 时创建的链接。查

53、看 arminst 文件,可以看到如下一行: ln -sf /dev/ttyS0 /dev/modemminicom 所有的操作都以 ctrl+A 开始,例如:为 ctrl+A,松手后再按下 Q,则弹出如下一个小框:选 Yes 即可 minicom。minicom 中最重要的操作就是对其进行配置的修改。这个操作要先 ctrl+A,松手后按下 O,则弹出如下框:选择第三项“Serial port setup”,则弹出下面框:输入 E 则弹出如下框,可改变率。若要使用 PC 机的串口 2 来接 SemitARM9200 开发板的串口 1 做,则要在串口配置框中选择 A,即“Serial Devic

54、e”,则原来的配置框第一行进入编辑模式,将原来的/dev/modem 改为如下的:/dev/ttyS1,即串口 2。配置框只需连续按 ESC 键即可返回。软、硬盘及光驱的使用在 Linux 中对其他硬盘逻辑分区、软盘,光盘的使用与我们通常在 DOS 与 Windows 中的使用 是不一样的,不能直接,因为在 Linux 中它们都被视为文件,因此在 使用前必须使用装载命令 mount 将它们装载到系统的/mnt 目录中来,使用结束,必卸载。命令格式如下:mount t 文件系统类型 名 装载目录文件类型常用的有:msdosdos 分区文件ext2Linux 的文件系统swapLinux swap 分区或 swap 文件iso9660安装 CD-ROM 的文件系统vfat支持长文件名的 dos 分区hpfsOS/2 分区文件系统名是指要装载的 的名称,如软盘、硬盘、光盘等,软盘为/dev/fd0 fd1,硬盘 为/dev/hda hdb ,硬盘逻辑分区为期 hda1

温馨提示

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

评论

0/150

提交评论