您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第一章 嵌入式系统基础知识ARM7
ARM嵌入式基础技术----入门篇长沙市元享电子制作内容简介《ARM嵌入式应用技术基础》从基本概念和原理入手,循序渐进地讲解了嵌入式系统基础、ARM处理器基础、ARM7指令系统、程序设计、ADS编译环境和初始化代码等各项基础知识,帮助读者成功地掌ARM应用基础。本套教材构成:入门篇《ARM嵌入式应用技术基础》提高篇《ARM嵌入式接口技术应用》实战篇《ARM嵌入式应用实战》章节目录第一章嵌入式系统基础知识第二章ARM处理器基础第三章ARM的指令系统第四章ARM的编程技术第五章四个操作范例第六章ADS1.2开发工具的使用第七章AXD调试工具的使用第八章初始化代码研究第九章LPC2220(ARM7)处理器第一章嵌入式系统基础知识一、认识嵌入式系统二、计算机系统的信息表示方式三、本节附录一、认识嵌入式系统以数字科技为基础,计算机科学技术为框架的嵌入式系统目前已普遍应用于工业控制系统、信息家电、通信设备、医疗设备、智能仪器仪表等众多领域:1.1嵌入式系统的定义根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间用行的装备”(原文为devicesusedtocontrol,orassisttheoperationofequipment,machineryorplants)。目前国内一个被普遍认同的定义是:以应用为中心,以计算机技术为基础,软件和硬件可裁减,以适应应用系统对功能、可靠性、成本、速度、体积、功耗严格要求的专用计算机系统。可以认为,嵌入式系统是一种硬件和软件紧密耦合在一起的专用计算机系统,作为装置或设备的一部分。1.2嵌入式系统发展的四个阶段1、无操作系统阶段;2、简单操作系统阶段;3、实时操作系统阶段;4、嵌入式片上系统(SystemonChip,SoC)阶段。1.3嵌入式系统的发展现状1.新的微处理器层出不穷,精简系统内核,优化关键算法,降低功耗和硬件成本。2.嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。3.通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统中,嵌入式软件平台得到进一步完善,基本都能提供更加友好的多媒体人机交互界面。4.各种开源的嵌入式操作系统(如μCLinux、μC/OS-II)迅速发展,目前已经形成了能与VxWorks、WindowsCE等嵌入式操作系统进行有力竞争的局面。5.网络化、信息化的要求随着Internet技术的成熟和带宽的提高而日益突出,以往功能单一的设备功能不再单一,结构变得更加复杂,网络互连成为必然趋势。1.4嵌入式系统的组成一个嵌入式系统装置一般是由嵌入式计算机系统和执行装置两部分组成。嵌入式计算机系统由硬件层、中间层、系统软件层和应用软件层组成:硬件层传感机构执行机构中间(驱动)层系统软件层应用软件层执行装置嵌入式系统硬件层硬件层由嵌入式核心控制模块和外围设备接口组成。在嵌入式处理器基础上添加电源电路、时钟电路、复位电路和存储器电路,就构成一个嵌入式核心控制模块。嵌入式微处理器存储器核心控制模块LCD电路电源电路外围设备接口:A/D、D/ACAN时钟晶振复位电路硬件层结构示意图1.嵌入式微处理器嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器大多工作在为特定用户群所专门设计的系统中。嵌入式微处理器的体系结构可以采用冯•诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令系统(RISC)和复杂指令系统(CISC)。2.存储器存储器是用来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器。嵌入式处理器CacheRAMROM主存辅助存储器3.通用设备接口和I/O接口嵌入式系统和外界交互需要一定形式的通用设备接口和I/O接口。每个外设通常都只有单一的功能,它可以在芯片外也可以内置在芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。中间层硬件层和软件层之间为中间层,也称为硬件抽象层或板级支持包。中间层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。中间层主要完成两部分工作:1、嵌入式系统硬件初始化:系统初始化过程的3个主要环节:片级初始化、板级初始化和系统级初始化。2、硬件相关的设备驱动程序:硬件相关的设备驱动程序的初始化通常是一个从高到低的过程。设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。系统软件层系统软件层由实时多任务操作系统(Real-timeOperationSystem,RTOS)、文件系统、图形用户接口(GraphicUserInterface,GUI)、网络系统及通用组件模块组成,如图所示。其中RTOS是其他所有应用软件的基础和开发平台。嵌入式操作系统RTOS(如uC/OS-II、uCLinux等)文件系统图形用户界面(GUI)TCP/IP协议栈其他组件模块1.嵌入式操作系统嵌入式操作系统负责嵌入系统的全部软、硬件资源的分配、控制、协调、任务调度等活动。2.文件系统与通用操作系统下的文件系统相比,嵌入式文件系统比较简单,主要提供文件存储、文件属性修改和文件目录服务等功能。3.图形用户接口(GUI)GUI极大地方便了非专业用户地使用,人们可以通过窗口、菜单、按键等方式来方便的进行操作。嵌入式系统的GUI具有的基本要求:轻型、占用资源少、高性能、便于移植、可配置等特点。嵌入式系统中的图形界面,一般采用下面的几种方法实现:①针对特定的图形设备输出接口,自行开发相应的功能函数。②购买针对特定嵌入式系统的图形中间软件包。③采用源码开放的嵌入式GUI系统。应用软件层应用软件层是由基于实时操作系统开发的应用程序组成,其作用是实现对被控制对象的控制功能。功能层是面向被控制对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。1.5嵌入式系统实例市场上现在有许多基于ARM芯片研制出来的手机产品,如图所示。各种智能型手机具有多种多样的功能,如接听电话、电话薄、备忘录、闹钟、短消息和游戏,甚至可以浏览网页和收发电子邮件等。嵌入式产品的研发过程大致分为两步:硬件设计:硬件是产品赖以存在的基础。软件设计:软件是其灵魂。1.硬件部分硬件部分的必需部件:1)ARM处理器:ARM处理器有很多种,目前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、Secur-Core系列、Intel公司的StrongARM和Xscale等系列。2)显示设备:显示设备采用灰度或彩色的液晶模块(LCD)。3)输入设备:输入设备可以采用键盘,还可以采用触摸屏。4)存储设备:通常情况下,当系统需要管理大量数据,而这些数据又分为多种类别且需要分别进行处理时,采用文件系统能够简化编程,并提高效率。5)GPRS接口模块:GPRS接口模块能实现手机与GPRS网络连接,处理器通过GPRS接口模块可以与GPRS网络上其他的手机进行数据通信。2.软件部分软件部分实际上就是编写的程序代码。程序代码一般由高级语言(如C/C++)和处理器专用汇编指令编写而成,经过编译、链接、重定位,最终成为机器代码,存放到系统的存储器中。软件可分为4个层次,从低到高分别为:1、硬件驱动层;2、操作系统层;3、系统中间件层;4、用户应用层。二、计算机系统的信息表示方式进位计数制是一种计数的方法,人们最习惯用的是十进制计数法。一个任意的十进制数可以表示为:1.1进位计数制与转换1.数制系统anan-1…a0.b1b2…bm含意是:an×10n+an-1×10n-1+…+a0×100+b1×10-1+b2×10-2+…+bm×10-m其中ai,bj是0,1,2,3,4,5,6,7,8,9十个数码中的一个。十进制数的基数为10,即其数码为0~9,且遵循逢十进一的规则。上式中相对于每位数字的10k称为该位数字的权,例如:356.79=3×102+5×101+6×100+7×10-1+9×10-2计算机为便于存储及物理实现,采用了二进制。二进制数的基数为2,只有0,1两个数码,并遵循逢二进一的规则,因此二进制数anan-1…a0.b1b2…bm的值是:an×2n+an-1×2n-1+…+a0×20+b1×2-1+b2×2-2+…+bm×2-m例如:1011012=1×25+1×23+1×22+1×20=4510其中数的下标表示该数的基数r,即二进制的101101与十进制的45等值。再比如:102=210,1012=510,1112=710,10112=1210进位计数制基数数码十六进制数160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十进制数100,1,2,3,4,5,6,7,8,9八进制数80,1,2,3,4,5,6,7二进制数20,1在计算机里:0x表示十六进制数;0b表示二进制数值。常用的进位计数制的基数和数码比如二进制数0b101111:0b101111=1×25+0×24+1×23+1×22+1×21+1×20=32+8+4+2+1=47比如十六进制数0x20F:0x20F=2×162+0×161+F×160=512+15=527十进制数转换二进制数十进制数转换成二进制数的降幂法。因为:20=1,21=2,22=4,23=8,24=16,25=32,26=64,27=128……。十进制数29,利用降幂法29可以写成:29=16+8+4+1=1×24+1×23+1×22+0×21+1×20=0b11101二进制数、十六进制数转换十进制数二进制数、十六进制数转换成十进制数都比较简单。2.数制之间的转换二进制数与十六进制数之间的转换十六进制数中的每一位可以与4位二进制数相对应。二进制数十六进制数十进制数二进制数十六进制数十进制数0000001000880001111001990010221010A100011331011B110100441100C120101551101D130110661110E140111771111F15二进制数、十进制数与十六进制数之间的数码转换表1.2计算机中数的表示二进制数的运算二进制数之间具有加、减、乘、除四则运算,在ARM汇编语言里都有相对应的汇编指令完成四则运算。加减规则:0+0=00+1=11+0=11+1=0(进位1)0-0=00–1=1(借位1)1-0=11-1=00b1001111+0b1000001=0b10010000;0b101-0b011=0b010。加减法实例:机器数的表示1、数的原码表示计算机中的数是用二进制来表示的,数的符号也是用二进制表示的。把一个数连同其符号在内在机器中的表示加以数值化,这样的数称为机器数。机器数常用原码、补码和反码表示法来表示。二进制位数8位16位32位字长1个字节1个半字1个字位数与字长对应关系2、数的补码表示计算一个负数的补码的办法:先写出与该负数相对应的正数的原码表示,然后将其按位求反(即0变为1,1变为0),最后在末位(最低位)加1,就可以得到该负数的补码表示了。机器字长为8位,N=-52的补码表示+52原码表示0b00110100按位求反后为0b11001011末位加1后为0b11001100用十六进制数表示0xCC即[-52]补=0xCC机器字长为16位,N=-52的补码表示+52原码表示0b0000000000110100按位求反后为0b1111111111001011末位加1后为0b1111111111001100用十六进制数表示0xFFCC即[-52]补=0xFFCC3、补码加减运算[X]补[-X]补[X]补求补求补例假设机器字长为8位,已知[-23]补=0b11101001。现在对[-23]补求补两次:[-23]补为0b11101001求补一次得0b00010111再求补一次得0b11101001对[-23]补求补两次之后其结果等于本身,求补一次得到的结果恰好是[23]补,这一特性
本文标题:第一章 嵌入式系统基础知识ARM7
链接地址:https://www.777doc.com/doc-29589 .html