收藏 分享(赏)

第2章 嵌入式开发的概念与流程.ppt

上传人:Facebook 文档编号:2234546 上传时间:2018-09-06 格式:PPT 页数:85 大小:4.62MB
下载 相关 举报
第2章 嵌入式开发的概念与流程.ppt_第1页
第1页 / 共85页
第2章 嵌入式开发的概念与流程.ppt_第2页
第2页 / 共85页
第2章 嵌入式开发的概念与流程.ppt_第3页
第3页 / 共85页
第2章 嵌入式开发的概念与流程.ppt_第4页
第4页 / 共85页
第2章 嵌入式开发的概念与流程.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

1、嵌入式系统 第二章 嵌入式开发的概念与流程河南科技大学 吴贵芳,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式软件开发流程,嵌入式软件开发调试,5,嵌入式系统实例,冯诺依曼体系结构和哈佛体系结构 CISC与RISC 通用处理器 IP 核,嵌入式系统硬件基础,冯诺依曼体系结构模型(普雷斯顿结构),指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,哈佛体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,

2、地址,指令,地址,数据,Two Memory Architectures,Princeton Fewer memory wires Harvard Simultaneous program and data memory access,CISC和RISC,CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。,RISC:精简指令集(Reduced Instruction Set Computer) 只实现使用频率最高的指令 确保快速高效的执行每一条指令

3、 处理器硬件结构设计更简单,RISC基本设计思想,减小CPI: CPUtime=Instr_Count * CPI * Clock_cycle 精简指令集:保留最基本的,去掉复杂、使用频度不高的指令 采用Load/Store结构,有助于减少指令格式,统一存储器访问方式 采用硬接线控制代替微程序控制,典型的高性能RISC处理器,SUN公司的SPARC(1987) MIPS公司的SGI:MIPS(1986) HP公司的PA-RISC, IBM, Motorola公司的PowerPC DEC、Compac公司的Alpha AXP IBM的RS6000(1990)第一台Superscalar RISC

4、机 绝大部分嵌入式处理器均为RISC型处理器,常见的嵌入式处理器结构,知识产权核(IP核, intellectual property),知识产权(IP):电路或核是设计好并经过验证的集成电路功能单元 IP复用意味着设计代价降低(时间,价格) IP核的类别: 微处理器微处理器: ARM, PowerPC; 存储器存储器: RAM, memory controller; 外设: PCI, DMA controller; 多媒体处理: MPEG/JPEG ; encoder/decoder ; 数字信号处理器(DSP) 通信: Ethernet controller, router,IP核的种类,

5、Soft Cores(“code”)(软核) HDL语言描述 经过RTL级设计优化和功能验证 不包含任何物理信息 灵活度高,可修改,通过EDA综合工具很容易与其他外部电路融合 与工艺独立,可根据具体的加工工艺重新综合; 缺乏对时序、面积和功耗的预见性 IP很难保护 Hard cores(“physical”)(硬核) 是基于半导体的物理设计,已有固定的拓扑布局和具体的工艺 提供的是电路物理结构掩膜版图和全套工艺文件 易于实现IP保护 灵活性和可移植性差 多数的处理器和存储器,IP核的种类,Firm cores(“code+structure”)(固核) 介于软核和硬核之间 完成了门级电路综合和

6、时序仿真等 以门级电路网表形式提供给用户,固化宏单元(硬核) ARM920T ARM7TDMI ARM720T ARM1022E,可综合内核(软核) ARM926EJ-S ARM7TDMI-S ARM1026EJ-S,测试芯片 ARM10200E,IP核的商业模型,三种模式 一、设计者提供设计和工具的许可证 DSP Group (Pine and Oak Cores), 3Soft, ARM 提供包括HDL在内的模拟模型,工具或仿真器 使用者负责设计制造 二、核厂商设计并制造集成电路芯片 TI, Motorola, Lucent VLSI, SSI, Cirrus, Adaptec 三、核厂商

7、卖核, 负责为客户设计并制造芯片 LSI logic, TI, Lucent,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式软件开发流程,嵌入式软件开发调试,5,嵌入式系统实例,嵌入式软件体系结构,无操作系统的情形 嵌入式系统发展初期,由于硬件的配置比较低,从而没有足够的资源运行操作系统。 嵌入式软件主要是以应用为核心,应用软件直接建立在硬件上。 对于特别简单的嵌入式应用,也无需操作系统,无操作系统的情形,循环轮询系统(Polling Loop): 最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理。 缺点:过于简单,缺乏时间控制机制,如定

