火龙果·整理 大子天大euml.org.cn 随着芯片技术的不断发展,嵌入式处理器的主频也越来越高,通常主频都在4OMHz以 上,有的甚至高达500MHz。多处理器、多核处理器平台也逐渐应用在嵌入式领域,不过现 在大量使用的还是32位单处理器组成的平台。一个典型的硬件平台如图1.2所示2]。 时钟 SDRAM SDRAM 控制器 复位 处理器 核 中断控 外部总线 Flash 制器 控制器 其他外设 图1.2嵌入式硬件平台基本组成结构 嵌入式软件平台主要由嵌入式操作系统与应用软件组成。目前流行的嵌入式操作系统可 以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入 式操作系统,如微软公司的Windows CE,SUN公司的Java系统,朗讯科技公司的Inferno, 嵌入式Liuw等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日 趋成熟,其相关的标准和软件开发方式己被用户普遍接受,同时积累了丰富的开发工具和应 用软件资源。另一类是实时操作系统,如WindRiver公司的VxWorks,ISI的pSOS,QNX 系统软件公司的QNX,ATI的Nucleus,.中国科学院凯思集团的Hopen嵌入式操作系统等, 这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了 精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业 控制等领域中。目前常见的嵌入式系统有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、 uCOS-II、VxWorks、.pSOS、Nucleus、ThreadX、Rtems、QNX、NTEGRITY、OSE、C Executive 等。嵌入式操作系统的发展也必将带动新一轮科技竞争。 应用程序运行在嵌入式操作系统之上,一般情况下应用程序和操作系统是分开的。当处 理器上带有MMU(Memory Management Unit,存储器管理单元),它可以从硬件上将应用程 序和操作系统分开编译和管理,Liuⅸ、WiCE就是这种分离机制。这样做的好处就是系统 安全性更高,可维护性更强,更有利于各功能模块的划分。很多情况下在没有MMU的处理 器,如ARM7TDMI,经常应用程序和操作系统是编译在一起运行的,对于开发人员来说, 操作系统更像一个函数库。 1.2ARM介绍 ARM是Advanced RISC Machines(高级精简指令系统处理器)的缩写,它既是一种微
随着芯片技术的不断发展,嵌入式处理器的主频也越来越高,通常主频都在 40M Hz 以 上,有的甚至高达 500MHz。多处理器、多核处理器平台也逐渐应用在嵌入式领域,不过现 在大量使用的还是 32 位单处理器组成的平台。一个典型的硬件平台如图 1.2 所示[2]。 图 1.2 嵌入式硬件平台基本组成结构 嵌入式软件平台主要由嵌入式操作系统与应用软件组成。目前流行的嵌入式操作系统可 以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入 式操作系统,如微软公司的 Windows CE,SUN 公司的 Java 系统,朗讯科技公司的 Inferno, 嵌入式 Linux 等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日 趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应 用软件资源。另一类是实时操作系统,如 WindRiver 公司的 VxWorks,ISI 的 pSOS,QNX 系统软件公司的 QNX,ATI 的 Nucleus,中国科学院凯思集团的 Hopen 嵌入式操作系统等, 这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了 精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业 控制等领域中。目前常见的嵌入式系统有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、 uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 等。嵌入式操作系统的发展也必将带动新一轮科技竞争。 应用程序运行在嵌入式操作系统之上,一般情况下应用程序和操作系统是分开的。当处 理器上带有 MMU(Memory Management Unit,存储器管理单元),它可以从硬件上将应用程 序和操作系统分开编译和管理,Linux、WinCE 就是这种分离机制。这样做的好处就是系统 安全性更高,可维护性更强,更有利于各功能模块的划分。很多情况下在没有 MMU 的处理 器,如 ARM7TDMI,经常应用程序和操作系统是编译在一起运行的,对于开发人员来说, 操作系统更像一个函数库。 1.2 ARM 介绍 ARM 是 Advanced RISC Machines(高级精简指令系统处理器)的缩写,它既是一种微 时钟 复位 中断控 制器 处理器 核 SDRAM 控制器 外部总线 控制器 SDRAM 其他外设 Flash
处理器知识产权(P)核,也是一个公司的名称。在上节中对AM公司有了大概的介绍, 这里就不再赘述,以下将介绍ARM处理器。 1.2.1ARM处理器介绍 ARM处理器已经成功广泛地应用于无线通信、工业控制、消费类电子、网络产品等领 域,并且保持持续增长的势头。目前,基于ARM技术的微处理器应用约占据了32位RISC 微处理器75%以上的市场份额。采用RISC架构的ARM微处理器一般具有如下特点: 1.体积小、低功耗、低成本、高性能: 2.支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件: 3.大量使用寄存器,指令执行速度更快: 4. 大多数数据操作都在寄存器中完成: 5. 寻址方式灵活简单,执行效率高: 6.指令长度固定。 ARM微处理器目前包括下面几个系列,每一个系列的ARM微处理器都有各自的特点 和应用领域。 ◇ARM7系列:一般包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ 几种内核。ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器之一, 主要应用工业控制、nternet设备、网络和调制解调器设备、移动电话等多种 多媒体和嵌入式应用。TDMⅡ的基本含义为: T:支持l6为压缩指令集Thumb: D:支持片上Debug: M:内嵌硬件乘法器(Multiplier) I:嵌入式ICE,支持片上断点和调试点 ◆ARM9系列:包含ARM920T、ARM922T和ARM940T三种类型,主要应用 于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字 摄像机等。其中本书中介绍的S3C2410就是ARM9系列的ARM920T类型。 ARM9具有以下特点: ·5级流水线,指令执行效率更高。 ● 提供1.1 MIPS/MHz的哈佛结构。 支持32位元ARM指令集和16位元Thumb指令集。 ● 支持32位元的高速AMBA汇流排界面。 ● 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌 入式操作系统。 ●支持数据Cache和指令Cache,具有更高的指令和数据处理能力。 ◆ARM9E系列:包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型。主 要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网 络设备等领域。 ◇ARM10E系列:包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型。 主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息 系统等领域。 ◆SecurCore系列:包含SecurCore SC100、SecurCore SC110、SecurCore SC200 和SecurCore SC2l0四种类型,主要应用于一些对安全性要求较高的应用产品 及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域
处理器知识产权(IP)核,也是一个公司的名称。在上节中对 ARM 公司有了大概的介绍, 这里就不再赘述,以下将介绍 ARM 处理器。 1.2.1 ARM 处理器介绍 ARM 处理器已经成功广泛地应用于无线通信、工业控制、消费类电子、网络产品等领 域,并且保持持续增长的势头。目前,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75%以上的市场份额。采用 RISC 架构的 ARM 微处理器一般具有如下特点: 1. 体积小、低功耗、低成本、高性能; 2. 支持 Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容 8 位/16 位器件; 3. 大量使用寄存器,指令执行速度更快; 4. 大多数数据操作都在寄存器中完成; 5. 寻址方式灵活简单,执行效率高; 6. 指令长度固定。 ARM 微处理器目前包括下面几个系列,每一个系列的 ARM 微处理器都有各自的特点 和应用领域。 ² ARM7 系列:一般包括 ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ 几种内核。ARM7TDMI 是目前使用最广泛的 32 位嵌入式 RISC 处理器之一, 主要应用工业控制、Internet 设备、网络和调制解调器设备、移动电话等多种 多媒体和嵌入式应用。TDMI 的基本含义为: T: 支持 16 为压缩指令集 Thumb; D: 支持片上 Debug; M:内嵌硬件乘法器(Multiplier) I: 嵌入式 ICE,支持片上断点和调试点 ² ARM9 系列:包含 ARM920T、ARM922T 和 ARM940T 三种类型,主要应用 于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字 摄像机等。其中本书中介绍的 S3C2410 就是 ARM9 系列的 ARM920T 类型。 ARM9 具有以下特点: l 5 级流水线,指令执行效率更高。 l 提供 1.1MIPS/MHz 的哈佛结构。 l 支持 32 位元 ARM 指令集和 16 位元 Thumb 指令集。 l 支持 32 位元的高速 AMBA 汇流排界面。 l 全性能的 MMU,支持 Windows CE、Linux、Palm OS 等多种主流嵌 入式操作系统。 l 支持数据 Cache 和指令 Cache,具有更高的指令和数据处理能力。 ² ARM9E 系列:包含 ARM926EJ-S、ARM946E-S 和 ARM966E-S 三种类型。主 要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网 络设备等领域。 ² ARM10E 系列:包含 ARM1020E、ARM1022E 和 ARM1026EJ-S 三种类型。 主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息 系统等领域。 ² SecurCore 系列:包含 SecurCore SC100、SecurCore SC110、SecurCore SC200 和 SecurCore SC210 四种类型,主要应用于一些对安全性要求较高的应用产品 及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域
◇Intel的Xscale:Xscale处理器是基于ARMv5TE架构的解決方案,是一款全 性能、高成本效益比、低功耗的处理器。它支持16位的Thumb指令和DSP 指令集,已使用在许多移动电话、个人数字助理和网络产品等场合。 ◇Intel的StrongARM:StrongARM SA-l100处理器是采用ARM架构高度整合的 32位元RISC微处理器。它融合了Intel公司的设计和处理技术以及ARM架 构的电源效率,采用在软件上相容ARMv4架构、同時采用具有ntel技术优 点的架构。Intel StrongARM处理器是便携型通讯产品和消費类电子产品的理 想选择,己成功应用于多家公司的掌上电脑系列[3]。 其中,ARM7、ARM9、ARM9E和ARMI0为4个通用处理器系列,每一个系列提供一 套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用 而设计。Intel的Xscale和StrongARM也是应用非常广泛的嵌入式处理器系列。 1.2.2ARM处理器的选型 基于ARM为内核的处理器已经越来越多,并且种类繁多,在选择开发基于ARM的嵌 入式系统时,首要任务就是选择ARM微处理器。下面讲述在选择ARM微处理器的一般准 则[3]. 1.ARM微处理器内核的选择 >如果使用Windows CE或标准Linux等操作系统,就需要选择ARM720T以上 带有MMU功能的ARM晶片。 >ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU 功能。 >而ARM7IDMI则沒有MMU,不支持Windows CE和标准Linux,但目前有 uCLinux等不需要MMU支持的操作系统可执行ARM7TDMI硬件平台。 2.系统的工作频率 >系统的工作频率在很大程度上決定了ARM微处理器的处理能力。 >ARM7系列微处理器的典型处理速度为0.9 MIPS/MHz,常见的ARM7晶片系 统主时钟为20MHz-133MHz。 >ARM9系列微处理器的典型处理速度为1.1 MIPS/MHz,常见的ARM9的系统 主时钟为100MHz-233MHz,ARM10最高可以达到700MHz。 3.晶片内部存储体的容量 >大多数的ARM微处理器晶片内部存储体的容量都不太大。 >如ATMEL的AT91F40162就具有最高2MB的晶片内部存储空间。 4.晶片內部周围电路选择 >如USB接口、IS接口、IIC接口、LCD控制器、键盘接口、RTC、ADC和 DAC、DSP等,设计者应该分析系统的需求,尽可能采用晶片内部周围电路 完成所需的功能,这样既可以简化系统的设计,同时提高系统的可靠性。 除了上面介绍的四个方面准则之外,还有许多其它的因素考虑,比如价格、兼容性等等。 总之,根据设计的需求选择一款适合自己系统的ARM处理器是非常重要的。 1.2.3S3C2410微处理器介绍 S3C2410是三星电子开发的一种32位RISC微处理器,它是基于ARM920T内核开发
² Intel 的 Xscale:Xscale 处理器是基于 ARMv5TE 架构的解決方案,是一款全 性能、高成本效益比、低功耗的处理器。它支持 16 位的 Thumb 指令和 DSP 指令集,已使用在许多移动电话、个人数字助理和网络产品等场合。 ² Intel 的 StrongARM:StrongARM SA-1100 处理器是采用 ARM 架构高度整合的 32 位元 RISC 微处理器。它融合了 Intel 公司的设计和处理技术以及 ARM 架 构的电源效率,采用在软件上相容 ARMv4 架构、同時采用具有 Intel 技术优 点的架构。Intel StrongARM 处理器是便携型通讯产品和消費类电子产品的理 想选择,已成功应用于多家公司的掌上电脑系列[3]。 其中,ARM7、ARM9、ARM9E 和 ARM10 为 4 个通用处理器系列,每一个系列提供一 套相对独特的性能来满足不同应用领域的需求。SecurCore 系列专门为安全要求较高的应用 而设计。Intel 的 Xscale 和 StrongARM 也是应用非常广泛的嵌入式处理器系列。 1.2.2 ARM 处理器的选型 基于 ARM 为内核的处理器已经越来越多,并且种类繁多,在选择开发基于 ARM 的嵌 入式系统时,首要任务就是选择 ARM 微处理器。下面讲述在选择 ARM 微处理器的一般准 则[3]。 1. ARM 微处理器内核的选择 Ø 如果使用 Windows CE 或标准 Linux 等操作系统,就需要选择 ARM720T 以上 带有 MMU 功能的 ARM 晶片。 Ø ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM 都带有 MMU 功能。 Ø 而 ARM7TDMI 则沒有 MMU,不支持 Windows CE 和标准 Linux,但目前有 uCLinux 等不需要 MMU 支持的操作系统可执行 ARM7TDMI 硬件平台。 2. 系统的工作频率 Ø 系统的工作频率在很大程度上決定了 ARM 微处理器的处理能力。 Ø ARM7 系列微处理器的典型处理速度为 0.9MIPS/MHz,常见的 ARM7 晶片系 统主时钟为 20MHz-133MHz。 Ø ARM9 系列微处理器的典型处理速度为 1.1MIPS/MHz,常见的 ARM9 的系统 主时钟为 100MHz-233MHz,ARM10 最高可以达到 700MHz。 3. 晶片內部存储体的容量 Ø 大多数的 ARM 微处理器晶片內部存储体的容量都不太大。 Ø 如 ATMEL 的 AT91F40162 就具有最高 2MB 的晶片內部存储空间。 4. 晶片內部周围电路选择 Ø 如 USB 接口、IIS 接口、IIC 接口、LCD 控制器、键盘接口、RTC、ADC 和 DAC、DSP 等,设计者应该分析系统的需求,尽可能采用晶片內部周围电路 完成所需的功能,这样既可以简化系统的设计,同时提高系统的可靠性。 除了上面介绍的四个方面准则之外,还有许多其它的因素考虑,比如价格、兼容性等等。 总之,根据设计的需求选择一款适合自己系统的 ARM 处理器是非常重要的。 1.2.3 S3C2410 微处理器介绍 S3C2410 是三星电子开发的一种 32 位 RISC 微处理器,它是基于 ARM920T 内核开发
的。S3C2410是面向低价格、低功耗和高性能的手持设备和小型设备而设计。S3C2410的具 体特点有以下[4: ●系统管理 。支持小端/大端方式 >地址空间:128M字节每一个Bank(总共1G字节) 每个BANK可编程为8/16/32位数据总线 >BANK0到BANK6采用固定起始地址和大小 BANK7具有可编程的BANK起始地址和大小 >共8个存储器BANK >前6个存储器BANK用于ROM、SRAM和其他 另外两个存储器BANK用于ROM、SRAM和同步DRAM ~支持等待信号用以延长总线周期 >支持掉电时的SDRAM自刷新模式 >支持不同类型的ROM引导(NOR/NAND Flash、EEPROM和其他)。 S3C2410的SoC芯片集成单元 >内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据CACHE,16KB指令CACHE, MMU >内置外部存储器控制器(SDRAM控制和芯片选择逻辑) >LCD控制器,一个LCD专用DMA >4个带外部请求线的DMA >3个通用异步串行端口(rDAl.0,16-Byte Tx FIFO,and16-Byte Rx FIFO),2通道 SPI 一个多主PC总线,一个S总线控制器 SD主接口版本1.0和多媒体卡协议版本2.11兼容 两个USB HOST,一个USB DEVICE(VER1.1) 4个PWM定时器和一个内部定时器 看门狗定时器 117个通用/0 >24个外部中断 >电源控制模式:标准、慢速、休眠、掉电 >8通道10位ADC和触摸屏接口 ~带日历功能的实时时钟 >芯片内置PLL >设计用于手持设备和通用嵌入式系统 >16/32位RISC体系结构,使用ARM920TCPU核的强大指令集 >带MMU的先进的体系结构支持WinCE、EPOC32、Linux >指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储 器带宽和性能的影响 >ARM920TCPU核支持ARM调试的体系结构 >内部先进的位控制器总线(AMBA)(AMBA2.O,AHB/APB) 其中,S3C2410的芯片结构图1.3所示:
的。S3C2410 是面向低价格、低功耗和高性能的手持设备和小型设备而设计。S3C2410 的具 体特点有以下[4]: l 系统管理 Ø 支持小端/大端方式 Ø 地址空间:128M 字节每一个 Bank(总共 1G 字节) Ø 每个 BANK 可编程为 8/16/32 位数据总线 Ø BANK0 到 BANK6 采用固定起始地址和大小 Ø BANK7 具有可编程的 BANK 起始地址和大小 Ø 共 8 个存储器 BANK Ø 前 6 个存储器 BANK 用于 ROM、SRAM 和其他 Ø 另外两个存储器 BANK 用于 ROM、SRAM 和同步 DRAM Ø 支持等待信号用以延长总线周期 Ø 支持掉电时的 SDRAM 自刷新模式 Ø 支持不同类型的 ROM 引导(NOR/NAND Flash、EEPROM 和其他)。 l S3C2410 的 SoC 芯片集成单元 Ø 内部 1.8V,存储器 3.3V,外部 I/O3.3V,16KB 数据 CACHE,16KB 指令 CACHE, MMU Ø 内置外部存储器控制器(SDRAM 控制和芯片选择逻辑) Ø LCD 控制器,一个 LCD 专用 DMA Ø 4 个带外部请求线的 DMA Ø 3 个通用异步串行端口(IrDA1.0, 16-Byte Tx FIFO, and 16-Byte Rx FIFO),2 通道 SPI Ø 一个多主 I 2C 总线,一个 I 2 S 总线控制器 Ø SD 主接口版本 1.0 和多媒体卡协议版本 2.11 兼容 Ø 两个 USB HOST,一个 USB DEVICE(VER1.1) Ø 4 个 PWM 定时器和一个内部定时器 Ø 看门狗定时器 Ø 117 个通用 I/O Ø 24 个外部中断 Ø 电源控制模式:标准、慢速、休眠、掉电 Ø 8 通道 10 位 ADC 和触摸屏接口 Ø 带日历功能的实时时钟 Ø 芯片内置 PLL Ø 设计用于手持设备和通用嵌入式系统 Ø 16/32 位 RISC 体系结构,使用 ARM920T CPU 核的强大指令集 Ø 带 MMU 的先进的体系结构支持 WinCE、EPOC32、Linux Ø 指令缓存(CACHE)、数据缓存、写缓冲和物理地址 TAG RAM,减小了对主存储 器带宽和性能的影响 Ø ARM920T CPU 核支持 ARM 调试的体系结构 Ø 内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB) 其中,S3C2410 的芯片结构图 1.3 所示:
ARM920T IPA[31:0] Instruction Instruction External MMU CACHE Coproc (16KB) Interface C13 V2A31:0 1D310] ARM9TDMI AMBA JTAG Processor core CP15] BUs (Internal Embedded ICE) VF DD31:0 Write Buffer DV2A[31:0] DVA[31:0] 1c131 Data WriteBack Data WBPA[31:0] CACHE PA Tag MMU (16KB RAM DPA[31:0 LCD LCD BUS CONT. CONT. DMA 《→ A Arbitor/Decode H USB Host CONT → B Interrupt CONT ExtMaster → B Power Management NAND CONT. U NAND Flash Boot Memory CONT. Loader SRAMNOR/SDRAM Clock Generator (MPLL) Bridge DMA(4Ch) UART 0,1,2 12C USB Device A 129 SDI/MMC GPIO Watchdog Timer ◇ RTC U BUS CONT. ADC Arbitor/Decode SP0,1 → Timer/PWM 0~3,4(Internal) 图1.3S3C2410芯片结构 1.3ADS集成开发环境介绍 ADS全称为ARM Developer Suite,.是ARM公司推出的新一代ARM集成开发工具。 现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。在ADS工具诞生之前, 一直使用的是ARM SDT工具,目前ARM SDT工具已经慢慢被淘汰。ADS除了可以安装 在Windows NT4,Windows2000,Windows98和Windows95操作系统下,还支持Windows XP和Windows Me操作系统
图 1.3 S3C2410 芯片结构 1.3 ADS 集成开发环境介绍 ADS 全称为 ARM Developer Suite,是 ARM 公司推出的新一代 ARM 集成开发工具。 现在 ADS 的最新版本是 1.2,它取代了早期的 ADS1.1 和 ADS1.0。在 ADS 工具诞生之前, 一直使用的是 ARM SDT 工具,目前 ARM SDT 工具已经慢慢被淘汰。ADS 除了可以安装 在 Windows NT4,Windows 2000,Windows 98 和 Windows 95 操作系统下,还支持 Windows XP 和 Windows Me 操作系统