学习情境一 嵌入式系统概述 (续)

71
学学学学学学学学 学学 续续 ()

Upload: eliora

Post on 12-Jan-2016

175 views

Category:

Documents


1 download

DESCRIPTION

学习情境一 嵌入式系统概述 (续). 五、嵌入式实时系统. 实时系统 (Real Time System) 是一个能够 在指定或确定的时间内完成系统功能及对外部或内部事件 在同步或异步时间内 做出响应的系统 。 实时系统 是能同时满足以下要求的系统: 逻辑正确性: 产生正确的输出 时间正确性: 在恰当的时间或时限之前产生输出 。 失败所需付的高代价!. 五、嵌入式实时系统. 嵌入式系统的最大的特点: 关于反应:对外部发生的事件的反应。 周期性事件 :(例如 旋转式喷灌机) 非周期性事件 :(例如关闭按钮) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 学习情境一 嵌入式系统概述 (续)

学习情境一嵌入式系统概述(续)

Page 2: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

五、嵌入式实时系统 实时系统 (Real Time System) 是一个能

够在指定或确定的时间内完成系统功能及对外部或内部事件在同步或异步时间内做出响应的系统。

实时系统是能同时满足以下要求的系统: 逻辑正确性:产生正确的输出 时间正确性:在恰当的时间或时限之前产生输出 。

失败所需付的高代价!

Page 3: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

五、嵌入式实时系统 嵌入式系统的最大的特点: 关于反应:对外部发生的事件的反应。 周期性事件:(例如 旋转式喷灌机) 非周期性事件:(例如关闭按钮) 有关实时: 实时是系统正确的一部分 【硬时限: 超过它,系统的反应是无效的; 一般包括最小和

最大两个反应时间;】 【软时限:错过这个最后期限并不意味着毁灭;反应的时间和系统

的现实意义成反比(该快没快,该慢没慢!)】 实例: 一列火车进入一个城市区域的过程;

路口路障,什么时间拦住? ------ 满足需求是关键! 总之: Real Time != “Real Fast” ----- 并非越快越好!

Page 4: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

(1) 实时性 实时系统所产生的结果在时间上有着严格的要求,只有符合时间要求的结果才认为是正确的。在实时系统中每个任务都有一个截止期限,任务必须在这个截止期限之内完成以此保证系统所产生的结果在时间上的正确性。

(2) 可靠性 可靠性一方面指系统的正确性即系统所产生的结果在返回值和运行费时上都是正确的,另一方面它指系统的健壮性,也就是说虽然系统出现了错误或外部环境与预先假定的外部环境不符合,但系统仍然可以处于可预测状态,它仍可以安全地带错运行和平缓地降级。

(3) 并行性 一般来说一个实时系统常常有多个外部输入端口,因此就要求系统具有并行处理的能力以便能同时响应来自不同端口的输入信号。

对于实时系统来说它应具备以下几个重要的特性:

Page 5: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

(4) 可预测性 实时系统的实际行为必须处在一定的限度内,而这个限度可以由系统的定义而获得,这意味着系统对来自外部输入的反映必须全部是可预测的。即使在最坏的条件下,系统也要严格遵守时间的约束。因此在出现过载时系统必须能以一种可预测的方式来降级它的性能。

(5) 多路性 实时系统的多路性表现在对多个不同的现场信息进行采集以及对多个对象和多个执行机构实行控制。

(6) 独立性 每个用户向实时系统提出服务请求,相互间是独立的,在实时控制系统中对信息的采集和对象控制也是相互独立的。

Page 6: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

实时系统根据确定性可以分为以下两类(1)硬实时系统(2)软实时系统

Page 7: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

硬实时系统 硬实时指系统对系统响应时间有严格的要求,如果系统响应时间不

能满足就会引起系统崩溃或致命的错误。必须遇上一个硬时限。【硬时限: 超过它,系统的反应是无效

的】如果任何硬时限在任何时候被错过了,那么这个系统是不合适的。

需要具体的方法来确认遇上时限。硬时限: 超过它,系统的反应是无效的;

一般包括最小和最大两个反应时间; 硬实时系统:一个实时系统,其时限都是硬时限。

举例:核电站的控制飞行的控制

Page 8: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

软实时系统 软实时指系统对系统响应时间有要求,但是如果系统响

应时间不能满足,它并不会导致系统出现致命的错误或崩溃。软时限:错过这个最后期限并不意味着毁灭;

