目录
目录 ................................................................................... 1
第一章 嵌入式 Linux 开发概述 ............................................................ 3
1.1 嵌入式系统介绍...................................................................................................................................3
1.1.1 嵌入式系统的定义和特点.......................................................................................................... 3
1.1.2 嵌入式技术的发展历史 ........................................................................................................... 3
1.2 基于 ARM 处理器的嵌入式 Linux 系统 ............................................................................................ 4
ARM 处理器介绍 .......................................................................................................................4
1.2.1
1.2.2 在嵌入式系统中选择嵌入式 Linux 的理由......................................................................... 7
第二章 嵌入式实验系统功能介绍 ......................................................... 8
2.1 Cortex-A8 核心板规格.........................................................................................................................8
2.2 Cortex-A8 实验平台底板规格 ............................................................................................................ 8
2.3 硬件资源分配 ........................................................................................................................................9
2.4 Linux 特性 ............................................................................................................................................. 10
第三章 硬件资源与系统介绍 .............................................................12
一.实验模块 ..............................................................................................................................................12
二.实验平台对外接口、接线与操作说明 ............................................................................................. 20
第四章 实验平台的使用 ................................................................ 22
4.1 实验平台端设置 ...................................................................................................................................22
4.2 PC 端设置...........................................................................................................................................22
4.2.1 设置超级终端 ............................................................................................................................22
4.2.2 常用终端软件介绍 ................................................................................................................... 24
4.3 Linux 的使用...................................................................................................................................... 27
4.3.1 使用 SD 卡 .................................................................................................................................29
4.3.2 播放 MP3...................................................................................................................................30
4.3.3 使用串口和 PC 实现文件互传 ................................................................................................ 30
4.4 建立 Linux 开发环境 ...........................................................................................................................34
4.4.1 建立交叉编译环境 ................................................................................................................... 34
4.4.2 虚拟机虚拟工具安装................................................................................................................ 34
4.4.3 虚拟机下配制网络 .....................................................................................................................36
4.4.4 配置 PC 机 Linux 的 FTP 服务 ................................................................................................38
4.4.5 配置 PC 机 Linux 的 Telnet 服务.............................................................................................40
4.4.6 配置 PC 机 Linux 的 NFS 服务............................................................................................... 42
4.4.7 配制 Windows 下 tftp 服务软件 .......................................................................................... 44
4.4.8 下载方式介绍 ............................................................................................................................46
4.5 编译 Linux-2.6 内核 .............................................................................................................................46
4.6 根文件系统的制作 ...............................................................................................................................47
4.7 构建根文件系统与 Yaffs 根文件系统映像的制作 ............................................................................47
4.8 烧写 Superboot 到 SD 卡......................................................................................................................47
4.8.1 烧写 Superboot 到 SD 卡 ..........................................................................................................47
4.8.2 恢复 SD 卡到原始状态 ............................................................................................................ 50
4.8.3 sd 系统烧写制作及配制说明....................................................................................................51
第五章 基础实验 ......................................................................53
实验一、linux 开发环境使用与 linux 常用命令 ......................................................................................53
1
实验二、“hello world!”嵌入式 linux 程序 ............................................................................................. 56
实验三、LED 灯的控制 .............................................................................................................................57
实验四、蜂鸣器的控制 ..............................................................................................................................61
实验五、数码管实验 ..................................................................................................................................62
实验六、键盘驱动实验 ..............................................................................................................................64
实验七、步进电机实验 ..............................................................................................................................67
实验八、直流电机实验 ..............................................................................................................................70
实验九、A/D 接口实验 ..............................................................................................................................72
实验十、DA 接口实验 ...............................................................................................................................76
实验十一、CAN 总线实验 ........................................................................................................................ 78
实验十二、I2C 接口实验 ........................................................................................................................... 81
第六章 高级实验部分 ..................................................................84
实验一、红外感应模块输入控制实验 ..................................................................................................... 84
实验二、无线射频遥控输入控制实验 ..................................................................................................... 86
实验三、无线 MODEM 控制实验 ............................................................................................................ 89
实验四、GPS 模块实验 ............................................................................................................................. 89
实验五、接触式 IC 卡实验........................................................................................................................93
实验六、RFID 非接触式 IC 卡实验 ......................................................................................................... 94
实验七、温度测试实验 ..............................................................................................................................95
实验八、气体酒精检测实验 ......................................................................................................................98
实验九、压力传感器实验 ........................................................................................................................101
实验十、ZigBee 模块通讯实验 ...............................................................................................................104
实验十一、FPGA 模块与 ARM 接口实验.............................................................................................105
实验十二、北斗 GPS 模块实验 .............................................................................................................. 106
实验十三、条码模块通讯实验 ................................................................................................................111
实验十四、无线网络设置 ........................................................................................................................113
实验十五、摄像头预览拍照 ....................................................................................................................119
实验十六、使用 3G 上网卡拨号上网 .....................................................................................................119
实验十七、指纹仪模块实验 ................................................................................................................... 122
第七章 基于 Linux 的高级编程实验 .....................................................126
实验一、Linux 下的 Socket 编程实验 ....................................................................................................126
实验二、Linux 多线程应用程序设计实验.............................................................................................133
实验三、Linux 下的嵌入式数据库实验(SQLite).............................................................................137
实验四、Linux 下的 WEB 服务器的移植与建立实验..........................................................................139
实验五、Linux 驱动程序编写实验 .........................................................................................................145
实验六、Linux 定时器实验.....................................................................................................................150
附录 A ............................................................................... 152
Linux 常用命令(‘#’以后为命令注释).............................................................................................. 152
附录 B:GNU 基础 ....................................................................... 157
gcc(GNU C 编译器)相关命令............................................................................................................. 157
ANSI C 和 gcc 库文件的使用及设置 ............................................... 163
附录 C
2
附录 D
vi 编辑器 .....................................................................164
附录 E:gcc 编译器使用简明指南 ........................................................166
第一章 嵌入式 Linux 开发概述
1.1 嵌入式系统介绍
1.1.1 嵌入式系统的定义和特点
1、嵌入式系统的定义
嵌入式系统的定义为:以应用为中心,以计算机技术为基础、软硬件可裁剪、适用于应用系统,
对功能、可靠性、成本、功耗严格要求的专用计算机系统。它的主要特点是嵌入、专用。
从 20 世纪 70 年代起,微型机以小型、价廉、高速数值计算等特点迅速走向市场,它所具备的智
能化水平在工业控制领域发挥了作用,学被组装成各种形状,“嵌入”到一个对象体系中,进行某类智
能化的控制。这样一来,计算机便失去了原来的形态与“通用”的功能,为区别于通用计算机系统,
将这类为了某个“专用”的目的,而“嵌入”到对象体系中的计算机系统,称为嵌入式计算机系统,
简称为嵌入式系统。
含有嵌入式系统的设备称为嵌入式设备,这在生活中随处可见:电子表、手机、MP3 播放器,遥
控器等,涵盖了生产、工业控制、通信、网络、消费电子、汽车电子、军工等领域。从通俗、广义的
角度来说,除电脑、超级计算机等具备比较强大的计算能力及系统资源(比如内存、存储器等)的电
子系统之外,凡具有计算能力的设备都可称为嵌入式设备。随着技术的进步,嵌入式设备的性能越来
越高,一个相对高级的 PDA 的性能并不弱于一般的电脑。
2.嵌入式系统的特点
嵌入式设备常应用于“特定”场合,与“通用的”个人电脑相比,具备以下特点。
(1)软件、硬件可裁剪
将市面上的手机拆开,会发现虽然它们的功能是相似的,但是所用的芯片多种多样,手忙脚乱的操作
系统也有多种,操作界面更是千变成化,操作的便利各有千秋。这不同于个人电脑,CPU 除了 INTEL
就是 AMD 公司的,操作系统多用 Windows。功能、成本、开发效率等条件决定了嵌入式设备的选材多
样化,软件、硬件可裁剪,即当不需要某项功能时,可以去除相关的软硬件。
(2)对功能、可靠性、成本、体积、功耗严格要求。
功能、可靠性、功耗这三点是软件开发人员最关注的地方。仍以手机为例,当选定硬件平台之后,处
理器的性能已经被限定了,怎样使得手机的操作更人性化,最大程度地发挥硬件的性能。
也许读者见过这类手机,它的屏幕总是经过很长时间才熄灭,这使得它的电池也很快耗光,只要
在编定软件时进行改进,就可能成倍地延长电池的使用时间。一个优秀的嵌入式系统,对硬件性能的
“压榨”、对软件的细致调节,已经到了精益求精的地步。有时候甚至为了节省几秒的启动时间而大动
脑筋,调整程序的启动顺序让耗时的程序稍后运行、改变程序的存储方式以便更快地加载等,甚至通
过显示一个进度条让用户觉得时间没那么长。
1.1.2 嵌入式技术的发展历史
嵌入式技术在 20 世纪 70 年代起源于微型机,从此之后,通用计算机与嵌入式计算机就走上了两
条不同的道路。通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无
限提升,存储容量的无限扩大。而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发
展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。
嵌入式技术的发展日前月异,经历了单片机(SCM)、微控制器(MCU)、系统级芯片(SoC)三个阶段。
1、SCM(Single Chip Microcomputer)
又称单片微型计算机,简称单片机,随着大规模集成电路的出现及其发展,计算机制 CPU、RAM、
3
ROM、定时器和多种 I/O 接口集成在一片芯片上,形成芯片级的计算机。
这个阶段主要是“寻求”单片形态嵌入式系统的最佳体系结构,也是从这个阶段起,嵌入式计算机技
术与通用计算机技术走上了两条不同的道路。
2、MCU(Micro Controller Unit)
MCU 即微控制器阶段的特征是:“满足”各类嵌入式应用,根据对象系统要求扩展各种外围电路与
接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展 MCU 的重
任不可避免地落在电气、电子技术厂家的身上。
实际上,MCU、SCM 之间的概念在日常工作中并不严格区分,很多时候一概以“单片机”称呼。
随着能够运行更复杂软件(比如操作系统)的 SoC 的出现,“单片机”通常是指不运行操作系统、功能
相对单一的嵌入式系统,但这不是绝对的,比如 8051 上就可以运行 PTX51 实时操作系统,它的大小只
有 6KB,相比于嵌入式 Linux、Windows CE 等操作系统而言比较简单。
3、SOC(System on a Chip)
随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的集成,现在又发展到
IP 的集成,即 SOC(System on a Chip)设计技术。SoC 可以有效地降低电子/信息系统产品的开发成本,
缩短开发周期,提高产品的竞争力,是未来工业界将采用的最主要的产品开发方式。
虽然 SOC 一词多年前就已出现,但到底什么是 SOC 则有各种不同的说法。在经过了多年的争论后,专
家们就 SOC 的定义达成一致意见。这个定义虽然不是非常严格,但明确地表明了 SOC 的特征。
○1 实现复杂系统功能的 VLSI;
○2 采用超深亚微米工艺技术;
○3 使用一个以上嵌入式 CPU/数字信号处理器(DSP);
○4 外部可以对芯片进行编程;
○5 主要采用第三方 IP 进行设计。
从上述 SOC 的特征来看,SOC 中包含了微处理器/微控制器、存储器以及其他专用功能逻辑,但并
不是包含了微处理器、存储器以及其他专用功能逻辑的芯片就是 SOC,8051 就集成了微处理器、存储
器时部件,它不属于 SOC。SOC 技术被广泛认同的根本原因,并不在于 SOC 可以集成多少个晶体管,
而在于 SOC 可以用较短时间设计出来,这是 SOC 的主要价值所在——缩短产品的上市周期。
因此,SOC 更合理的定义为:SOC 是在一个芯片上由于广泛使用预定制模块 IP(Intellectual Property)
而得以快速开发的集成电路。
本书介绍的 S3C2410/A8 就属于 SOC,它们集成了处理器、内存管理单元(MMU)、NAND Flash 控
制器等部件,而处理器是基于 ARM 公司的 IP 设计的。
嵌入式软件随着硬件的发展,也发生了很大的变化。在 SCM、MCU 阶段,嵌入式软件的编写通常
由相关行业的电气、电子技术专家编写,计算机专业队伍并没有真正进入单片机应用领域。因此,电
子技术应用工程师以自己惯性的电子技术应用模式从事单片机的应用开发。这种应用模式最重要的特
点是:软、硬件的底层性和随意性;对象系统专业技术的密切相关性;缺少计算机工程设计方法。
随着嵌入式处理器性能的快速提高,网络、通信、多媒体技术得以发展,很多嵌入式设备都具备收发
邮件、编写文档、视听等功能,计算机专业人士开始进入嵌入式领域。这形成了明显的技术特点:基
于操作系统、以网络、通信为主的“非嵌入式底层”应用——除要完成的功能比较特殊、性能比较苛
刻外,嵌入式应用软件的开发已经与普通软件开发没有差别。实际上,很多基于操作系统的嵌入式应
用程序就是先在 PC 上模拟验证,最后才移入嵌入式设备的。
以一个简单的例子加以说明:以前基于单片机编写的软件,通常是在 main 函数中定义一个无限循
环,然后在里面查询各类输入事件,并作出相应处理,它直接操作硬件;而基于 SOC 的软件多是在操
作系统上面运行,通过驱动程序操作硬件,这使得软件开发分工的形式进行。
1.2 基于 ARM 处理器的嵌入式 Linux 系统
1.2.1
ARM 处理器介绍
1. ARM 的概念
嵌入式处理器种类繁多,有 ARM、MlPS、PPC 等多种架构。ARM 处理器的文档丰富,各类嵌入式
软件大多(往往首选)支持 ARM 处理器,使用 ARM 开发板来学习嵌入式开发是个好选择。基于不同架构
CPU 的开发是相通的,掌握 ARM 架构之后,在使用其他 CPU 时也会很快上手。当然,作为产品进行选
材时,需要考虑的因素就非常多了,这不在本书的介绍范围之内。
ARM (Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通
称,还可以认为是一种技术的名字。ARM 公司是 32 位嵌入式 RISC 微处理器技术的领导者,自从 1990
年创办公司以来,基于 ARM 技术 IP 核的微处理器的销售量已经超过了 100 亿。
4
ARM 公司并不生产芯片,而是出售芯片技术授权。其合作公司针对不同需求搭配各类硬件部件,
比如 UART、SDI、I2C 等,设计出不同的 SoC 芯片。
ARM 公司在技术上的开放性使得它的合作伙伴既有世界顶级的半导体公司,也有各类中、小型公
司。随着合作伙伴的增多,也使得 ARM 处理器可以得到更多的第三方工具、制造和软件艾持,又使整
个系统成本降低,使新品上市时间加快,从而具有更大的竞争优势。
基于 ARM 的处理器以其高速度、低功耗、价格低等优点得到非常广泛的应用,它可以应用于以下
领域:
○1 为无线通信、消费电子、成像设备等产品提供可运行复杂操作系统的开放应用平台;
○2 在海量存储、汽车电子、工业控制和网络应用等领域提供实时嵌入式应用;
○3 安全系统,比如信用卡、SIM 卡等。
2. ARM 体系架构的版本
ARM 体系架构的版本就是它所使用的指令集的版本。ARM 架构支持 32 位的 ARM 指令集和 16 位
的 Thumb 指令集,后者使得代码的存储空间大大减小。还提供了一些扩展功能,比如 Java 加速器
(Jazelle)、用以提高安全性能的 TrustZone 技术、智能能源管理(IEM,Intelligent Energy Manager)、SIMD
和个 NEONTM 等技术。
还在使用的 ARM 指令集 (ISA,Instruction Set Architecture)有以下版本。
(1)ARMv4。
这是当今市场上最老的版本,ARMv4 只支持 32 位的指令集,支持 32 位的地址空间。一些 ARM7
系列的处理器和 Intel 公司的 StrongARM 处理采用 ARMv4 指令集。
(2) ARMv4T。
增加了 16 位的 Thumb 指令集,它可以产生更紧凑的代码,与相同功能的 ARM 代码相比,可以节
省超过 35%的存储空间,同时具备 32 位代码的所有优点。
(3)ARMv5TE。
在 1999 年,ARMv5TE 版本改进了 Thumb 指令集,增加了一些"增强型 DSP 指令",简称为 E 指令
集。
这些指令用于增强处理器对一些典型的 DSP 算法的处理性能,使得音频 DSP 应用可以提升 70%的
性能。许多系统在使用微控制器来进行各类控制的同时,还需要具备数据处理能力,传统的做法要么
是使用更高级的处理器(这使得成本增加),要么是使用多个处理器(这使得系统复杂度增高)。通过 E 指
令集可以在一个普通 CPU 中增加 DSP 的功能,这在成本、性能、简化设计等方面都有优势。
(4)ARMv5TEJ。
在 2000 年,ARMv5TEJ 版本中增加了 Jazelle 技术用于提供 Java 加速功能。相比于仅用软件实现的
Java 虚拟机,Jazelle 技术使得 Java 代码的运行速度提高 8 位,而功耗降低 80%。
Jazelle 技术使得可以在一个单核的处理器上运行 Java 程序、己经建立好的操作系统和应用程序。
(5) ARMv6。.
在 2001 年,ARMv6 问世。它在很多方面都有改进:存储系统、异常处理,最重要的是增加了对多
媒体功能的支持。ARMv6 中包含了一些媒体指令以支持 SIMD 媒体功能扩展。SIMD 媒体功能扩展为音
频/视频的处理提供了优化功能,可以使音频/视频的处理性能提高 4 倍。
ARMv6 中还引入了 Thumbl-2 和 TrustZone 技术,这是两个可选的技术。之前的版本中,ARM 指令
和 Thumb 指令分别运行于不同的处理器状态,执行不同指令集的指令前要进行切换。Thumb-2 技术增
加了混合模式的功能,定义了一个新的 32 位指令集,可以运行 32 位指令与传统 16 位指令的混合代码。
这能够提供"ARM 指令级别的性能"与 Thumb 指令级别的代码密度"。TrustZone 技术在硬件上提供了两
个隔离的地址空间:安全域(Secure world)和非安全域(non-secure world),给系统提供了一个安全机制。
(6)ARMv7。
ARMv7 架构使用 Thumb-2 技术;还使用了 NEON 技术,将 DSP 和媒体处理能力提高了近 4 倍,并
支持改良的浮点运算,满足下一代 3D 图形、游戏物理应用以及传统嵌入式控制应用的需求。
版本名中的 T 表示 Thumb 指令集,E 表示增强型 DSP 指令,J 表示 Java 加速器
总结
3.ARM 处理器系列
在相同指令集下,搭配不同部件就可以组装出具有不同功能的处理器,比如有无内存管理单元、
有无调试功能等。它们可以分为 8 个系列,系列名中有 7 个后缀,这些后缀可以组合,含义如下。
○1T:表示支持 Thumb 指令集。
○2D:表示支持片上调试 (Debug)。
○3M:表示内嵌硬件乘法器 (Multiplier)。
5
高可以达到 130MIPS,支持 Thumb16 位指令集和 ARM32 位指令集。
ARM7 系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。
其中,ARM7TMDI 是目前使用最广泛的 32 位嵌入式 RISC 处理器,属于低端 ARM 处理器核。
ARM7 系列的处理器没有内存管理单元(MMU)。
(2)ARMg。
与 ARM7 相比,ARM9 的最大差别在于:有 MMU 和 Cache。它的指令执行效率较 ARM7 有较大提
高,最高可达到 300MIPS.
○4I:支持片上断点和调试点。
○5E:表示支持增强型 DSP 功能。
○6J:表示支持 JazelIe 技术,即 Java 加速器。
○7S:表示全合成式(full synthesizable)。
这 8 个系列中,ARM7、ARM9、ARM9E 和 ARM10 为通用处理器系列,每一个系列提供一套相对独
特的性能来满足不同应用领域的需求。SecurCore 系列专门为安全要求较高的应用而设计。
下面简要说明它们的特点,要了解更详细的信息请参考 ARM 公司的网站。(http://www.arm.com)
(1) ARM7。
ARM7 系列处理器是低功耗的 32 位 RISC 微处理器,它主要用于对成本、功耗特别敏感的产品。最
ARM9 系列微处理器有 ARM920T 和 ARMg22T 两种类型。
(3)ARM9E。
ARM9E 系列微处理器在单一的处理器内核上提供了微控制器、DSP、Java 应用系统的解决方案,极
大地减少了芯片的面积和系统的复杂程度。ARM9E 系列微处理器提供了增强的 DSP 处理能力,适合于
那些需要同时使用 DSP 和微控制器的应用场合。
ARM9E 系列微处理器有 ARM926EJ-S、ARM946E-S、ARM966E-S、ARM968E-S 和 ARM996HS 共 5 种
类型。
(4)ARM10E。
ARM10E 系列微处理器具有更加杰出的高性能、低功耗特点,由于使用了新的体系结构,它拥有所
有 ARM 系列中最高的主频。ARM10E 系列微处理器采用了一种新的省电模式,支持“64-bit load-store
micro-architecture",含有浮点运算协处理器(符合 IEEE 754 标准,支持向量运算)。
ARM10E 系列微处理器有 ARM1020E、ARMl022E 和 ARMl026EJ-S 共 3 种类型。
(5)ARM11.
ARM11 系列微处理器是 ARM 公司近年推出的新一代 RlSC 处理器,它是 ARM 新指令架构—ARMv6
的第一代设计实现。ARM11 的媒体处理能力和低功耗特点特别适用于无线和消费类电子产品,其高数
据吞吐量和高性能的结合非常适合网络处理应用。另外,在实时性能和浮点处理等方面 ARM11 可以满
足汽车电子应用的需求。基于 AMRv6 体系结构的 ARM11 系列处理器将在上述领域发挥巨大的作用。
ARM11 系 列 微 处 理 器 有 这 4 种 类 型 : ARM11 MPCore , ARMl136J(F)-S , ARM1156T2(F)-S 和
ARMl176JZ(F)-S。
(6) Cortex。
Cortex 系列处理器是基于 ARMv7 架构的,分为 CorteX-A、CorteX-R 和 CorteX-M 共 3 类。Cortex-A
为传统的、基于虚拟存储的操作系统和应用程序而设计,支持 ARM、Thumb 和 Thumb-2 指令集:Cortex-R
针对实时系统设计,支持 ARM、Thumb 和 Thumb-2 指令集;Cortex-M 为对价格敏感的产品设计,只支
持 Thumb-2 指令集。
(7) SecurCore。
SecurCore 系列微处理器专为安全需要而设计,提供了完善的 32 位 RISC 技术的安全解决方案,因
此,SecurCore 系列微处理器除了具有 ARM 体系结构的低功耗、高性能的特点外,还具有其独特的优
势,即提供了对安全解决方案的支持。
SecurCore 系列微处理器有如下类型:SecurCoreSCl00、SecurCoreSC200。
(8) OptimoDE Data Engines。
这是一个新的 IP 核,针对高性能的嵌入式信号处理应用而设计。
另外,Intel 公司的 StrongARM、xscale 系列处理器也属于 ARM 架构。Intel StrongARM 处理器是便
携式通信产品和消费类电子产品的理想选择,已成功应用于多家公司的掌系列产品。Xscale 处理器是基
于 ARMv5TE 体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持 16 位的 Thumb
指令和 DSP 指令集,己使用在数字移动电话、个人数字助理和网络产品等场合。
本书使用 S3C2410、A8 芯片,它们的处理器部属于 ARM920T 系列,版本为 ARMv4T。
6
1.2.2 在嵌入式系统中选择嵌入式 Linux 的理由
随着技术的发展及人们需求的增加,各种消费类电子产品的功能越来越强大,随身携带的电子设
备变得“等同于 PC”:上面有键盘、触摸屏、LCD 等输入、输出设备,可以观看视频、听音乐,可以测
览网站、接收邮件,可以查看、编辑文档等。在工业控制领域,系统级芯片(SoC)以更低廉的价格提供
了更丰富的功能,使得一个嵌入式系统可以同时完成更多的控制功能。
当系统越来越大、应用越来越多,使用操作系统很有必要。操作系统的作用有:统一管理系统资源、
为用户提供访问硬件的接口、调度多个应用程序、管理文件系统等。在嵌入式领域可以选择的操作系
统有很多,比如:嵌入式 Linux、VxWorks、Windows CE、uC/OS-I1 等。
◆ VxWorks
是美国 WindRiver 公司开发的嵌入式实时操作系统。单就性能而言,它是非常优秀的操作系统,具
有可裁剪的微内核结构、高效的任务管理、灵活的任务间通信、微秒级的中断处理,支持 POSIX l003.1b
实时扩展标准,支持多种物理介质及标准、完整的 TCP/IP 网络协议等。缺点是它支持的硬件相对较少,
并且源代码不开放,需要专门的技术人员进行开发和维护,并且授权费比较高。
◆ Windows CE
是微软公司针对嵌入式设备开发的 32 位、多任务、多线程的操作系统。它支持 x86、ARM、MIPS、
SH 等架构的 CPU,硬件驱动程序丰富,比如支持 WiFi、USB2.0 等新型设备,并具有强大的多媒体功能
可以灵活裁剪以减小系统体积;与 PC 上的 Windows 操作系统相通,开发、调试工具使用方便,应用程
序的开发流程与 PC 上的 Windows 程序的开发流程相似,就开发的便利性而言(特别是对于习惯在
Windows 下开发的程序员),Windows CE 是最好的,但是,其源代码没有开放(目前开放了一小部分),
开发人员难以进行更细致的定制;占用比较多的内存,整个系统相对庞大 版权许可费用也比较高。
◆ uC/OS-II
是 Micrium 公司开发的操作系统,可用于 8 位、16 位和 32 位处理器。可裁剪,对硬件要求较低;
可以运行最多 64 个任务;调度方式为抢占式,即总是运行最高优先级的就绪任务。用户可以获得 Uc/OS-II
的全部代码,但它不是开放源码的免费软件,作为研究和学习,可以通过购买相关书藉获得源码,用
于商业目的时,必须购买其商业授权。相对于其他按照每个产品收费的操作系统,uC/OS-II 采用一次性
的收费方式,价格低廉。需要说明的是,uC/OS-II 仅是一个实时内核,用户需要完成其他更多的工作,
比如编写硬件驱动程序、实现文件系统操作(使用文件的话)等。
◆ LinuX
是遵循 GPL 协议的开放源码的操作系统,使用时无需交纳许可费用。内核可任意裁剪,几乎支持
所有的 32 位、64 位 CPU;内核中支持的硬件种类繁多,几乎可以从网络上找到所有硬件驱动程序;支
持几乎所有网络协议;有大量的应用程序可用,从编译工具、调试工具到 GUI 程序,几乎都有遵循 GPL
切、议的相关版本;有庞大的开发人员群体,有数量众多的技术论坛,大多问题都可以得到快速而免
费的解答。
Linux 的缺点在于实时性,虽然 2.6 版本的 Linux 在实时性方面有较大改进,但是仍无法称为实时操
作系统。有不少变种 Linux 在实时性方面做了很大改进,比如 RTLinuX 达到了硬实时,TimeSys Linux 提
高了实时性。这些改进的 Linux 版本既有遵循 GPL 协议的免费版本,也有要付费的商业版本。
正是由于 Linux 开放源代码、易于移植、资源丰富、免费等优点,使得它在嵌入式领域越来越流行。更
重要的一点,由于嵌入式 Linux 与 PC Linux 源于同一套内核代码,只是裁剪的程度不一样,这使得很多
为 PC 开发的软件再次编译之后,可以直接在嵌入式设备上运行,这使得软件资源"极大"非富,比如各
类实用的函数库、小游戏等。
7
第二章 嵌入式实验系统功能介绍
2.1 Cortex-A8 核心板规格
◆ CPU 处理器
Samsung S5PV210,基于 CortexTM-A8,运行主频 1GHz
内置 PowerVR SGX540 高性能图形引擎
支持流畅的 2D/3D 图形加速
最高可支持 1080p@30fps 硬件解码视频流畅播放,格式可为 MPEG4, H.263, H.264 等
最高可支持 1080p@30fps 硬件编码(Mpeg-2/VC1)视频输入
◆ DDR2 RAM
Size: 1G
2bit 数据总线,单通道
运行频率: 200MHz
◆ Flash 存储器
MLC NAND Flash: 2G
◆ 在板资源
4 x User Leds(Green)
1 x Power Led(Red)
板载声卡 WM8960
板载以太网卡 DM9000
Cortex-A8 实验平台底板规格
2.2
◆ 大电流 5V 供电,提供更加优质的供电,防止一切因为电源而引起的 BUG;
◆ LCD 显示 - 7 寸电容屏
◆ 1 个 100M 以太网 RJ-45 接口
◆ 3 个串行接口,其中两个为 RS3232 电平,以 DB9 接口引出,另一个是 TTL 电平,以扩展模块接口引
出
◆ 4 个 USB Host A 型接口 (支持 USB2.0 协议)
8