8、时。 Initialize(); while(1)if(condition_1) action_1();if(condition_2) action_2();if(condition_n) acition_n(); ,事件驱动系统(Event-Driven system) : 事件驱动系统是能对外部事件直接响应的系统,是嵌入式实时系统的主要形式。 应用程序是一个无限循环,循环中调用相应的函数完成相应操作,这部分可以看成后台行为(background)。 中断服务程序处理异步事件,这部分可看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。,很多基于微处理器的产品采用前

9、后台系统设计。 如微波炉、电话机、玩具等。 从省电的角度出发,平时微处理器处在待机状态,所有的事都靠中断服务来完成。,前后台系统,前后台系统(后台循环、前台中断),ISR,ISR,后台 前台,时间,有操作系统的情形,硬件,板级 初始化,设备 驱动层,以太网 驱动,串口 驱动,LCD 驱动,键盘 驱动,操作 系统层,中间件 层,应用 软件层,TCP/IP 网络系统,文件 系统,内核,嵌入式 GUI,嵌入式 CORBA,嵌入式 JAVA,嵌入式 DCOM,面向领域 的中间件,WWW 浏览器,MP3 播放器,电子 邮件,为什么要有设备驱动程序? 嵌入式硬件设备需要软件来驱动,并且为操作系统和应用程序

10、提供与硬件无关的接口。 什么是设备驱动程序? 直接与硬件打交道、对硬件进行控制和管理的软件。 在一个嵌入式系统中,设备驱动程序是必不可少的。也是从事嵌入式系统设计的程序员的主要工作之一。,设备驱动程序,设备驱动程序的主要功能,硬件启动(Startup):在开机上电或重启的时,完成对硬件的初始化; 硬件关闭(Shutdown):把硬件配置成关闭状态; 硬件停用(Disable):暂停使用硬件; 硬件启用(Enable):重新启用硬件; 硬件读操作(Read):从硬件中读取数据; 硬件写操作(Write):往硬件中写数据; ,嵌入式中间件,中间件(Middleware):在OS内核、设备驱动程序和

11、应用软件之外的所有系统软件; 中间件的基本思路:把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在其上的各个应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台; 优点:实现软件的可重用,降低应用软件的复杂性,降低开发成本。,嵌入式软件的目标,函数必须正确; 源代码简洁、可读性好、可维护; 实时性要求较高的代码能够运行得足够快; 目标代码小且高效。 总之,要优化对以下三种资源的使用:执行时间、存储空间、开发/维护时间。,数据类型与运算符,宏定义:用一个指定标识符来代表一个字符串。#define 标识符 字符串 如:#define PI 3.141592

12、6,其作用是指定用标识符PI来代替“3.1415926”这个字符串。在编译预处理时,将程序中出现的所有PI都用“3.1415926”代替。,(1)宏定义,宏定义:一次定义,多次使用。其优点主要是: 减少输入的字符数; 用易于理解的标识符来替代抽象晦涩的数据,便于程序的理解和维护; 有利于程序的修改和升级; 方便程序的移植,不用 此法,一次 定义,多次 使用,#define U32 unsigned int #define U16 unsigned short #define S32 int #define S16 short int#define _MMUTT_STARTADDRESS 0x3

13、3ff8000 #define _STACK_BASEADDRESS 0x33ff8000#define rPRIORITY (*(volatile unsigned *)0x4a00000c) /IRQ priority control #define rINTPND (*(volatile unsigned *)0x4a000010) /Interrupt request status,(2)const常量,常量数据:整数(12)、字符(a)、 字符串(“hello”)和实数(3.14)等;以变量的形式来定义的一个量,并且通 过使用关键字const,来表明这个变量的 值不能被改变。如:co

14、nst int x = 1。,(3)算术运算,整数的算术运算 最快 带有硬件支持的浮点运算 较慢 用软件来实现的浮点运算 非常慢, 快 sin, log, sqrt, etc 慢,实验平台:400MHz Intel PXA250 Xscale(ARM)处理器 Operator Time Operator Time + (int) 1 + (double) 140 * (int) 1 * (double) 110 / (int) 7 / (double) 220 (int) 1 sin 3300,RISC和CISC指令周期对比,实验平台:桌面Intel Pentium4,带硬件浮点支持 Oper