反应的时间和系统的现实意义成反比 .

(该快没快,该慢没慢!)一个软时限可能偶然地错过。

软实时系统:一个实时系统,其一些时限是软时限。举例:电话交换多媒体应用

Page 9: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

典型的嵌入式系统的限制:• Small Size, Low Weight

– Handheld electronics– Transportation applications weight costs money

• Low Power– Battery power for 8+ hours (laptops often last only 2 hours)– Limited cooling may limit power even if AC power available

• Harsh environment– Heat, vibration, shock– Power fluctuations, RF interference, lightning– Water, corrosion, physical abuse

• Safety critical operation– Must function correctly– Must not function incorrectly

• Extreme cost sensitivity– $.05 adds up over 1,000,000 units

Page 10: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

嵌入式系统设计涉及的全局观

A complex set of tradeoffs:

• Optimize for more than just speed

• Consider more than just the computer

• Take into account more than just initial product design

Multi-Discipline• Electronic Hardware• Software• Mechanical Hardware• Control Algorithms• Humans• Society/Institutions

MultiObjective• Dependability• Affordability• Safety• Security• Scalability• Timeliness

MultiPhase• Requirements• Design• Manufacturing• Deployment• Logistics• Retirement

x x

Page 11: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

对于严格的应用健壮性考虑

• Loss of Arianne rocket in June, 1996– Lost a $400 million scientific payload

• Efforts to reduce system costs led to the failure– Reuse of Inertial Reference System software from Ariane 4– Improperly handled exception caused by variable overflow during– new flight profile (that wasn't simulated because of cost/schedule)– 64bit float converted to 16bit int assumed not to overflow

• Exception caused dual hardware shutdown (software doesn't fail!)• What really happened?

– The narrow view: it was a software bug fix it– The broad view: the loss was caused by a lack of system robustness in an

exceptional (unanticipated) situation

Many embedded systems must be robust

Page 12: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

交叉编译 开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。

Page 13: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

由于目标机本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。

什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。

因为目的平台上往往不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征。

有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。

Page 14: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

所谓平台,实际上包含两个概念:体系结构( Architecture )、操作系统( Operating System )。同一个体系结构可以运行不同的操作系统;同样,

同一个操作系统也可以在不同的体系结构上运行。举例来说:我们常说的 x86 Linux 平台实际上是 Intel x86体系结构和 Linux for x86操作系统的统称;而 x86 WinNT 平台实际上是 Intel x86体系结构和Windows NT for x86操作系统的简称。

Page 15: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

六 ARM 嵌入式系统硬件选型

Page 16: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

ARM 处理器当前产品系列: ARM 处理器当前有 5 个产品系列:

ARM7 、 ARM9 、 ARM9E 、 ARM10E 、 ARM11 和SecureCore 。

ARM7 Family ARM720T ARM7EJ-S ARM7DI ARM7TDMI ARM7TDMI-S ARM9 Family ARM920T ARM922T ARM940T ARM9E Family ARM926EJ-S ARM946E ARM946E-S ARM966E-S

Page 17: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

ARM10 Family

ARM1020E ARM1022E ARM1026EJ-S

ARM11 Family ARM11 Family

Other Cores StrongARM Microprocessor XScale Microarchitecture

Page 18: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

ARM 芯片选择的一般原则

从应用的角度,对在选择 ARM 芯片时所应考虑的主要因素做一详细的说明。

(1)ARM芯核如果希望使用 WinCE 或 Linux等操作系统以减少软件开发时间,就需要选择 ARM720T 以上带有 MMU(Memory Management Unit)功能的 ARM芯片 .(2) 系统时钟控制器 系统时钟决定了 ARM芯片的处理速度。 ARM7 的处理速度为 0.9MIPS/MHz ,常见的 ARM7芯片系统主时钟为 20MHz-133MHz ; ARM9 的处理速度为1.1MIPS/MHz ,常见的 ARM9 的系统主时钟为100MHz-233MHz ; ARM10 最高可以达到 700MHz 。

Page 19: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

(3) 内部存储器容量 在不需要大容量存储器时,可以考虑选用有内置存储器的 ARM芯片。

(4) USB接口 许多 ARM芯片内置有 USB 控制器,有些芯片甚至同时有 USB Host 和 USB Slave 控制器。

(5) GPIO数量 在某些芯片供应商提供的说明书中,往往申明的是最大可能的GPIO数量,但是有许多引脚是和地址线、数据线、串口线等引脚复用的。这样在系统设计时需要计算实际可以使用的 GPIO数量。

(6) 中断控制器 ARM 内核只提供快速中断 (FIQ) 和标准中断 (IRQ) 两个中断向量。但各个半导体厂家在设计芯片时加入了自己不同的中断控制器,以便支持诸如串行口、外部中断、时钟中断等硬件中断。外部中断控制是选择芯片必须考虑的重要因素,合理的外部中断设计可以很大程度的减少任务调度的工作量。

Page 20: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

(7) LCD 控制器 有些ARM芯片内置LCD 控制器,有的甚至内置64K彩色TFT LCD 控制器。在设计PDA 和手持式显示记录设备时,选用内置LCD 控制器的 ARM芯片较为适宜。

(8扩展总线 大部分 ARM芯片具有外部 SDRAM和SRAM扩展接口,不同的 ARM芯片可以扩展的芯片数量即片选线数量不同,外部数据总线有 8位、 16位或 32位。某些特殊应用的 ARM芯片如德国Micronas的PUC3030A 没有外部扩展功能。

(9)DSP协处理器

(10)封装 : 主要的封装有 QFP、TQFP、PQFP 、LQFP、BGA 、LBGA等形式, BGA封装具有芯片面积小的特点,可以减少PCB板的面积,但是需要专用的焊接设备,无法手工焊接。另外一般 BGA封装的 ARM芯片无法用双面板完成 PCB布线,需要多层PCB板布线。

Page 21: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

输入输出接口

CPU 与外部设备及存储器的连接和数据交换都需要通过接口设备来实现,而前级被称为 I/O 接口,而后者则被称为存储器接口。存储器通常在 CPU 的同步控制下,作为接口电路比较简单。而 I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是 I/O接口。

1.并行接口:2.串行接口:3. USB接口:4. PCMCIA 和 CF :5.红外线接口:6. ISA总线:7. PCI总线:8. SPI总线:9. PC104总线:10.CAN总线:

Page 22: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

冯 ·诺依曼体系结构模型指令寄存器

控制器

数据通道输入 输出

中央处理器

存储器

程序

指令 0指令 1指令 2指令 3指令 4

数据

数据 0数据 1数据 2

总线

几个重要概念

Page 23: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

冯 ·诺依曼体系的特点

1 )数据与指令都存储在同一存储区中,取指令与取数据利用同一数据总线。

2 )被早期大多数计算机所采用

3 ) ARM7—— 冯诺依曼体系

