ARM嵌入式技术原理与应用考试资料.docx_第1页
ARM嵌入式技术原理与应用考试资料.docx_第2页
ARM嵌入式技术原理与应用考试资料.docx_第3页
ARM嵌入式技术原理与应用考试资料.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

精品文档第一章 嵌入式系统简介1、 嵌入式系统概念 简单的讲,嵌入式系统就是嵌入到对象体重的专用计算机系统。它的三要素是嵌入、专用、计算机。广义的讲,一个嵌入式系统就是一个具有特定功能或用途的计算机软硬件集合体。即以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2、 与PC机的区别嵌入式系统一般是专用的,执行特定的功能,而通用计算机课执行多种功能。3、 嵌入式系统的组成和功能粗略划分为四种:嵌入式微处理器、外围设备、嵌入式操作系统、嵌入式应用软件。细分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件。功能:用于监控、监视或协助特定机器和设备正常运转4、 嵌入系统的特点五点:只执行特定功能;以微控制器和外围设备为中心,系统可大可小;有严格的时序性和稳定性要求;自动操作循环,等待中断控制;程序被烧写在存储芯片中。5、 嵌入式系统分类按照硬件范畴:芯片级嵌入式系统、模块级嵌入式系统、系统级嵌入式系统。按照实时性(软件):实时系统和非实时系统。6、 MPU嵌入式微处理器、MCU微控制器、SoC片上系统、SoPC片上可编程系统、dsp信号数字处理7、 硬实时操作系统和软实时操作系统硬实时操作系统对系统响应时间有严格的要求,如果系统响应时间不能满足,就会引起系统崩溃或致命的错误。软实时系统对系统响应时间有要求,但是如果系统响应时间不能满足,它并不会导致系统出现致命错误或崩溃,只是降低了系统的吞吐量。第二章2.2 ARM微处理器系列介绍1 .ARM7系列采用冯诺依曼结构,为三级流水线结构(取指,译码,执行)。2. ARM9系列采用哈佛(Harvard)结构,程序存储器与数据存储器分开,ARM9为五级流水(取指,译码,执行,缓冲/数据,回写)。2.5 ARM总线结构AHB总线:用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序 参考同一个时钟沿。ASB总线:用于连接高性能系统模块,它支持突发数据传输模式。APB总线:是一个简单接口支持低性能的外围接口。2.6 ARM微处理器的工作状态与模式1. ARM处理器的两种工作状态ARM状态,此时处理器执行32位的字对齐的ARM指令;Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。2. ARM处理器的工作模式用户模式(usr、)快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)。(1)用户模式特点:应用程序不能够访问受操作系统保护的系统资源。 应用程序不能进行处理器模式的切换。(2)系统模式特点:不属于异常模式,不是通过异常进入的。系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行模式的切换。它主要供操作系统使用。(3)特权模式及其特点:特权模式:除用户模式之外的工作模式又称为特权模式特点:应用程序可以访问所有的系统资源;可以任意地进行处理器模式的切换(4)异常模式及其特点:异常模式:除用户模式、系统模式之外的五种模式称为异常模式。特点:以各自的中断或异常方式进入,并且处理各自的中断或异常。 2.7 ARM体系结构的存储器格式1. ARM处理器支持以下6种数据类型:8位有符号和无符号字节(Byte)。16位有符号和无符号半字(Halfword) 它们必须以两字节的边界对齐(半字对齐)。32位有符号和无符号字(word) 它们必须以4字节的边界对齐(字对齐)。2.8寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。R13在ARM指令中常用作堆栈指针R14也称作子程序连接寄存器或连接寄存器LRR15一般用作程序计数器 程序状态寄存器(CPSR/SPSR)寄存器R16用作CPSR(当前程序状态寄存器);SPSR(备份的程序状态寄存器)2.9 异 常 4. ARM异常中断响应过程中断向量表位于0x00-0x1c之间能被4整除的八个地址。ARM处理器对异常中断的响应过程如下 :(1) 保存返回地址(2) 保存当前状态寄存器CPSR的内容(3) 设置当前状态寄存器CPSR中的相应位(4)转去执行中断处理程序5.异常返回 异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回: (1)将返回地址装入PC 把连接寄存器LR的值减去相应的偏移量,然后送到PC中。 (2)恢复CPSR的值 将SPSR复制回CPSR中。 (3)清除中断屏蔽位 若在进入异常处理时设置了中断禁止位,要在此清除。 可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。ARM中断优先级 1、(最高)复位;2、数据中止;3、FIQ;4、IRQ;5、预取指令中止;6、未定义指令,SWI。第五章 ARM嵌入式系统软件设计 交叉编译是指在宿主机X86系统CPU的通用计算机上使用ADS,GCC等交叉开发软件为目标机开发程序,最后编译成可以在ARM体系结构的目标机上运行目标代码。5.3 ARM的启动过程分析系统的初始化部分包括两个级别的操作:系统运行环境初始化应用程序初始化。1.系统运行环境初始化1)设置初始入口点2)设置中断向量表3)初始化存储系统4)初始化数据栈指针5)初始化关键的IO设备6)设置中断昔日需要的RAM变量7)使能异常中断8)切换处理器模式9)切换程序状态2、应用程序初始化1)将已经初始化的数据搬运到可写的数据区。2)在可写存储区建立ZI属性的可写数据区。5.3.2初始化程序分析1.定义程序入口地址2.建立异常向量以及中断处理 1) 建立中断向量入口2)建立中断服务程序入口地址表3)看门狗与中断禁止4)系统时钟初始化5)电源低功耗模式6)内存控制器初始化7)模式的堆栈初始化地址8)初始化用户执行环境9)呼叫主应用程序 5.4 嵌入式系统中的存储映射arm映像文件是ELF格式。ELF文件的功能主要有两个:(1)用作链接器的输入,生成可执行的映像文件。(2)可装载到内存里运行,完成特定的功能。ARM映象文件就是可执行文件,包括bin和hex两种格式,可以直接烧到rom里执行。加载域和运行域映像文件一般由域组成。域最多由三个输出段组成(RO、RW、ZI)组成,输出段又由输入段组成。我们输入的代码,一般有代码部分和数据部分,这就是所谓的输入段,经过编译后就变成了bin文件中RO段和RW段,还有所谓的ZI段,这就是输出段。加载域就是映像文件被静态存放的工作区域,一般来说FLASH里的 整个bin文件所在的地址空间就是加载域。程序一般都不会放在FLASH里执行,一般都会搬到SDRAM里运行工作,它们在被搬到SDRAM里工作所处的地址空间就是运行域。2. 分散装载技术ARM的连接器提供了一种分散加载机制,在连接时可以根据分散加载文件中指定的存储器分配方案,将可执行镜像文件分成指定的分区并定位于指定的存储器物理地址。应用:当嵌入式系统在复位或重新上电时,在对CPU相应寄存器进行初始化后,首先执行ROM存储器的Bootloader代码,根据连接时的存储器分配方案,将相应代码和数据由加载地址拷贝到运行地址,定位在RAM存储器的代码和数据就在RAM存储器中运行,而不再从ROM存储器中取数据或取指令,从而大大提高了CPU的运行速率和效率。在scatterfile中可以为每一个代码或数据区在装载和执行时指定不同的存储区域地址,Scatlertoading的存储区块可以分成二种类型: 装载域:当系统启动或加载时应用程序的存放区。 执行域:系统启动后,应用程序进行执行和数据访问的存储器区域,系统在实时运行时可以有一个或多个执行域。5.5.3 中断1.中断分类ARM处理器的中断分两类:1)由软件中断指令SWI引起的软件中断。2)由外设引起的硬件中断。2.中断仲裁 当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向CPU发出优先级最高的中断请求信号或快速中断请求信号。第六章 ARM应用系统硬件设计6.2 开发板外围电路设计6.2.1 电源电路 6.2.2 时钟和电源管理S3C2410X的主时钟由外部晶振或者外部时钟提供,选择后可以生成3种时钟信号,分别是:1)CPU使用的FCLK、2)AHB总线使用的HCLK3)、APB总线使用的PCLK。电源模式:正常,慢速,空闲和掉电模式; 正常模式:正常运行模式 ;慢速模式:不加 PLL 的低时钟频率模式;空闲模式:只停止 CPU的时钟; 掉电模式:所有外设和内核的电源都切断了。6.2.3 复位电路6.2.5 存储器系统设计bank0-bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。bank0可以作为引导ROM,地址映射到0X00000000,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。1、Nor和Nand Flash的区别Nor flash存储器:XIP(eXecute In Place,芯片内执行),读速度高,而擦、写速度低,容量小,价格高。 Nand flash存储器:读速度不如Nor flash,而擦、写速度高,容量大,价格低。Nand Flash控制器主要特性Nand Flash模式:支持读/擦/编程Nand flash存储器。 自动导入模式:复位后,引导代码被送入Steppingstone,传送后,引导代码在 Steppingstone中执行。6.3开发板接口电路设计6.3.1 I/O 端口共有有117个多功能复用输入/输出(I/O)端口,它们分为8组。每一个组端口都有4个寄存器,它们是:(1) 引脚配置寄存器 :定义引脚的功能(2) 数据寄存器:定义为输出端口,可向外写数据;定义为输入端口,可读入数据 (3) 引脚上拉寄存器:控制每个端口组的使能/禁止 (4) 保留寄存器。6.3.2 DMA控制器每个通道都能处理下面四种情况:(1)源器件和目的器件都在系统总线;(2) 源器件在系统总线,目的器件在外设总线;(3) 源器件在外设总线,目的器件在系统总线;(4) 源器件和目的器件都在外设总线。S3C2410X的DMA工作过程可以分为三个状态:状态1:等待状态。状态2:准备状态。状态3:传输状态。外部DMA请求/响应规则(1)单服务请求(对应于需求模式)(2)单服务握手(握手模式)(3)全服务握手(全服务模式)6.3.3 UART通用异步串行接口每个UART 包含:波特率发生器、接收器、发送器和控制单元。波特率发生器以PCLK或UCLK为时钟源。发送器和接收器各包含1个16 字节的FIFO 寄存器和移位寄存器。6.3.4 USB接口USB(Universal Serial Bus即通用串行总线)主要用于PC与外围设备互连USB总线主要特点USB端口不区分设备;即插即用、可热插拔;传输速度高;易扩展,可扩展到127个USB设备;对设备提供电源;成本低等6.3.5 A/D转换与触摸屏6.3.6 LCD 即液晶显示器,是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。 其种类根据驱动方式可分为三种 :静态驱动、单纯矩阵驱动、主动矩阵驱动LCD构成由三部分组成:LCD显示屏(主要由:玻璃基板、偏振片、电极、胶框、液晶材料、背光等构成)、显示控制器、缓冲存储器。LCD屏的主要技术参数(1)像素2)分辨率(3)色深(4)刷新频率(5)物理尺寸6.3.7 I2C串行总线接口 串行总线 I2C总线信号:为两线,一个能够双向传输的数据线SDA、另一个能够双向传输的时钟线SCL。是信号线最少的串行总线。IIC总线是多主系统:系统可以有多个IIC节点设备组成,并且可以是多主系统,任何一个设备都可以为主IIC;但是任一时刻只能有一个主IIC设备,IIC具有总线仲裁功能,保证系统正确运行。6.3.8 I2S串行总线接口 数字音频信号I2S总线具有4根信号线,包括: 串行数据输入(IISDI)、串行数据输出(IISDO)、左/右声道选择(IISLRCK)、串行数据时钟(IISCLK)6.4.1 JTAG接口硬件仿真器可以通过JTAG接口对开发板进行在线仿真调试,也可以使用sjf2410等烧写工具通过JTAG接口对其扩展的Flash存储器进行编程.6.4.2 看门狗 看门狗是一种电路,具有监视并恢复程序正常运行的功能,是一个定时器电路。2. PWM(脉宽调制)概念 就是只对一方波序列信号的占空比按照要求进行调制,而不改变方波信号的其它参数,即不改变幅度和周期,因此脉宽调制信号的产生和传输,都是数字式的。第七章 LINUX系统简介7.1.1 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统。这个系统是由世界各地的成千上万的程序员设计和实现的。 Linux是一个网络操作系统。所谓网络操作系统则在一般操作系统的功能上增加了网络功能,具体包括:1)实现网络中各计算机之间的通信和资源共享;2)提供多种网络服务软件;3)提供网络用户的应用程序接口。7.1.3 Linux特点Linux特点如下:1)自由软件,开放源代码;2)真正的多用户、多任务操作系统;3)可灵活裁剪配置;4)支持多种硬件平台;5)提供强大的管理功能;6)完全符合POSIX标准;7)具有丰富的图形用户界面;8)具有强大的网络功能7.2.1 Linux介绍Linux一般由内核、Shell、文件结构和实用工具等四个主要部分组成1Linux内核:负责整个系统的内存管理、进程调度、文件管理、设备控制、网络功能2Linux ShellShell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。常用的有:Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)、Bourne Again Shell (简称bash)7.2.3 linux的文件系统Linux 采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。无论操作系统管理几个磁盘分区,这样的目录树只有一个。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。linux文件有如下几种:普通文件:包括文本文件、数据文件、可执行的二进制程序等。目录文件:简称为目录,Linux 中把目录看成是一种特殊的文件,利用它构成文件系统的分层树型结构。设备文件:设备文件是一种特别文件,Linux 系统用来标识各个设备驱动器,核心使用它们与硬件设备通信。符号链接:一种特殊文件,存放的数据是文件系统中通向某个文件的路径。第八章 LINUX编程基础嵌入式Linux 系统开发流程1、建立Linux交叉开发环境2、移植引导程序bootloader3、移植Linux内核4、建立根文件系统5、开发和调试应用程序。2.交叉编译概述 由于一般嵌入式开发系统存储大小有限,通常都要在PC上建立一个用于目标机的交叉编译环境,完成嵌入式系统的开发。Linux使用的工具链软件是:Binutils、GCC 、GLIBC、GDB(1)Binutils是一组针对目标系统的二进制开发工具,包括连接器、汇编器和其他用于目标文件和档案的工具。(2)GCC是编译器,不但能够支持C/C+语言的编译,而且能够支持FORTRAN JAVA ADA等编程语言。Gcc编译过程:预处理、编译、汇编、连接。(3)Glibc库是提供系统调用和基本函数的C库,可以编译生成静态库和动态库。(4)GDB可以调试C和C+语言程序,功能非常强大。8.1.4 嵌入式Linux开发环境组建方案 1. Windows Linux 目标系统2. Windowscygwin目标系统 3. Windows虚拟机(Linux) 目标系统 8.3 Makefile1) GNU的make 使用make 工具,可以将大型的开发项目分解成为多个易于管理的模块,对于一个包含众多源文件的应用程序,使用make 和Makefile 工具就可以高效处理各个源文件之间的复杂的相互关系,进而取代了复杂的命令行操作,也大大提高了应用程序的开发效率。 make在执行时,需要一个命名为Makefile的文件。Makefile文件描述了整个工程的编译,连接等规则。Makefile规则:是一个make的规则描述脚本,包括四种类型:目标行、命令行、宏定义行、make伪指令行。注释以#开始。用于说明如何生成一个或多个目标文件。第九章 BootLoader1、Bootloader就是在系统上电时开始执行,初始化硬件设备、准备好软件环境,最后调用操作系统内核的程序。作用:关闭WATCHDOG、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等等。2、两种操作模式:启动加载(Bootloading)模式,下载(Downloading)模式3、启动方式:网络启动方式,磁盘启动方式,flash启动方式4、bootloader基本原理:(1)、操作模式:大多数Bootloader都包含启动加载模式和下载模式两种不同的操作模式。 (2)、通信设备及协议:串口,通常是 xmodem/ymodem/zmodem协议中的一种(3)、Bootloader 的功能与结构:设备初始化代码等,通常都放在stage1 中(汇编),stage2为C语言,实现各种复杂功能。(4)、stage1包含:硬件设备初始化,为加载Bootloader的stage2准备RAM空间,拷贝Bootloader的stage2到RAM空间中,设置堆栈,跳转到stage2的C入口点。5、bootloader种类与特点 (1)vivi:支持串口下载,代码量小(2)uboot:支持串口、网络下载,代码量大(3)redboot:支持串口、网络下载,代码量最大(4)blob:支持串口、网络下载,代码量小。第十章 Linux 内核的移植 10.1.1 Linux 移植的概念 Linux移植就是把Linux操作系统针对具体的目标平台做必要改写之后,安装到该目标平台,使其正确地运行起来,即把内核从一种硬件平台转移到另外一种硬件平台上运行。 10.2 Linux 内核和结构 在Linux操作系统中,可以将操作系统的代码分成两部分:内核所在的地址空间称为内核空间;而在内核以外,剩下的程序统称为外部管理程序,它们大部分是对外围设备的管理和界面操作,外部管理程序与用户进程所占据的地址空间称为外部空间。在Linux中,可以动态装入和卸载内核中的部分代码。Linux中将这样的代码段称做模块。2. Linux内核的结构Linux 内核主要由5 个模块构成,它们分别是:(1)进程调度模块:控制进程对CPU 资源的使用。 (2)内存管理模块:确保所有进程能够安全地共享机器主内存区;虚拟内存管理。 (3)文件系统模块:支持对外部设备的驱动和存储。 (4)进程间通信模块:支持多种进程间的信息交换方式。 (5)网络接口模块:提供对多种网络通信标准的访问并支持许多网络硬件。3. 嵌入式Linux的代码结构Rules.make:各种Makefile所使用的一些共同规则。documentation/:文档目录,没有内核代码。arch/:包括了所有和体系结构相关的核心代码。drivers/:放置系统所有的设备驱动程序,每种驱动程序各占用一个子目录fs/:所有的文件系统代码和各种类型的文件操作代码include/:包括编译核心所需要的大部分头文件。init/:包含核心的初始化代码i

温馨提示

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

最新文档

评论

0/150

提交评论