2010-第1章嵌入式概述-01.ppt_第1页
2010-第1章嵌入式概述-01.ppt_第2页
2010-第1章嵌入式概述-01.ppt_第3页
2010-第1章嵌入式概述-01.ppt_第4页
2010-第1章嵌入式概述-01.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

曲凤娟,1,嵌入式系统基础,李建义 Email: 公共邮箱: student_ 密码 : student_ljy,The future is Embedded, embedded is the future,2,课程简介,总学时48学时,其中实验12学时(6次),1-12周。 课程性质:考试课 实验安排:实验分三组进行。 第一组:1班+2班=43人 第二组:3班+5班=43人 第三组:4班+6班=42人 每个班选一个嵌入式基础组长(课代表) 答疑时间:每周三下午4:00-5:30,周四2:00-4:00 地点:计算机应用教研室、科研室、嵌入式机房,3,课程目标,理解Arm体系结构 熟悉Arm集成开发环境:ADS1.2 掌握Arm系统编程技术(C语言与汇编语言的互相调用) 熟悉S3C2440微处理器,学会阅读数据手册。 熟悉S3C2440的外围接口:存储器、I/O接口、串口编程、中断、定时器、LCD控制器等。 后续课程:嵌入式操作系统、嵌入式应用程序开发,4,参考资料,范圣一,ARM原理与嵌入式系统实战,机械工业出版社 ARM体系结构与编程,杜春雷,清华大学出版社 ARM应用系统开发详解,李驹光 Arm公司电子手册 ARM Architecture Reference Manual ARM Program Tecgniques ARM ADS随带各种手册 /documentation/,5,第1章 概述,1.1 嵌入式系统简介 1.2 嵌入式系统组成 1.3 嵌入式系统与PC机 1.4 嵌入式系统研发过程及ADS开发环境 小结,6,1.1 嵌入式系统简介,1. 嵌入式系统的定义 2. 嵌入式系统的特点 3. 嵌入式系统的应用,7,1.1.1 嵌入式系统的定义,1.“嵌入式系统”的全称应为“嵌入式计算机系统” 2.“嵌入”是指将一物“置入”另一物中 3. “嵌入式系统”是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,8,后PC时代-丰富的嵌入式产品市场,9,典型例子 手机,10,典型例子 PDA,11,1.1.2 嵌入式系统的特点,1.嵌入式系统通常是面向特定应用的 2.技术密集、资金密集、高度分散、不断创新的知识集成系统 3.硬件和软件都必须高效率地设计 4.产品一旦进入市场,具有较长的生命周期 5.软件一般都固化,12,1.1.2 嵌入式系统的特点,6.不具备自举开发能力,需要开发工具和交叉开发环境 硬件开发工具:仿真器等 ;其它(示波器等)。 软件开发工具:编译、连接、定位软件;常使用C语言;调试软件。,13,1.1.3 嵌入式系统的应用,包括工业控制、交通管理、信息家电、家庭智能管理系统及电子商务、环境监测和机器人。 ARM技术的IP核在下列领域已取得了很大成功: 无线设备无线设备(手机等)和PDA一类的无线设备中都采用了嵌入式技术。 消费电子在数字音频播放器、数字机顶盒和游戏机等应用广泛。 汽车包括驾驶、安全和车载娱乐等各种功能在内的设备采用五、六个微处理器统一实现。 家用方面数字电视、信息家电、智能玩具、手持通讯、存储设备的核心。,14,嵌入式系统的应用领域示意图,嵌入式应用,信息家电,智能玩具,军事电子,通信设备,移动存贮,工控设备,智能仪表,汽车电子,网络设备,消费电子,军事国防,电子商务,网络,工业控制,goReader Internet eBook,Samsung AnyWeb Internet Screen Phone,eRemote Intelligent Home Controller,Tektronix TDS7000 Digital Oscilloscopes,Nixvue Digital Album Digital Photo Album,一些典型的嵌入式系统应用实例,16,家用方面:数字电视、信息家电、智能玩具、手持通讯、存储设备的核心。,16,17,家庭智能管理系统:社区建筑的水、电、煤气表的远程自动抄表,安全防火、防盗系统,远程点菜器等。,17,18,社会发展方面:嵌入式Internet应用,18,19,汽车电子产品(18个嵌入式控制模块)CAN总线网络,VOLVO S80汽车的CAN总线网络,嵌入式应用汽车电子,19,20,2002年11月28日,以色列一选举投票点,发生枪击事件,造成至少7人死亡,数十人受伤。以警方用机器人在检查一具巴勒斯坦枪手的尸体。,反恐防暴,21,嵌入式系统的应用举例,嵌入式系统的应用举例,21,22,事实上,嵌入式技术无处不在,计算机技术也开始进入一个被称为后PC技术的春天。 嵌入式系统虽然是未来计算机科学的最重要成员,但它并不能作为通用计算机的替代物。原因就是它的专用性。比如资源有限(存储能力、运算能力和I/O资源),没有非常友好的人机交互界面等。,23,1.2 嵌入式系统组成,1.硬件组成 2.软件组成 3.举例,24,存储器,嵌入式处理器,外围接口,输出设备,软件,输入设备,主要有LCD 显示和语音输出,硬件单元,按存储信息的功能可分为只读存储器ROM(Read Only Memory)和随机存储器RAM(Random Access Memory),主要有GPIO、串口、I2C总线、USB总线和IEEE 1394总线等等,硬件组成 (1)硬件模块及功能,是嵌入式系统的核心,负责控制整个系统的执行。可以是微处理器、微控制器、DSP处理器、专用处理器、SOC,嵌入式系统中的输入形式一般包括触摸屏、语音输入、按键和虚拟键盘,包括嵌入式操作系统、应用软件,25,26,(2)常用嵌入式处理器,ARM PowerPC MIPS Xscale DSP X86,27,2.软件组成 (1)软件层次与功能,位于操作系统和应用软件之间,屏蔽了各种操作系统提供不同应用程序接口的事实,向应用程序提供统一的接口,从而便于用户开发应用程序,同时也使应用程序具有跨平台的特性。,有时也叫板级支持包,是一个介于硬件与软件之间的中间层次。硬件抽象层通过特定的上层接口与操作系统进行交互,向操作系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作,支持嵌入式系统应用的操作系统软件, 是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等,运行于操作系统之上,利用操作系统提供的机制完成特定功能,因系统不同而不同,是整个系统功能的体现。一个嵌入式系统可简单到没有支撑软件,甚至没有操作系统,但却不能没有应用软件,否则它就不能成为一个系统。,28,(2)常见的嵌入式操作系统,LINUX: 开源,由很多体积小性能高的微内核系统组成;网络功能强大,支持多文件系统;硬件支持广泛;非实时;占用较多存储器;图形界面和集成开发环境有待提高 WINCE: 部分开源,良好的图形界面。多线程,多任务,内核200KB以上,非实时 uCOSII:实时,可移植、可固化、可裁剪、可剥夺型多任务内核。,29,VxWorks: 实时,可靠性高,系统开销小,系统共用程序精炼有效,延迟很短。使用最广,支持多种处理器,大多数API专有。 Nucleus: 实时,购买Licenses得源码,免产品版税,不用写BSP。 QNX:实时,30,3.嵌入式系统组成举例,(1)交通灯模拟系统 硬件系统:嵌入式处理器存储器LED接口 软件系统:硬件初始化程序交通灯应用程序 (2)远程监控系统 硬件系统:嵌入式处理器存储器语音模块各类传感器GPRS模块报警装置接口 软件系统:引导程序嵌入式操作系统内核文件系统各个应用程序,1.3 嵌入式系统与PC机,1.硬件,2.软件,33,3.嵌入式软件开发与PC机软件开发的差异,程序编译和执行处于不同的两个平台 输入及输出界面不同 可利用的资源有限 经常与硬件打交道,34,问题:如何设计嵌入式系统?,如何选择硬件? 选择多快的CPU?多大的内存? 如何满足任务的实时性要求? 通过更快的硬件还是改善软件?成本如何估算? 如何最小化功耗需求? 关掉不必要的逻辑单元?减少内存访问的次数? 设计出的产品是否可以正常工作? 需求规定是否正确? 实现是否满足需求规定? 如何测试满足实时性要求?,35,1.4 嵌入式系统研发过程及ADS开发环境,1.嵌入式系统设计方法 2.嵌入式系统开发基础流程 3.ADS开发环境,36,1.4.1 嵌入式系统设计方法,需求 功能要求:作为输入输出的函数 非功能要求 性能、成本、功耗 物理尺寸 规格说明(做什么) 需求细化 概念性规格说明 详细的规格说明 体系结构设计(如何做) 软硬件构件 系统集成,37,1.4.2 系统开发基础流程(1),第一步:功能与需求分析 确定整个系统功能和构架 根据需求选择所需软、硬件平台 第二步:设计硬件平台 芯片选择 原理图制作 PCB制作、电路板焊接 第三步:开发环境选择 开发平台、编译器、连接器、定位器或是由软件厂商提供的整合开发环境 (IDE) 其他问题,如: 宿主机与目标机连接通讯(一般是RS232) 镜像文件(image)下载,C,编译器,目的文件,连接器,可重定位器程序,定位器,可执行文件,C,编译器,目的文件,目的文件,编译器,汇编语言,编译器:交叉编译器(Cross Compiler),定位器:重新定位(Relocation),39,1.4.2 系统开发基础流程(2),第四步:软件开发 嵌入式开发环境的搭建 嵌入式操作系统的选择 BootLoader的编写 操作系统的移植 文件系统的移植 驱动程序编写 应用程序编写,40,1.4.2 系统开发基础流程(3),第五步:调试,除错(debug) 嵌入式系统的调试较复杂 目标机通常没有很好的显示或输出能力,不是直接在目标机上写程序 一般来说还要由除错硬件(逻辑分析仪,ICE)来进行,硬件昂贵 如果没有很好的除错环境,只能依靠人力和经验来作测试 第六步:烧写程序,41,附: 交叉开发在通用计算机(宿主机)上编辑、编译程序,生成目标平台(目标机)上可运行的二进制代码格式指令,最后再下载到目标平台上运行调试的开发方式。,42,交叉开发示意图,43,1.4.3 ADS开发环境,一、安装ADS1.2 1. 运行ADS1.2下的setup.exe. 2. 运行到选择setup type时,选择custom- Next-Select Components 对话框. 3. 在Select Components 对话框下,取消Application Library选项. 4. 做完上述设置后,一直按Next或,一直到ARM License Wizard 对话框,选择Cancel键 - Finish ,完成安装. 5.最后Copy license.dat 文件. 将Licence_ads1.2下的license.dat文件Copy到安装目录下的licenses子目录下。,44,二、ARM Developer Suite 介 绍,ADS1.2发布于2001的12月份,是为嵌入式ARM设计的一整套软件开发工具 从最初的软件原型到最终优化的ROM代码。 支持的主机系统 IBM compatible PCs with Windows 95, 98, 2000, ME or NT4 Sun workstations with Solaris 2.6, 2.7 or 2.8 HP workstations with HPUX 10.20, 11 Red Hat Linux 6.2 & 7.1,45,1. ADS开发环境介绍,支持最新的ARM内核 支持V5TEJ体系结构 ARM926EJ-S, ARM9EJ-S, VFPv2 ARMulator仿真执行Java bytecode Bytecode显示 Jazelle 状态 主机系统可支持Red Hat Linux (6.2 and 7.1) 库管理器可合并各种库 译器同时输出汇编码和目标码,46,1. ADS开发环境介绍,ANSI C 编译器 - armcc and tcc ISO / Embedded C+ 编译器 - armcpp and tcpp ARM / Thumb 汇编器 - armasm Linker - armlink Windows 集成开发环境 - CodeWarrior Debugger - AXD 格式转换器 - fromelf,47,1. ADS开发环境介绍,库管理器 - armar C and C+ 库 指令级仿真 - ARMulator 同时包含 ARM Firmware Suite ARM Application Library RealMonitor,48,2. 使用ADS建立工程,运行ADS1.2集成开发环境。选择FileNew菜单,在对话框中选择Project,如图11所示,新建一个工程文件。图中示例的工程名为Exp6.mcp。点set按钮可为该工程选择路径如图所示,选中CreatFolder选项后将以图12中的ProjectName或图中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。 若设置模板,则在图11中工程模板列表中会列出。也可选择ARM Executable Image通用模板。,49,图11,50,2. 使用ADS建立工程,图12,51,2. 使用ADS建立工程,在新建的工程中,如图1-3所示,选择Debug版本,使用Edit | Debug Settings菜单对Debug版本进行参数设置。,图13,52,2. 使用ADS建立工程,在Debug Settings对话框中选择Target Settings项,如图1-4所示。在Post-linker一栏中选择ARM fromELF。,图14,53,2. 使用ADS建立工程,对于2440,在Debug Settings对话框中选择ARM Linker项,如图1-5。在Output选项卡的Simple image框中设置连接的Read-Only(只读)和Read-Write(读写)地址。地址0x30000000是开发板上SDRAM的真实地址,是由系统的硬件决定的;0x30200000指的是系统可读写的内存地址。也就是说,在0x300000000x30200000之间是只读区域,存放程序的代码段,在 0x30200000开始是程序的数据段。,54,在Simple image 框中设置连接的Read-Only(只读)和Read-Write(读写)地址。地址0x30000000是开发板上SDRAM 的真实地址,是由系统的硬件决定的。,55,2. 使用ADS建立工程,图15,56,2. 使用ADS建立工程,如果选择简单的地址连接设置,在Debug Settings对话框中选择ARM Linker项,如图1-8。在Layout选项卡的Place at beginning of image框中设置程序的入口模块。指定在生成的代码中,程序是从2440init.s开始运行的。Object 设为2440init.o,section设为init。,57,图18,58,2. 使用ADS建立工程,在Debug Settings对话框中选择ARM fromELF项,如图。在Output file name框中设置输出文件名为system.bin,这就是要下载到开发板的嵌入式应用程序文件。,59,图19,60,2. 使用ADS建立工程,回到如图1-10所示的工程窗口中,选择Release版本,使用Edit | Release Settings菜单对Release版本进行参数设置。 参照前述各步在Release Settings对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。 DebugRel版本设置类似。,61,2. 使用ADS建立工程,图110,62,2. 使用ADS建立工程,设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。将工程文件名改为2440 ARM Executable.mcp。然后在ADS1.2软件安装目录下的Stationery目录下新建名为2440 ARM Executable Image的模板目录,再将刚设置完的2440 ARM Executable.mcp工程模板文件存放到该目录下即可。这样以后新建工程的时候如图1-1所示就能看到以2440 ARM Executable Image为名字的模板了。,63,新建工程后,可以执行菜单Project|Add Files把和工程相关的所有文件即除inti的所有文件加入到工程中。ADS1.2不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单Project | Create Group创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。如图1-11所示。更为简单的办法是,在新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论