结构简单 , 但速度较慢。取指不能同时取数据。

Page 24: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

哈佛体系结构

指令寄存器

控制器

数据通道输入 输出

中央处理器

程序存储器

指令 0指令 1指令 2

数据存储器

数据 0数据 1数据 2

总线

总线

Page 25: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

哈佛体系结构的特点1 )程序存储器与数据存储器分开。2 )提供了较大的存储器带宽,各自有自己的总线。

3 )适合于数字信号处理 .

4 )大多数 DSP 都是哈佛结构 .

5 ) ARM9 是哈佛结构 取指和取数在同一周期进行。提高速度。改进的哈佛体系结构分成三个存储区:程序、数据、程序和数据共用。

Page 26: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

CISC 和 RISC

RISC 和 CISC 是目前设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,

ARM7冯诺依曼体系ARM9哈佛体系结构

Page 27: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

七 嵌入式系统的目标

四大类:• General Computing

– Applications similar to desktop computing, but in an embedded package– Video games, set top boxes, wearable computers, automatic tellers

• Control Systems– Closed loop feedback control of real time system– Vehicle engines, chemical processes, nuclear power, flight control

• Signal Processing– Computations involving large data streams– Radar, Sonar, video compression

• Communication & Networking– Switching and information transmission– Telephone system, Internet

为什么嵌入式系统千差万别呢?

Page 28: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

嵌入式系统需要具备什么知识?• Hardware

– I/O, memory, busses, devices, control logic, interfacing hardware to software

• Software

– Lots of C and assembly, device drivers, low level

OS issues, scheduling,

– Concurrency

• Software/Hardware interactions

– Where is the best place to put functionality hardware or software?(边界 )

– What are the costs:

• performance,

• memory requirements (RAM and/or ROM)

• Integration of hardware and software courses