15、ator Time Operator Time + (int) 1 + (double) 5 * (int) 5 * (double) 5 / (int) 12 / (double) 10 (int) 2 sin 48,结论: 尽量使用整数(char、short、int和long)的加法和减法; 如果没有硬件支持,尽量避免使用乘法; 尽量避免使用除法; 如果没有硬件支持,尽量避免使用浮点数; 数学库函数使用得越少越好。,(4)位运算,C语言有很多位操作运算符: & 与操作; | 或操作; 异或操作; 取反操作; 右移操作; 左移操作。,a |= 0x4 b &= 0x4 c &= (1 = 2

16、,/ 把第2位设置为1,/ 把第2位设置为0,/ 把第3位设置为0,/ 把第5位反转,/ 把 e 除以4,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式软件开发流程,嵌入式软件开发调试,5,嵌入式系统实例,嵌入式软件开发的特点,嵌入式系统与通用计算机系统的软件开发的差别:人机交互界面 有限的资源 专用的功能 时间关键性和稳定性,嵌入式软件开发的特点: 需要交叉开发环境:交叉开发环境是指实现编译、链接和调试应用程序代码的环境。宿主机(Host)是一台通用计算机,一般是PC机。通过网络、串口等连接方式与目标机通信。目标机(Target) 嵌入式目标程序的实际运行环境。,嵌

17、入式软件开发的特点: 引入任务设计方法 需要固化程序 软件开发难度大 嵌入式应用软件对实时性、稳定性、可靠性、抗干扰性等性能的要求都比通用软件的要求更为严格和苛刻。,嵌入式系统开发的流程:,嵌入式软件的开发流程与通用软件的开发流程大同小异。整个开发流程可分为:需求分析阶段 设计阶段 生成代码阶段 固化阶段,需求分析阶段,嵌入式系统应用需求中最为突出的是注重应用的时效性,需求分析阶段的主要任务是: (1)对实际需求的识别和分析 (2)制订规格说明文档 (3)需求评审,设计阶段,系统的设计阶段包括系统总体设计、任务设计和详细实现。DARTS设计方法:是结构化分析/结构化设计的扩展。它给出划分任务的

18、方法,并提供定义任务间接口的机制。DARTS设计方法的设计步骤如下:(1)数据流分析 (2)划分任务 (3)定义任务间的接口,生成代码阶段,生成代码阶段需要完成的工作包括代码编程、交叉编译和链接、交叉调试和测试等。,Software Development Process,Compilers Cross compiler Runs on one processor, but generates code for another Assemblers Linkers Debuggers Profilers,生成代码阶段,在嵌入式系统的开发过程中,一般采用的方法是先在通用PC上编程。 再通过交叉编

19、译链接,将程序做成目标平台上可以运行的二进制代码格式。 最后将程序下载到目标平台上的特定位置,在目标板上启动运行这段二进制代码。,Development processor,Target processor,生成代码阶段,生成代码阶段,交叉调试:又叫远程调试,调试器和被调试的程序运行在不同的机器上。调试器运行在PC或工作站上,而被调试程序运行在各式的专用目标机上; 软件测试:嵌入式系统开发的测试与通用软件的测试相似,分为单元测试和系统集成测试。,固化阶段,嵌入式系统的应用软件是针对特定的实际专业领域的,运行于相应的嵌入式硬件平台之上。 最终所有的嵌入式操作系统和应用程序以及驱动程序都要固化在嵌

20、入式设备的ROM或FLASH芯片中。 目前已经出现可以在线动态升级的嵌入式产品。,总结:嵌入式软件开发的要点,嵌入式应用软件高度依赖目标应用的软硬件环境。 软件的部分底层任务功能由汇编语言完成,具有高度的不可移植性(效率和实时性)。 可提高嵌入式应用软件的可移植性方法:(1)尽量用高级语言开发,少用汇编语言(2)局域化不可移植部分(3)提高软件的可重用性,嵌入式C程序设计,“which of the following programming languages have you used for embedded systems in the last 12 months”C 81% Ass

21、embly 70% C+ 39% Visual Basic 16% Java 7% Source: “ESP: A 10-year retrospective”, Embedded Systems Programming, November, 1998,嵌入式软件开发流程,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式软件开发流程,嵌入式软件开发调试,5,嵌入式系统实例,嵌入式系统的开发设计与调试,设计,生产,IDE,评估板,仿真器,逻辑分析仪,边界扫描测试仪,编程器,嵌入式开发环境,编译器/汇编器/链接定位器 调试器/仿真器 主机(Host)及其工作平台 实时操作系

22、统(可选) 目标评估系统(可选) 测试工具(软件/硬件/协议等,可选) 其他辅助设备(可选),嵌入式开发环境,源程序,目标文件,可重定位程序,可执行文件,Testing and Debugging,ISS Gives us control over time set breakpoints, look at register values, set values, step-by-step execution, . But, doesnt interact with real environment Download to board Use device programmer Runs in

23、 real environment, but not controllable Compromise: emulator Runs in real environment, at speed or near Supports some controllability from the PC,ARM的编译器(1),ADS1.2 ARM公司出品 IDE环境,包括 ARM/Thumb汇编器:armasm ANSI C 编译器 - armcc 和 tcc ISO / Embedded C+ 编译器 - armcpp and tcpp 链接器 armlink Windows 集成开发环境 CodeWar

24、rior 格式转换器 fromelf 库管理器 - armar 调试器 模拟调试器:ARMulator JTAG调试:AXD(与Multi-ICE配合) 支持所有ARM内核,最新版本:RealView2.0,嵌入式系统的调试(1),嵌入式系统的开发平台和运行平台不同,因此调试程序需要采用特殊的方式。嵌入式系统的调试主要有四种方法: 模拟调试(Simulator) 软件调试(Debugger) BDM/JTAG调试(BDM/JTAG Debugger) 全仿真调试(Emulator),嵌入式系统的调试(2),模拟调试(Simulator)调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个

25、模拟的目标运行环境,可以进行语法和逻辑上的调试。 优点:简单方便,不需要目标板,成本低 缺点:功能非常有限,无法实时调试 大多数调试工具都提供Simulator功能,嵌入式系统的调试(2),嵌入式系统的调试(2),嵌入式系统的调试(3),软件调试(Debugger)主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,待调试软件下载到目标板上运行。这种方式的先决条件是要在Host和Target之间建立起通信联系(目标板上称为监控程序Monitor) 优点:纯软件,价格较低,简单,软件调试能力较强 缺点:需要事先烧制Monitor(往往需多次试验才能成功)且目标板工作正常,功能有限,特

26、别是硬件调试能力较差。,PC,Target,Monitor,串口,嵌入式系统的调试(4),BDM/JTAG调试:调试用的硬件调试体与目标板通过BDM、JTAG等调试接口相连,与主机通过串口、并口、网口或USB口相连。待调试软件通过BDM/JTAG调试器下载到目标板上运行。 优点:方便、简单,无须制作Monitor,软硬件均可调试 缺点:需要目标板,且目标板工作基本正常(至少MCU工作正常),仅适用于有调试接口的芯片,Target,PC,接口,BDM/JTAGDebugger,嵌入式系统的调试(5),全仿真调试(Emulator):用仿真器完全取代目标板上的MCU,因而目标系统对开发者来说完全是

27、透明的、可控的。 仿真器与目标板通过仿真头连接,与主机有串口、并口、网口或USB口等连接方式。 优点:功能非常强大,软硬件均可做到完全实时在线调试。 缺点:价格昂贵。,ARM的调试方式,模拟调试 SDT2.52: ARMulator ADS1.2:ARMulator Trace32:Simulator EW-ARM:C-spy 软件调试 ADS1.2:Angel(串口) SDT2.52 Angel(串口) JTAG调试 ARM:Multi-ICE,简易型仿真器 Trace32-ICD for ARM Hitex:Tanto for ARM 全仿真调试 Trace32-FIRE/ICE,ARM调

28、试工具,Multi-ICE ARM公司出品 与ADS配套使用 支持不同的ARM内核 另有Multi-trace模块可选,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式软件开发流程,嵌入式软件开发调试,5,嵌入式系统实例,视频监控结构框图,视频监控硬件结构图,嵌入式计算机举例,视频监控产品参数,视频监控产品参数,视频监控产品参数,苹果公司的手机iPhone 4,2010年6月8日凌晨,苹果在美国正式发布了iPhone 4(网购最低价 5500元)。 乔布斯称为“这个星球最薄的智能手机”。 简明参数:,SIM卡:和iPad一样,使用mini SIM卡槽 屏幕参数:3.5英

29、寸640960像素IPS屏幕 摄像头:500万像素,支持LED闪光灯 视频通话“前置摄像头/支持,苹果公司的手机iPhone 4,视频拍摄:可拍摄每秒30帧720P高清视频 处理器:苹果A4处理器1GHz ARM11处理器 系统内存:256MB 存储空间:最高64GB GPS:支持 网络制式:支持WCDMA 机身规格:厚9.3毫米,不锈钢外壳 续航能力:3G通话最长7小时 3G上网最长6小时 Wi-Fi上网最长10小时 视频播放最长10小时 音乐播放40小时 待机最长300小时,苹果公司的手机iPhone 4,苹果公司的手机iPhone 4,苹果公司的手机iPhone 4,多普达838手机,多普达838手机,多普达838手机,多普达838手机,多普达838手机,多普达838文档,思考: 问题一:PC机上的病毒是否可在MP3、手机之类的嵌入式系统上运行? 问题二:对比基于PC机的视频监控和基于嵌入式的视频监控系统的优缺点。 问题三:公交车上的IC卡读卡器由哪几部分构成?各部分的功能是什么?,谢 谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报