资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,ARM嵌入式基础技术 -入门篇,长沙市元享电子 制作,内容简介,ARM嵌入式应用技术基础,从基本概念和原理入手,循序渐进地讲,解了嵌入式系统基础、ARM处理器基础、ARM7指令系统、程序设计、,ADS编译环境和初始化代码等各项基础知识,帮助读者成功地掌ARM,应用基础。,本套教材构成:,入门篇ARM嵌入式应用技术基础,提高篇 ARM嵌入式接口技术应用,实战篇ARM嵌入式应用实战,章节目录,第一章 嵌入式系统基础知识,第二章 ARM处理器基础,第三章 ARM的指令系统,第四章 ARM的编程技术,第五章 四个操作范例,第六章 ADS1.2开发工具的使用,第七章 AXD调试工具的使用,第八章 初始化代码研究,第九章 LPC2220(ARM7)处理器,第一章 嵌入式系统基础知识,一、认识嵌入式系统,二、计算机系统的信息表示方式,三、本节附录,一、认识嵌入式系统,以数字科技为基础,计算机科学技术为框架的嵌入式系统目前已普遍应用于工业控制系统、信息家电、通信设备、医疗设备、智能仪器仪表等众多领域:,1.1,嵌入式系统的定义,根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是,“控制、监视或者辅助设备、机器和车间用行的装备”(原文为devices,used to control,or assist the operation of equipment,machinery or plants)。,目前国内一个被普遍认同的定义是:以应用为中心,以计算机技术为基,础,软件和硬件可裁减,以适应应用系统对功能、可靠性、成本、速度、,体积、功耗严格要求的专用计算机系统。,可以认为,嵌入式系统是一种硬件和软件紧密耦合在一起的专用计算机,系统,作为装置或设备的一部分。,1.2 嵌入式系统发展的四个阶段,1、无操作系统阶段;,2、简单操作系统阶段;,3、实时操作系统阶段;,4、嵌入式片上系统(System on Chip,SoC)阶段。,1.3 嵌入式系统的发展现状,1.新的微处理器层出不穷,精简系统内核,优化关键算法,降低功耗和硬件成本。,2.嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。,3.通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统中,嵌入式软件平台得到进一步完善,基本都能提供更加友好的多媒体人机交互界面。,4.各种开源的嵌入式操作系统(如C Linux、C/OS-II)迅速发展,目前已经形成了能与VxWorks、Windows CE等嵌入式操作系统进行有力竞争的局面。,5.网络化、信息化的要求随着Internet 技术的成熟和带宽的提高而日益突出,以往功能单一的设备功能不再单一,结构变得更加复杂,网络互连成为必然趋势。,1.4 嵌入式系统的组成,一个嵌入式系统装置一般是由嵌入式计算机系统和执行装置两部分组成。嵌入式计算机系统由硬件层、中间层、系统软件层和应用软件层组成:,硬件层,硬件层由嵌入式核心控制模块和外围设备接口组成。在嵌入式处理器基础上添加电源电路、时钟电路、复位电路和存储器电路,就构成一个嵌入式核心控制模块。,硬件层结构示意图,1嵌入式微处理器,嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器大多工作在为特定用户群所专门设计的系统中。,嵌入式微处理器的体系结构可以采用冯诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令系统(RISC)和复杂指令系统(CISC)。,2存储器,存储器是用来存放和执行代码。,嵌入式系统的存储器包含Cache、主存和辅助存储器。,3通用设备接口和I/O接口,嵌入式系统和外界交互需要一定形式的通用设备接口和I/O接口。每个外设通常都只有单一的功能,它可以在芯片外也可以内置在芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。,中间层,硬件层和软件层之间为中间层,也称为硬件抽象层或板级支持包。,中间层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。,中间层主要完成两部分工作:,1、嵌入式系统硬件初始化:,系统初始化过程的3个主要环节:片级初始化、板级初始化和系统级初始化。,2、硬件相关的设备驱动程序:,硬件相关的设备驱动程序的初始化通常是一个从高到低的过程。设备驱动程序通常不直接由BSP 使用,而是在系统初始化过程中由BSP 将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。,系统软件层,系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成,如图所示。其中RTOS是其他所有应用软件的基础和开发平台。,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.数制系统,a,n,a,n-1,a,0,.b,1,b,2,b,m,含意是:,a,n,10,n,+a,n-1,10,n-1,+a,0,10,0,+b,1,10,-1,+b,2,10,-2,+b,m,10,-m,其中a,i,b,j,是0,1,2,3,4,5,6,7,8,9十个数码中的一个。十进制数的基数为10,即其数码为09,且遵循逢十进一的规则。上式中相对于每位数字的10,k,称为该位数字的权,例如:,356.79=310,2,+510,1,+610,0,+710,-1,+910,-2,计算机为便于存储及物理实现,采用了二进制。二进制数的基数为2,只有0,1两个数码,并遵循逢二进一的规则,因此二进制数a,n,a,n-1,a,0,.b,1,b,2,b,m,的值是:,a,n,2,n,+a,n-1,2,n-1,+a,0,2,0,+b,1,2,-1,+b,2,2,-2,+b,m,2,-m,例如:,101101,2,=12,5,+12,3,+12,2,+12,0,=45,10,其中数的下标表示该数的基数r,即二进制的101101与十进制的45等值。再比如:,10,2,=2,10,,101,2,=5,10,,111,2,=7,10,,1011,2,=12,10,进位计数制,基数,数码,十六进制数,16,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,十进制数,10,0,1,2,3,4,5,6,7,8,9,八进制数,8,0,1,2,3,4,5,6,7,二进制数,2,0,1,在计算机里:,0 x表示十六进制数;,0b表示二进制数值。,常用的进位计数制的基数和数码,比如二进制数0b 101111:,0b 101111=12,5,+02,4,+12,3,+12,2,+12,1,+12,0,=32+8+4+2+1=47,比如十六进制数0 x 20F:,0 x 20F=216,2,+016,1,+F16,0,=512+15=527,十进制数转换二进制数,十进制数转换成二进制数的降幂法。,因为:2,0,=1,2,1,=2,2,2,=4,2,3,=8,2,4,=16,2,5,=32,2,6,=64,2,7,=128。,十进制数29,利用降幂法29可以写成:,29=16+8+4+1=12,4,+12,3,+12,2,+02,1,+12,0,=0b 11101,二进制数、十六进制数转换十进制数,二进制数、十六进制数转换成十进制数都比较简单。,2.数制之间的转换,二进制数与十六进制数之间的转换,十六进制数中的每一位可以与4位二进制数相对应。,二进制数,十六进制数,十进制数,二进制数,十六进制数,十进制数,0000,0,0,1000,8,8,0001,1,1,1001,9,9,0010,2,2,1010,A,10,0011,3,3,1011,B,11,0100,4,4,1100,C,12,0101,5,5,1101,D,13,0110,6,6,1110,E,14,0111,7,7,1111,F,15,二进制数、十进制数与十六进制数之间的数码转换表,1.2 计算机中数的表示,二进制数的运算,二进制数之间具有加、减、乘、除四则运算,在ARM汇编语言里都有相对应的汇编指令完成四则运算。,加减规则:,0+0=00+1=11+0=1 1+1=0(进位1),0-0=00 1=1(借位1)1-0=11-1=0,0b 100 1111+0b 100 0001=0b 1001 0000;,0b 101-0b 011=0b 010。,加减法实例:,机器数的表示,1、数的原码表示,计算机中的数是用二进制来表示的,数的符号也是用二进制表示的。把一个数连同其符号在内在机器中的表示加以数值化,这样的数称为机器数。,机器数常用原码、补码和反码表示法来表示。,二进制位数,8位,16位,32位,字长,1个字节,1个半字,1个字,位数与字长对应关系,2、数的补码表示,计算一个负数的补码的办法:先写出与该负数相对应的正数的原码表示,然后将其按位求反(即0变为1,1变为0),最后在末位(最低位)加1,就可以得到该负数的补码表示了。,机器字长为8位,N=-52的补码表示,+52原码表示0b 0011 0100,按位求反后为0b 1100 1011,末位加1后为0b 1100 1100,用十六进制数表示 0 x CC,即-52补=0 x CC,机器字长为16位,N=-52的补码表示,+5
展开阅读全文