– Programming, logic design, architecture,

– Algorithms, mathematics and common sense

• Application-level techniques– signal processing, control theory

Page 29: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

相关工作领域 :. Automotive systems

– perhaps designing and developing “drive-by-wire” systems• Telecommunications• Consumer electronics

– cellular phones, MP3 devices, integrated cellular/walkman/PDA/kitchen sink– Set-top boxes and HDTV– Home appliances– Internet appliances

• your washer will be on the internet more than you are!• Defense and weapon systems• Process control

– gasoline processing, chemical refinement• Automated manufacturing

– Supervisory Control and Data Acquisition (SCADA)• Space applications

– Satellite communications

Page 30: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

中国目前年产手机 2.5亿部,市场拥有手机 3 亿部 据有关资料显示,嵌入式产品市场约 1000亿美元 以嵌入式产品为核心的数码产品的设计、生产、批发、零售、售前、售

后服务需要大批经过严格训练的人才 根据对全国人才市场的估计,国内急需的嵌入式类型人才数百万人。 新加坡、香港、日本和欧美等国家,地区需要大量嵌入式人才和技术的

输出。

Page 31: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

九 我们的实验平台 - 2410-S开发平台

开发平台硬件资源开发平台外部连接开发平台硬件架构处理器资源占用情况开发平台软件资源

Page 32: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件资源

S3C2410核心板2410-S主板168管脚扩展卡PCMCIA/USB扩展模块

Page 33: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件资源 - S3C2410核心板

S3C2410 处理器64M SDRAM64M NAND FLASH200管脚精密插座

Page 34: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件资源 - 2410-S主板 基本系统:电源、复位、 RTC 时钟等 以太网:双 100M 自适应 AX88796 USB : 4 个 USB 1.1 HOST , 1 个 USB 1.1 DEVICE接口 UART : 2 个 RS232串口, 1 个 RS485/IrDA接口 LCD : 5 寸 256 色 STN LCD 或 8 寸 16bit TFT LCD ,预留 24bit

LCD接口 触摸屏:使用 ADS7843 或者直接使用 2410 内部 ADC 音频:使用 UDA1341 PS/2 和 17 键小键盘:使用 ATMEGA8单片机扩展 2 个 PS2接口和扫描键盘

LED : 8 只小数码管,使用 ZLG7290驱动 ADC :板载 3 个电位器和选择跳线,同时设有模拟电压输入专用接

口 CAN :使用 MCP2510 和 TJA1050 实现 1 个 CAN 接口

Page 35: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件资源 - 2410-S主板

IDE/CF卡插座:可连接笔记本硬盘和 CF卡 PCMCIA :由 CPLD 实现 PCMCIA 控制 SD卡插座 IC卡:由 ATMEGA8单片机扩展 168管脚插槽:包含所有总线信号和未使用资源 DAC :使用两个 10 位 DAC MAX504扩展 2 路模拟输出

DC/STEP电机

Page 36: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件资源 - 168管脚扩展卡

GPRS/GPSFPGACAN总线

Page 37: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件资源 - PCMCIA/USB扩展模块

PCMCIA :无线以太网等USB :蓝牙、摄像头等

Page 38: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台硬件架构:

可参考实验指导书

Page 39: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台外部连接 - 示意图

Page 40: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

交叉开发环境示意图

Page 41: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

开发平台外部连接 - 框图

以太网RS232USBCANRS485

Page 42: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

处理器资源占用情况  中断

BANK I/O 总线、地址

EXPORT

0、 1、9 3、 4

GPG13、 GPG14、GPG15 DATA/ADDR/CTRL/DMA

     GPC5、 GPC6、

GPC7 IIS/IIC/SPI/UART/TIMER

        CLKOUT/ADC/NAND CTRL

EtherNet1 2 2   基地址 0x10000200

EtherNet2 3 2   基地址 0x10000400

TouchScr 5   GPG12 SPI0

Audio    GPG8、 GPG9、

GPG10 IIS

PCMCIA 8 5    

LED       IIC

PS2/KEY

缺中断     IIC

IDE/CF 6 1   0x080000FF 以下SD 7     SD  BUS

DA    EXIO0、 1、 2、

3 SPI

CAN 4   GPH0 SPI

USBHUB       USB  HOST

RS485     GPH1 UART2可选直流电机     TOUT0、 TOUT1 转速计 TCLK1

