-99火爆:器 12.5进程间通信 312 12.6本章小结 315 12.7常见问题 .316 附录A:光盘内容 .317 谷.....J 附录B:参考文献 317
12.5 进程间通信....................................................................................................................... 312 12.6 本章小结........................................................................................................................... 315 12.7 常见问题........................................................................................................................... 316 附录 A:光盘内容.................................................................................................................... 317 附录 B:参考文献.................................................................................................................... 317
第一部分ARM Linux系统移植 为了能让读者快速的了解嵌入式ARM Linux系统的开发过程,本书第一部分讲述ARM Liuⅸ的系统移植,这部分内容在实际工作中比较常见,是嵌入式Liux开发人员应该掌握 的技能。该部分由四章组成:第一章介绍ARM嵌入式Liux系统概述,作为嵌入式开发入 门的一章,非常适合初学者阅读,它包括嵌入式系统介绍,ARM介绍,ADS集成开发工具 介绍,嵌入式Linux开发介绍以及Linuⅸ内核介绍,对那些刚接触嵌入式Linux开发的读者 来说,通过本章学习将会对嵌入式Liuⅸ开发有个大概的了解和认识:第二章介绍交叉编译 工具链的制作,对于非X86硬件平台的设备开发通常使用交叉编译工具链在X86机器上进 行,该章内容是编译目标内核和程序的基础,它包括对交叉工具链的介绍,使用分步法构建 交叉工具链和使用Crosstool构建交叉工具链,通过本章学习,读者将会对交叉工具链有深 刻的认识以及可以构建自己的交叉工具链:第三章讲述ARM Linux的引导程序一一 BootLoader,这是内核移植的关键,没有一个良好的BootLoader来引导内核工作,再强大、 稳定的内核也不能正常工作,它包括对BootLoader的介绍,U-boot移植与分析以及讲述如 何自己设计BootLoader。通过本章学习,读者将会对BootLoader的作用有更清楚的认识, 以及学会如何移植和设计BootLoader:第四章讲述嵌入式Linx内核移植,也是实际工作中 非常重要的内容,它包括移植的基本概念,内核配置,内核编译,以及根文件系统的构建。 通过本章学习,读者将会对内核移植以及构建根文件系统有更深入的理解。 总之,读者通过对这部分内容的学习,将会了解构建嵌入式Liuⅸ系统所需要的一些工 作,比如交叉工具链,BootLoader,内核配置,内核编译等
第一部分 ARM Linux 系统移植 为了能让读者快速的了解嵌入式 ARM Linux 系统的开发过程,本书第一部分讲述 ARM Linux 的系统移植,这部分内容在实际工作中比较常见,是嵌入式 Linux 开发人员应该掌握 的技能。该部分由四章组成:第一章介绍 ARM 嵌入式 Linux 系统概述,作为嵌入式开发入 门的一章,非常适合初学者阅读,它包括嵌入式系统介绍,ARM 介绍,ADS 集成开发工具 介绍,嵌入式 Linux 开发介绍以及 Linux 内核介绍,对那些刚接触嵌入式 Linux 开发的读者 来说,通过本章学习将会对嵌入式 Linux 开发有个大概的了解和认识;第二章介绍交叉编译 工具链的制作,对于非 X86 硬件平台的设备开发通常使用交叉编译工具链在 X86 机器上进 行,该章内容是编译目标内核和程序的基础,它包括对交叉工具链的介绍,使用分步法构建 交叉工具链和使用 Crosstool 构建交叉工具链,通过本章学习,读者将会对交叉工具链有深 刻的认识以及可以构建自己的交叉工具链;第三章讲述 ARM Linux 的引导程序—— BootLoader,这是内核移植的关键,没有一个良好的 BootLoader 来引导内核工作,再强大、 稳定的内核也不能正常工作,它包括对 BootLoader 的介绍,U-boot 移植与分析以及讲述如 何自己设计 BootLoader。通过本章学习,读者将会对 BootLoader 的作用有更清楚的认识, 以及学会如何移植和设计 BootLoader;第四章讲述嵌入式 Linux 内核移植,也是实际工作中 非常重要的内容,它包括移植的基本概念,内核配置,内核编译,以及根文件系统的构建。 通过本章学习,读者将会对内核移植以及构建根文件系统有更深入的理解。 总之,读者通过对这部分内容的学习,将会了解构建嵌入式 Linux 系统所需要的一些工 作,比如交叉工具链,BootLoader,内核配置,内核编译等
-99火爆:理 第1章嵌入式系统开发入门 本章学习目标: ●了解嵌入式系统基本概念 ● 了解嵌入式系统的基本组成 ·了解ARM处理器的特点 ● 学会使用ADS集成开发工具(Code Warrior和AXD) ●熟悉Linux开发环境 ●学会如何有效阅读Linux内核代码 1.1嵌入式系统介绍 本章作为ARM Linux系统移植的第一章,也是本书的第一章。俗话说说的好“良好的 开始是成功的一半”,虽然这句话并不是真理,但是希望读者在学习任何东西之前都应该有 坚定的学习态度和持之以恒的信念,同样学习本书也要有个良好的开端。首先介绍嵌入式系 统的概述。 1.1.1嵌入式系统概述 随着嵌入式系统在消费类电子、工业控制、航空航天、汽车电子、医疗保健、网络通信 等各个领域的广泛应用,嵌入式系统这个名词已经被各行各业的人所熟悉,嵌入式系统已 经走进了人们的生活。它正在以各种不同的形式悄梢地改变着人们的生产、生活方式。无庸 质疑,社会对嵌入式系统开发人员的需求也越来越大,所以现在越来越多的人己经加入到这 个行业中来。嵌入式系统,英文为Embedded System,从广义上讲,凡是带有微处理器的专 用软、硬件系统都可称为嵌入式系统。如各类单片机和DSP系统,这些系统在完成较为单 一的专业功能时具有简洁高效的特点。但是由于他们没有使用操作系统,所以管理系统硬件 和软件的能力有限,在实现复杂的多任务功能时往往困难重重,甚至无法实现。从狭义上讲, 那些使用嵌入式微处理器构成的独立系统,并且有自己的操作系统,具有特定功能,用于特 定场合的系统。本书中所说的嵌入式系统是指狭义上的嵌入式系统。到目前为止,对于嵌入 式系统还没有一个明确的定义。嵌入式系统的核心是嵌入式微处理器,该处理器都是RISC (Reduce Instruction Set Computing,精简指令集计算机)*(注I)的处理器内核。 *注I:RISC和CISC(Complex Instruction Set Computing,复杂指令集计算机)是当前CPU的两种架构。它 们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是要用最少的机 器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指 令:MUL ADDRA,ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将 ADDRA,ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实 现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如C程 序中的a*=b就可以直接编译为一条乘法指令。今天只有ntel及其兼容CPU还在使用CISC架构。RISC架 构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA,ADDRB中的数据 读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOVA,ADDRA:MOVB,ADDRB:
第 1 章 嵌入式系统开发入门 本章学习目标: l 了解嵌入式系统基本概念 l 了解嵌入式系统的基本组成 l 了解 ARM 处理器的特点 l 学会使用 ADS 集成开发工具(Code Warrior 和 AXD) l 熟悉 Linux 开发环境 l 学会如何有效阅读 Linux 内核代码 1.1 嵌入式系统介绍 本章作为 ARM Linux 系统移植的第一章,也是本书的第一章。俗话说说的好“良好的 开始是成功的一半”,虽然这句话并不是真理,但是希望读者在学习任何东西之前都应该有 坚定的学习态度和持之以恒的信念,同样学习本书也要有个良好的开端。首先介绍嵌入式系 统的概述。 1.1.1 嵌入式系统概述 随着嵌入式系统在消费类电子、工业控制、航空航天、汽车电子、医疗保健、网络通信 等各个领域的广泛应用,嵌入式系统这个名词已经被各行各业的人所熟悉, 嵌入式系统已 经走进了人们的生活。它正在以各种不同的形式悄悄地改变着人们的生产、生活方式。无庸 质疑,社会对嵌入式系统开发人员的需求也越来越大,所以现在越来越多的人已经加入到这 个行业中来。嵌入式系统,英文为 Embedded System,从广义上讲,凡是带有微处理器的专 用软、硬件系统都可称为嵌入式系统。如各类单片机和 DSP 系统,这些系统在完成较为单 一的专业功能时具有简洁高效的特点。但是由于他们没有使用操作系统,所以管理系统硬件 和软件的能力有限,在实现复杂的多任务功能时往往困难重重,甚至无法实现。从狭义上讲, 那些使用嵌入式微处理器构成的独立系统,并且有自己的操作系统,具有特定功能,用于特 定场合的系统。本书中所说的嵌入式系统是指狭义上的嵌入式系统。到目前为止,对于嵌入 式系统还没有一个明确的定义。嵌入式系统的核心是嵌入式微处理器,该处理器都是 RISC (Reduce Instruction Set Computing,精简指令集计算机)*(注 1)的处理器内核。 *注 1:RISC 和 CISC(Complex Instruction Set Computing,复杂指令集计算机)是当前 CPU 的两种架构。它 们的区别在于不同的 CPU 设计理念和方法。早期的 CPU 全部是 CISC 架构,它的设计目的是要用最少的机 器语言指令来完成所需的计算任务。比如对于乘法运算,在 CISC 架构的 CPU 上,您可能需要这样一条指 令:MUL ADDRA, ADDRB 就可以将 ADDRA 和 ADDRB 中的数相乘并将结果储存在 ADDRA 中。将 ADDRA, ADDRB 中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于 CPU 中设计的逻辑来实 现。这种架构会增加 CPU 结构的复杂性和对 CPU 工艺的要求,但对于编译器的开发十分有利。比如 C 程 序中的 a*=b 就可以直接编译为一条乘法指令。今天只有 Intel 及其兼容 CPU 还在使用 CISC 架构。RISC 架 构要求软件来指定各个操作步骤。上面的例子如果要在 RISC 架构上实现,将 ADDRA, ADDRB 中的数据 读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB;
火龙果·整理 大子天大uml.org.cn MULA,B:STR ADDRA.A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更 强大的CPU,但对于编译器的设计有更高的要求。 嵌入式微处理器一般具备以下4个主要特点: 1.对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而 使内部的代码和实时内核的执行时间减少到最低限度。 2.具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为 了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同 时也有利于软件诊断。 3.可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理 器。 4.嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备 中靠电池供电的嵌入式系统更是如此。 嵌入式处理器内核按照体系结构分类: 1.MPS处理器 MPS处理器是由美国MPS公司研发出来的一套处理器体系,MPS公司是一家设 计制造高性能、高档次及嵌入式32位和64位处理器的厂商,在RI$C处理器方面 占有重要地位。1984年,MPS计算机公司成立。1992年,SGI收购了MPS计算 机公司。1998年,MPS脱离SGI,成为MPS技术公司。MPS公司设计RISC处 理器始于二十世纪八十年代初,1986年推出R2000处理器,1988年推R3000处理 器,1991年推出第一款64位商用微处器R4000。之后又陆续推出R8000(于1994 年)、R10000(于1996年)和R12000(于1997年)等型号。随后,MPS公司的 战略发生变化,把重点放在嵌入式系统。1999年,MPS公司发布MPS32和MPS64 架构标准,为未来MPS处理器的开发奠定了基础。新的架构集成了所有原来NPS 指令集,并且增加了许多更强大的功能。MPS公司陆续开发了高性能、低功耗的 32位处理器内核(corC)MPS324Kc与高性能64位处理器内核MPS645Kc。2000 年,MPS公司发布了针对MPS324Kc的版本以及64位MPS6420Kc处理器内核。 2.ARM处理器 ARM(Advanced RISC Machines)处理器是由只设计内核的英国ARM公司研发出 来的一套处理器体系,ARM公司成立于1990年11月,其前身是Acorn计算机公司。 ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC 处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种 领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM将其技术 授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独 一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性 RISC标准的缔造者。目前,总共有30家半导体公司与ARM签订了硬件技术使用 许可协议,其中包括Intel、BM、三星电子、LG半导体、NEC、SONY、菲利浦和 国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等 一系列知名公司。ARM架构是面向低预算市场设计的第一款RISC微处理器。 3.PowerPC处理器 二十世纪九十年代,BM(国际商用机器公司)、Apple(苹果公司)和Motorola(摩 托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。 PowerPC架构的特点是可伸缩性好、方便灵活。第一代PowerPC采用O.6微米的生 产工艺,晶体管的集成度达到单芯片300万个。MPC860和MPC8260是其最经典 的两款PowerPC内核的嵌入式处理器
MUL A, B; STR ADDRA, A。这种架构可以降低 CPU 的复杂性以及允许在同样的工艺水平下生产出功能更 强大的 CPU,但对于编译器的设计有更高的要求。 嵌入式微处理器一般具备以下 4 个主要特点: 1. 对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而 使内部的代码和实时内核的执行时间减少到最低限度。 2. 具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为 了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同 时也有利于软件诊断。 3. 可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理 器。 4. 嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备 中靠电池供电的嵌入式系统更是如此。 嵌入式处理器内核按照体系结构分类: 1. MIPS 处理器 MIPS 处理器是由美国 MIPS 公司研发出来的一套处理器体系,MIPS 公司是一家设 计制造高性能、高档次及嵌入式 32 位和 64 位处理器的厂商,在 RISC 处理器方面 占有重要地位。1984 年,MIPS 计算机公司成立。1992 年,SGI 收购了 MIPS 计算 机公司。1998 年,MIPS 脱离 SGI,成为 MIPS 技术公司。MIPS 公司设计 RISC 处 理器始于二十世纪八十年代初,1986 年推出 R2000 处理器,1988 年推 R3000 处理 器,1991 年推出第一款 64 位商用微处器 R4000。之后又陆续推出 R8000(于 1994 年)、R10000(于 1996 年)和 R12000(于 1997 年)等型号。随后,MIPS 公司的 战略发生变化,把重点放在嵌入式系统。1999 年,MIPS 公司发布 MIPS32 和 MIPS64 架构标准,为未来 MIPS 处理器的开发奠定了基础。新的架构集成了所有原来 NIPS 指令集,并且增加了许多更强大的功能。MIPS 公司陆续开发了高性能、低功耗的 32 位处理器内核(core)MIPS324Kc 与高性能 64 位处理器内核 MIPS64 5Kc。2000 年,MIPS 公司发布了针对MIPS32 4Kc 的版本以及 64位 MIPS 64 20Kc 处理器内核。 2. ARM 处理器 ARM(Advanced RISC Machines)处理器是由只设计内核的英国 ARM 公司研发出 来的一套处理器体系,ARM公司成立于 1990 年 11 月,其前身是 Acorn计算机公司。 ARM 是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的 RISC 处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种 领域,比如嵌入控制、消费/教育类多媒体、DSP 和移动式应用等。ARM 将其技术 授权给世界上许多著名的半导体、软件和 OEM 厂商,每个厂商得到的都是一套独 一无二的 ARM 相关技术及服务。利用这种合伙关系,ARM 很快成为许多全球性 RISC 标准的缔造者。目前,总共有 30 家半导体公司与 ARM 签订了硬件技术使用 许可协议,其中包括 Intel、IBM、三星电子、LG 半导体、NEC、SONY、菲利浦和 国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和 MRI 等 一系列知名公司。ARM 架构是面向低预算市场设计的第一款 RISC 微处理器。 3. PowerPC 处理器 二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和 Motorola(摩 托罗拉)公司开发 PowerPC 芯片成功,并制造出基于 PowerPC 的多处理器计算机。 PowerPC 架构的特点是可伸缩性好、方便灵活。第一代 PowerPC 采用 0.6 微米的生 产工艺,晶体管的集成度达到单芯片 300 万个。MPC860 和 MPC8260 是其最经典 的两款 PowerPC 内核的嵌入式处理器
4.68K/ColdFire处理器 68K/ColdFire处理器是Motorola公司独有的处理器体系。68K内核是最早在嵌入式 领域广泛应用的内核。其最著名的代表芯片是68360。Coldfire继承了68K的特点 并继续兼容它。 由于嵌入式系统一般具有芯片集成度高,软件代码小,高度自动化,响应速度快等特点, 特别适合于要求实时性和多任务的体系。RTOS(Real-Time Operating System,实时操作系 统)是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。实时操作系统是指 具有实时性,能支持实时控制系统工作的操作系统。首要任务是调度一切可利用的资源完成 实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制 和要求。一般Windows、Unix、Linux等桌面系统都属于分时操作系统,在此有必要说明一 下实时操作系统与分时操作系统的区别:具体的说,对于分时操作系统,软件的执行在时间 上的要求并不严格,时间上的错误,一般不会造成灾难性的后果。而对于实时操作系统,主 要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件上必须在 事件发生时能够在严格的时限内作出响应,即使是在尖峰负荷下,也应该如此,系统时间响 应的超时就意味着致命的失败。另外,实时操作系统的重要特点是具有系统的可确定性,即 系统能对运行情况的最好和最坏等的情况能做出精确的估计。 到此为止,读者应该对嵌入式系统有了大概的了解,下面将介绍嵌入式系统的一般组成。 1.1.2嵌入式系统组成 嵌入式系统一般由硬件平台和软件平台两部分组成,如下图1.1所示。其中硬件平台由 嵌入式微处理器和外围硬件设备组成,而软件平台由嵌入式操作系统和应用软件组成。 应用程序 软件平台 操作系统 存储器 硬件平台 输入 输出 处理器 图1.1嵌入式系统的一般架构
4. 68K/ColdFire 处理器 68K/ColdFire 处理器是 Motorola 公司独有的处理器体系。68K 内核是最早在嵌入式 领域广泛应用的内核。其最著名的代表芯片是 68360。Coldfire 继承了 68K 的特点 并继续兼容它。 由于嵌入式系统一般具有芯片集成度高,软件代码小,高度自动化,响应速度快等特点, 特别适合于要求实时性和多任务的体系。RTOS(Real-Time Operating System,实时操作系 统)是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。实时操作系统是指 具有实时性,能支持实时控制系统工作的操作系统。首要任务是调度一切可利用的资源完成 实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制 和要求。一般 Windows、Unix、Linux 等桌面系统都属于分时操作系统,在此有必要说明一 下实时操作系统与分时操作系统的区别:具体的说,对于分时操作系统,软件的执行在时间 上的要求并不严格,时间上的错误,一般不会造成灾难性的后果。而对于实时操作系统,主 要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件上必须在 事件发生时能够在严格的时限内作出响应,即使是在尖峰负荷下,也应该如此,系统时间响 应的超时就意味着致命的失败。另外,实时操作系统的重要特点是具有系统的可确定性,即 系统能对运行情况的最好和最坏等的情况能做出精确的估计。 到此为止,读者应该对嵌入式系统有了大概的了解,下面将介绍嵌入式系统的一般组成。 1.1.2 嵌入式系统组成 嵌入式系统一般由硬件平台和软件平台两部分组成,如下图 1.1 所示。其中硬件平台由 嵌入式微处理器和外围硬件设备组成,而软件平台由嵌入式操作系统和应用软件组成。 图 1.1 嵌入式系统的一般架构 应用程序 操作系统 存储器 处理器 输入 输出 软件平台 硬件平台