步进电机    EXIO4、 5、 6、

7  EXIO   1   0x08000100

Page 43: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

软件资源:

• 提供 Linux 、 WINCE 、 UCOS-II 以及VxWorks操作系统

*移植完好的 Microwindows 、 QT图形用户界面

• ARM交叉编译连接工具 *ADS 、 Bootloader 、 GDB 、 Cygwin 、 DGBServer

提供了所有硬件驱动程序及实验程序源代码!

Page 44: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

嵌入式系统的调试方式

片上方式(包括 JTAG 方式和 BDM 方式):( 1 )实时在线仿真系统方式( ICE )( 2 )在线调试器方式 (ICD)

监控调试方式:( 3 )监控器方式

其他:( 4 )源程序模拟器方式( 5 )高级语言编译器。

Page 45: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

( 3 )监控器方式( Monitor 方式)

采用该方式时,主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,被调试程序下载到目标板上运行。监控程序是一段运行于目标机上的可执行程序,主要负责监控目标机上被调试程序的运行情况,与宿主机端的调试器一起完成对应用程序的调试。监控程序包含基本功能的启动代码,并完成必要的硬件初始化,等待宿主机的命令。被调试程序通过监控程序下载到目标机,就可以开始进行调试。监控器方式操作简单易行,功能强大,不需要专门的调试硬件,适用面广,能提高调试的效率。正因为以上原因,监控器方式广泛应用于嵌入式系统的开发之中。

监控器调试主要用于调试运行在目标机操作系统上的应用程序,不适宜用来调试目标操作系统。有的微处理器需要在目标板工作正常的前提下,事先烧制监控程序,而且功能有限,特别是硬件调试能力较差。

Page 46: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

监控器方式也称为 Monitor 方式:即在目标操作系统和调试器内分别添加一些功能模块,两者相互通信来实现调试功能。(调试器的大部分驻留在主机中,余下部分驻留在目标系统中,留在目标系统中的称为调试代理,或 monitor )

调试器与目标操作系统通过指定的通信端口并依据远程调试协议(如: Angel )来实现通信。

Page 47: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

( 4 )源程序模拟器( Simulator )方式

源程序模拟器是在通常广泛使用的人机接口完备的工作平台上,如小型机和 PC通过软件手段模拟执行某种嵌入式处理器内核编写的源程序测试工具。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,供程序员检查;高级的模拟器可以利用计算机的外部接口模拟出处理器的 I/O.电气信号。模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。

值得注意的是,模拟器毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响应、定时器等方面很可能与实际处理器有相当的差别。无法和 ICE 一样仿真嵌入式系统在应用系统中的实际执行情况。在嵌入式系统的调试中,调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写的源程序。

Page 48: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

(5) 高级语言编译器 C 语言作为一种通用的高级语言,大幅提高了嵌入式系统工程的工作效率,充分发挥出嵌入式处理器日益提高的性能,缩短产品进入市场时间。另外,C语言便于移植和修改,使产品的升级和继承更迅速。更重要的是,采用C语言编写的程序易于在不同的开发者之间进行交流,从而促进了嵌入式系统开发的产业化。

新型的微控制器指令速度不断提高,存储器空间也相应加大,已经达到甚至超过了目前的通用计算机中的微处理器,为嵌入式系统工程采用过去一直不敢问津的 C++ 语言创造了条件。针对嵌入式应用制订的可减小代码尺寸的 EC++标准保留了 C++ 的主要优点,提供对 C++ 的向上兼容性,并满足嵌入式系统设计的一些特殊要求。 C++ 和 EC++ 引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等之间在开发上的差别正在逐渐消除。

Java 语言本来就是为设备独立的嵌入式系统设计的,以提高程序继承性的语言。但目前基于 Java 的嵌入式开发工具代码生成长度要比嵌入式 C编译工具差 10倍以上。

Page 49: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

二、技能要求:嵌入式系统交叉开发环境的搭建 1 .交叉开发环境

通用计算机具有完善的开发软、硬件资源,可以直接在计算机上开发。嵌入式系统通常是一个资源受限的系统,本身不具备自主开发能力。比如:在嵌入式平台上编写软件比较困难,其上也无法运行编译器。况且,在软件开发的初期阶段,可能还没有具体的目标机硬件设备,即使有,也只是硬件电路,根本没有操作系统支持。目前采用的解决办法是:首先,在通用的 PC 机上编写好程序,然后,通过交叉编译器在 PC 机上生成在目标平台上可运行的二进制代码,最后在下载到目标平台的特定位置上运行。

Page 50: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

简化后的交叉开发环境图示:

所谓交叉开发环境,就是指编译、链接和调试嵌入式应用软件的环境,他与运行嵌入式应用软件的环境有所不同,通常采用“宿主机 +目标机”模式。如图所示:

Page 51: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

1 .交叉开发环境 宿主机:是一台用于执行编译、链接过程的通用 PC

机,他通过串口或者以太网接口与目标机通信。 目标机:是运行嵌入式软件的平台。它可以是嵌入式

软件的实际运行环境,也可以是替代实际运行环境的仿真系统。

所谓交叉编译器就是运行在一种计算机平台上为另一种平台产生代码的编译器。(原因在于:有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时是因为目的平台还没有建立,连操作系统都没有。)

嵌入式系统的交叉开发环境一般除包括有交叉编译器外,还要有交叉调试器和系统仿真器。交叉调试器和系统仿真器则用于在宿主机 /目标机间完成嵌入式软件调试。

Page 52: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

2 .使用集成开发环境进行软件开发的流程

编辑源代码:在 PC 机上用 C/ C++ 及汇编语言编制所需的嵌入式应用代码。

程序编译与链接:通过ADS/IAR编译器编译程序。

软件仿真调试:在 AXD中来仿真软件的运行情况。期间需通过JTAG 、 UART等任意一种当前目标板所支持的方式将程序下载到目标板上。

Page 53: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

使用集成开发环境进行软件开发的流程(续)

调试程序:将程序在 PC 机上进行编译和调试,下载到目标板上运行,程序运行结果反馈到 PC 机上。教学平台上,我们使用 AXD 和 UArmJtag调试监控程序配合完成调试(仿真调试)工作。

下载固化:如果程序无误,则将程序下载到真正的产品中,加工生产。

Page 54: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

3 . ARM ADS 集成开发工具及其组成

ADS(ARM Developer Suite) 是 ARM公司推出的新一代ARM 集成开发工具。最新版本是 ADS1.2 ,该版本支持包括 Windows 和 Linux 在内的多种操作系统。用户可以使用 ADS 为 ARM 处理器开发用 C 、 C++ 或 ARM汇编语言编写的程序代码,对代码进行编辑、编译和调试。有了 ADS ,用户可以查看到每一行代码在 ARM 处理器的执行结果。 CodeWarrior for ARM则是专为基于 ARM RISC 的处理器而设计的一套完整的集成开发工具,它可加速并简化基于 ARM 处理器的嵌入式应用系统的产品开发过程, CodeWarrior 集成开发环境 (IDE) 为管理和开发项目提供了简单、多样化的图形用户界面。该集成开发环境为用户提供了如下所示的软件开发工具。

( 1 ) ADS 集成开发工具

Page 55: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

( 2 ) ADS 集成开发工具的组成

命令行开发工具ARM图形开发工具实用工具支持软件

Page 56: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

命令行开发工具 编译器:

•armcc/ armcpp : ARM 的 C/ C++编译器,用户可通过命令行中的操作选项来控制编译器的执行;

•armasm :用于对汇编语言写的源代码进行汇编。 链接器:

•armlink : ARM 的链接器,可以将编译得到的一个或多个目标文件及相关的库文件进行链接,合并成一个目标文件。

调试器: •armsd : ARM 以及 Thumb 的符号调试器( ARM Symbolic

Debugger ),支持源码级的程序调试,可以在用 C 或汇编语言写的代码中进行单步调试、设断点以及检查变量或内存的内容。

运行时库: •ANSI C库; •ARM C++库。

Page 57: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

ARM 的图形开发工具 •AXD : Windows 以及 Unix 下的 ARM 扩展调试器

( ARM eXtended Debugger ),提供了完整调试C 、 C++ 以及汇编语言的 Windows 以及 Unix 下的环境。 AXD 是 ARM 公司的软件仿真器(只能仿真正确性,无法仿真与时序有关的错误)

•ADW/ADU : Windows/ Unix 下的 ARM 调试器; •CodeWarrior IDE : Windows 下的项目管理工具 , 能够让用户将源代码文件、库文件还有其他相关的文件以及配置设置等放在一个工程中。每个工程可以创建和管理生成目标设置的多个配置。为用户提供了源代码编辑、浏览、查找与替换以及文件比较等功能。

Page 58: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

实用工具 •fromELF :为 ARM 映像文件转换工具,可以将

ELF 格式的文件转换成各种输出格式的文件。如:plain binary(BIN 格式文件 ) (示例: system.bin )或Verilog-like hex format(Verilog 16 进制文件 )等;

•armar :将 ELF 格式的文件收集在库中; •Flash downloader :用于将二进制映像文件下

载到 ARM开发板的 FLASH 中。如: vivi>load flash ucos x

Page 59: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

支持软件

•ARMulator : ARM 内核的仿真软件,提供了对指令的精确仿真,和 ARM 的调试器AXD 集成在一起;

•Angel :是调试时所使用的通信协议名,也是 ARM调试中目标机端的监控程序,只需通过 RS-232C串口或 USB 口与 PC主机相连,就可以对 ARM 、 Thumb代码的应用程序进行监控方式的调试。

Page 60: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

交叉开发方式:

Page 61: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

交叉开发方式( Liniux ):

Page 62: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

案例 1 . ADS 1.2 的安装 如同在 Windows 上安装其他软件那样,双击 setup.exe开始

安装 ADS1.2 ,依次点击 "Next" 。 "YES" 按钮,选择安装路径,然后连续点击几次 "Next" 按钮即开始文件复制。

文件复制完成后,点击 "YES" 、 " 确定 " 按钮,即可进入ARM License Wizard窗口,安装 License 。点击 " 下一步 " 、 " 下一步 " 按钮,进入 Install License页,点击 "Browse..." 按钮 ,选取源安装目录下的 Crack\License.dat文件,确定后再按照提示进入下一步,直到安装完毕。

若在安装 ADS1.2 时没有安装 License ,则可通过 "开始 "->" 程序 "->"ARM Developer Suite v1.2"->"License installation Wizard"打开 ARM License Wizard窗口,安装License 。(本处以 WINxp 为例 )

Page 63: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

案例 2 . ADS 集成开发环境的使用在本案例中使用 ADS 集成开发环境,通过一个

具体的实例,为读者介绍如何使用 ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。学习 ARM 仿真器的使用和开发环境的设置。学会如何进行编译链接、生成包含调试信息的映像文件和可以直接烧写到 Flash 中的 .bin 格式的二进制可执行目标文件( system.bin ),并下载已经编译好的文件到嵌入式控制器中运行。通过在程序中设置断点,观察系统内存和变量,来调试应用程序。

Page 64: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

案例 2 . ADS 集成开发环境的使用(示例)

( 1 )新建工程:( 2 )配置新建工程:① ~⑨( 3 )添加文件,完成编译与

链接,并生成目标文件:

Page 65: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

案例 3 .其它工具的使用 ( 1 )仿真器的连接与使用 :

1 )配置 JTAG 仿真器(安装 UArmJtag驱动程序)

2 ) AXD 调试器介绍 ( 2 )超级终端的设置及映像下载( FLASH 芯片的烧录)

1 )超级终端设置2 )映象文件下载3 )数据文件下载

( 3 ) Source Insight 代码编辑器的使用1 ) ~ 4 )

Page 66: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

嵌入式操作系统概述

(含C 语言强化)

Page 67: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

实时操作系统 C/OS-Ⅱ分析

Page 68: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

RTOS 在嵌入式系统中的位置

嵌入式硬件平台

BSP

KERNEL

FS

TCP/IP

设备驱动 设备 I/O调试工具

其它组件

应用

RTOS

C/C++

Page 69: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

µC/OS-II图书

描述了 µC/OS-II内部的工作原理随书的 CD中包含了源代码

工业界最清晰的源代码除英文版外,有中文和韩文版

Chinese KoreanEnglish

ISBN 1-57820-103-9美国 CMP BOOK

ISBN 7-81077-290-2北京航空航天大学出版社

ISBN 89-951540-5-5

Page 70: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库

µC/OS-II 的各种商业应用 全世界有数百种产品在应

用 : Avionics Medical Cell phones Routers and switches High-end audio equipment Washing machines and dryers UPS (Uninterruptible Power Supplies) Industrial controllers GPS Navigation Systems Microwave Radios Instrumentation Point-of-sale terminals更多

Page 71: 学习情境一 嵌入式系统概述 (续)

嵌入式技术与应用专业教学资源库