ARM嵌入式技术复习总结_第1页
ARM嵌入式技术复习总结_第2页
ARM嵌入式技术复习总结_第3页
全文预览已结束

下载本文档

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

文档简介

1、第一章 1.嵌入式系统定义/概念:嵌入式系统就是嵌入到对象体中的专用计算机系统。三要素:嵌入、专用、计算机。嵌入性:嵌入到对象体系中,有对象环境要求,专用性:软、硬件按对象要求裁减,计算机:实现对象的智能化功能。广义的讲,一个嵌入式系统就是一个具有特定功能或用途的计算机软硬件集合体,即以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用对功能。可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统发展的最高形式片上系统(soc)2. 嵌入式系统的特性:a.只执行特定功能;b.以微控制器、外围器件为中心,系统构成可大可小;c.有严格的时序性和稳定性要求;d.自动操作循环,等待中断控制;

2、e.程序被烧写在存储芯片中。(开发时应注意的a. 嵌入式系统是面向具体应用的产品b.嵌入式软件特征:具有实时性,高质量、高可靠,程序固化c. 需要软硬件开发工具和系统软件d. 需要应用专家参与开发e. 嵌入式系统分散而不可垄断)3.嵌入式系统的分类:a.按表现形式分(硬件范畴):芯片级嵌入(含程序或算法的处理器)、模块级嵌入(系统中的某个核心模块)、系统级嵌入(完整系统并有嵌入软件)b. 按实时性要求分(软件范畴) :非实时系统(pda)、实时系统(软实时系统:消费类产品。硬实时系统:工业和军工系统)4. 嵌入式微处理器(发展趋势:经济性、微型化、智能化)主要分类: 微控制器(mcu)(51单

3、片机)、微处理器(mpu)(arm、powerpc)、数字信号处理器(dsp)(一般用在快速执行算法,做控制比较困难)、混合处理器和片上系统(soc)(结构简洁,体积小、功耗低,可靠性高,设计生产效率高。smart xa)、可编程片上系统(sopc)5. 嵌入式系统组成:粗略划分:嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件。稍细划分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件。6. 嵌入式操作系统简介:a.嵌入式操作系统是支持嵌入式系统的操作系统,它是嵌入式应用软件的基础和开发平台。b.功能:进程调度、内存管理、设备管理、文件管理、中断管理、

4、系统功能接口(api调用,如网络功能) 、设备驱动。c.特点:系统可裁减、可配置,系统具有实时性,系统稳定、可靠。d. 实时系统的定义:能够对外部事件做出及时响应的系统,响应时间要有保证。硬实时系统:对系统响应时间有严格的要求,如果系统响应时间不能满足,就会引起系统崩溃或致命的错误。软实时系统:对系统响应时间有要求,但是如果系统响应时间不能满足,它并不会导致系统出现致命的错误或崩溃,只是降低系统的吞吐量。e. 几种主流的嵌入式操作系统:c/os-ii:教学的免费、面向中小型嵌入式系统应用。vxworks:具有可靠、实时、可裁减特性。wince:它是微软针对个人电脑以外的电脑产品所研发的嵌入式操

5、作系统。linux/clinux:免费、源码开放的操作系统,clinux面向没有mmu的硬件平台。palmos :具有开放的操作系统应用程序接口(api),可让用户灵活方便地定制操作系统。第二章1. arm体系的特点:a.低功耗、低成本、高性能(3/5级流水线)。b.采用risc体系结构。c.使用大量的寄存器(37个寄存器31个通用6个状态)d.高效的指令系统(thumb指令与等价的arm代码相比较可节省3040%以上的存储空间)e.在保证高性能的前提下尽量缩小芯片面积、降低功耗;所有的指令都可以根据前面的执行结果决定是否被执行。2.arm7采用3级流水线(是把一个重复的过程分解为若干个子过程

6、,每个子过程可以与其他子过程同时进行):取指(从程序存储器中取指令,放入指令流水线,占用存储器访问操作)、译码(指令译码,占用译码逻辑)、执行(执行指令/读写reg,占用alu及数据路径)。一条指令有3个时钟周期的执行时间,但吞吐量是每个周期1条指令。pc 指向处于读取级的指令地址,而不是处于执行级的指令地址pc=当前执行指令地址+8。比较:arm9是5级流水线(取指、译码、执行、存储器、写),哈佛架构,拥有独立的指令和数据总线;指令和数据的读取可以在同一周期进行。3级流水的arm7内核是指令和数据总线复用的冯.诺依曼架构,指令和数据的读取不能在同一周期进行;5级流水线设计把寄存器读取、逻辑运

7、算、结果回写分散在不同的流水当中, 每一级流水的操作简洁,提升了处理器的主频。3.arm微处理器的工作状态与模式:两种工作状态:arm状态,此时处理器执行32位的字对齐的arm指令;thumb状态,此时处理器执行16位的、半字对齐的thumb指令。状态切换:armthumb:当操作数寄存器的状态位(位0)为1时,可以采用执行bx指令的方法;当处理器处于thumb状态时发生异常,则异常处理返回时,自动切换到thumb状态。thumbarm:当操作数寄存器的状态位为0时,执行bx指令;在处理器进行异常处理时,把pc指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可使处理器切换到arm

8、状态。模式:用户模式:arm处理器正常的程序执行状态,大部分任务执行在这种模式;快速中断模式:当一个高优先级中断产生时将会进入这种模式,用于高速数据传输或通道处理;外部中断模式:当一个低优先级中断产生时将会进入这种模式,用于通用的中断处理;管理模式:当复位或软中断指令执行时将会进入这种模式,供操作系统使用的一种保护模式;中止模式:当存取异常时将会进入这种模式,用于虚拟存储及存储保护;未定义模式:当执行未定义指令时会进入这种模式 ,软件仿真硬件协处理器;系统模式:供需要访问系统资源的操作系统任务使用,运行具有特权的操作系统任务。模式特点:1)用户模式特点:应用程序不能够访问受操作系统保护的系统资

9、源;应用程序不能进行处理器模式的切换。 2)系统模式特点:不属于异常模式,不是通过异常进入的。系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行模式的切换。它主要供操作系统使用。3)特权模式:除用户模式之外的工作模式,特点:应用程序可以访问所有的系统资源;可以任意地进行处理器模式的切换 4)异常模式:除用户模式、系统模式之外的五种模式,特点:以各自的中断或异常方式进入,并且处理各自的中断或异常。模式切换:软件控制进行切换(在特权模式下通过改变cpsr中的运行模式位4:0);通过外部中断和异常进行切换。4.数据类型: 8位、16位(半字对齐)、32位(字对齐)的有符号和无符号型。5.存

10、储字数据:两种方法(大端、小端格式)。大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中;小端格式:与大端存储格式相反。缺省设置为小端格式。6.arm状态下寄存器:程序计数器pc(r15)(arm状态下,位1:0为0,位31:2用于保存pc;thumb状态下,位0为0,位31:1用于保存pc)。r13常用作堆栈指针(sp)。r14也称作子程序连接寄存器或连接寄存器lr。当执行bl子程序调用指令时,可以从r14中得到r15的备份。寄存器r16用作cpsr(当前程序状态寄存器)。7.arm/thumb下寄存器区别:thumb状态下的寄存器集是arm状态下寄存器集的一个子集,t

11、humb和arm状态下的r0r7、cpsr和所有的spsr是相同的;thumb状态下的sp对应于arm状态下的r13;thumb状态下的lr对应于r14;thumb状态下的pc对应于r15。8.异常:arm有7种异常:复位、未定义指令、软件中断、指令预取中止、数据中止、irq、fiq。异常响应:复位异常立即中止当前指令。其他:保存返回地址(将引起异常指令的下一条指令的地址保存到新的异常模式下的r14);保存当前状态寄存器cpsr的内容(将cpsr的内容保存到将要执行的异常中断对应的spsr中);设置当前状态寄存器cpsr中的相应位(设置控制位使进入响应执行模式;禁止fiq、irq);转去执行中

12、断处理程序(取相应的中断向量给程序计数器pc)。返回:将返回地址装入pc ;恢复cpsr的值 ;清除中断屏蔽位。9.异常向量地址:复位-0x00000000(管理模式);未定义-0x00000004(未定义);软件中断-08(管理);中止(预取指令)-0c(中止);中止(数据)-10(中止);保留-0x00000014;irq-18(irq);fiq-1c(fiq)。10.异常优先级:复位数据中止fiqirq预取指令中止未定义中止、swi第五章1. 编写应用程序都要用到的文件:a.inc目录下的文件: def.h(基本数据类型重定义头文件u32,s16等) option.h(是硬件系统重要设置

13、头文件,修改系统的工作频率,总线宽度,一些重要地址的值) 2410addr.h(是2410的寄存器的地址宏定义头文件) 2410lib.h(调试时常用函数,还有一些其它的常用函数的头文件)b. src目录下的文件: 2410init.s 是2410初始化启动程序,由汇编语言写成2. arm的启动过程系统的初始化:包括两个级别的操作:系统运行环境初始化、应用程序初始化。a.运行环境初始化(对于嵌入式应用系统来说,由于没有操作系统的支持,存放在rom的代码必须进行所有的初始化工作):设置初始入口点(初始入口点是映象文件运行时的入口点,每个映像文件只有一个唯一的初始入口点,它保存在elf头文件中。初

14、始入口点必须位于映像文件的可执行区域;包含初始入口点的可执行域不能被覆盖,它的加载时地址和运行时地址必须是相同的)设置中断向量表(如果系统运行时,地址0x00处为ram,则系统初始化时必须重建异常中断向量表)初始化存储系统初始化数据栈指针初始化关键的io设备设置中断昔日需要的ram变量使能异常中断(通过清除cpsr寄存器的中断禁止位实现)切换处理器模式(系统还处于特权模式,如果下面要运行的应用程序是在用户模式下运行,就需要将处理器切换到用户模式。)切换程序状态(所有的ram内核都是从arm状态开始执行的)b. 应用程序初始化将已经初始化的数据搬运到可写的数据区(这部分数据就是映像文件中的rw属

15、性的数据)在可写存储区建立zi属性的可写数据区3. arm的启动过程初始化程序分析:定义程序入口地址(由area伪操作定义: area init,code,readonly entry)建立异常向量以及中断处理:1) 建立中断向量入口2)建立中断服务程序入口地址表3)看门狗与中断禁止(当系统复位后,看门狗与中断要被首先禁止与被初始化,否则,当看门狗溢出产生的系统复位,引起中断,其它中断源产生中断时,cpu会进入一个未知的状态,出现程序跑飞等现象)4)系统时钟初始化5)电源低功耗模式6)内存控制器初始化(接口时序优化)7)模式的堆栈初始化地址(对程序中需要用到的每一种模式都要给sp定义一个堆栈地

16、址)8)初始化用户执行环境(应用程序执行环境的初始化,就是完成必要的从rom到ram的数据传输和内容清零)9)呼叫主应用程序(import main或b main)4. arm映像文件:arm映像文件其实就是可执行文件,包括bin或hex两种格式,可以直接烧到rom里执行。映像文件一般由域组成。域最多由三个输出段组成(ro、rw、zi)组成,输出段又由输入段(代码和数据)组成。5.中断(注:异常包含5种模式:管理(复位、软件中断swi)、中止(指令预取中止、数据中止)、未定义、快速中断fiq、外部中断irq。中断分两类:swi、硬件(fiq、irq)。异常包含中断,中断都属于异常)中断仲裁:决

17、定中断的优先级,当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向cpu发出优先级最高的中断请求信号或快速中断请求信号,中断系统有6个分仲裁器和1个总仲裁器,每一个仲裁器可以处理6路中断。在编写中断服务程序时需要满足如下要求:(1)不能向中断服务程序传递参数;(2)中断服务程序没有返回值;(3)中断服务程序应要尽可能短,来减少中断服务程序的处理时间,保证实时系统的性能。使用中断的步骤:(1)在使用中断前先设置好相应模式下的堆栈。如当发生快速中断fiq 时,cpu进入“快中断模式”,这时使用“快中断模式”下的堆栈。(2)对于“request sources”中的中断,将intsubms

18、k 寄存器中相应位设为0。(3)将intmsk 寄存器中相应位设为o。(4)确定使用的方式:是fiq 还是irq 。如果是fiq ,则在intmod 寄存器设置相应位为1。如果是irq ,则在priority 寄存器中设置优先级(5)准备好中断处理函数:中断向量:在中断向量设置好当fiq 或irq 被触发时的跳转函数。对于irq ,在跳转函数中读取intpnd 寄存器或intoffset 寄存器的值来确定中断源,然后调用具体的处理函数。对于fiq ,因为只有一个中断可以设为fiq ,无须判断中断源。中断处理函数进入和返回。(6)设置cpsr 寄存器中的f位对于fiq,或i位对于irq,其值为0

19、时,表示开中断。第六章1.nor flash与nand flash比较:nor flash:读速度高,而擦、写速度低,容量小,价格高。nand flash:读速度不如nor flash,但擦、写速度高,容量大,价格低。有取代磁盘的趋势。现在不少用户从nand flash启动和引导系统(开始4kb代码,bank0中,自动复制到内部sram中,利用这4kb的代码把更多的代码从nand flash中读到sdram中),而在sdram上执行主程序代码。2.串口介绍:(1)uart(通用异步串行口):有三个独立的异步串行i/o 端口,每个串口(11个专用寄存器,共39个)都可以在中断和dma 两种模式下

20、进行收发。uart支持的最高波特率达230.4kbps。每个uart 包含:波特率发生器(以pclk或uclk为时钟源)、接收器、发送器和控制单元。发送器和接收器各包含1个16 字节的fifo 寄存器和移位寄存器。工作原理:(fifo模式)当发送数据的时候,数据先写到fifo 然后拷贝到发送移位寄存器,然后从数据输出端口(txdn)依次被移位输出。被接收的数据也同样从接收端口(rxdn)移位输入到移位寄存器,然后拷贝到fifo 中。使用fifo与不使用fifo的比较:前者是通过对fifo状态寄存器ufstatn的查询,确定进行收发,后者是通过对收/发状态寄存器utrstatn的查询,确定进行收

21、发。中断或dma请求: 7种中断请求事件是:溢出错误、奇偶校验错误、帧格式错误、传输中断信号、接收缓冲器数据就绪、发送缓冲器空、发送移位器空。分成3类:错误中断请求、接收中断请求、发送中断请求。rs232:全双工,采用负逻辑,单端传送,适合短距离传输;rs422:单工差分,两条线相对电压传送,至少需要四条线传输;rs485:半双工,单工差分,差分异步传输,适合远距离传输。(2)usb接口(通用串行总线)(49个reg):主要用于pc与外围设备互连,数据传输速度为:低速1.5mb/s,全速12mb/s,高速480mb/s。主要由5部分组成:usb芯片及协议程序(固件)、控制器(控制usb芯片)、

22、控制器程序、usb设备驱动程序、usb设备。usb总线主要特点:usb端口不区分设备,即插即用、可热插拔,传输速度高,易扩展、可扩展到127个usb设备,对设备提供电源,成本低等。(3)i2c串行总线接口:(4个reg)总线信号为两线,一个能够双向传输的数据线sda、另一个能够双向传输的时钟线scl。是信号线最少的串行总线。总线的特点:a.有一个i2c总线接口。b. i2c总线的速度:可以标准速度传输(100kb/s),也可以高速传输(高达400kb/s)。c.可以查询方式和中断方式工作。d.可以主设备身份传输,也可以从设备身份传输,因此共有4种操作模式(主机、从机发送、接收)。主要有5部分构

23、成:数据收发寄存器、数据移位寄存器、地址寄存器、时钟发生器、控制逻辑等部分。系统要求:a.各个节点设备必须具有i2c接口功能;b.各个节点设备必须共地;c.两个信号线必须接上拉电阻。(4)i2s串行总线接口:a.1通道音频i2s总线接口,可基于 dma方式工作;b.串行,每通道 8/16 位数据传输;c.发送和接收具备 128 字节(64 字节加64 字节)fifo;d.支持 iis 格式和 msb-justified 数据格式。(5)网络接口:支持8位、16位的微处理器,可以工作在i/0方式或memory方式。片内集成了双工sa总线接口,可以直接和有双工sa总线的微处理器系统无缝连接。(6)

24、jtag接口:硬件仿真器可以通过jtag接口对开发板进行在线仿真调试,也可以使用sjf2410等烧写工具通过jtag接口对其扩展的flash存储器进行编程。(7)spi 接口:a.兼容 2 通道 spi 协议 2.11版;b.发送和接收具有 28 位的移位寄存器;c.可以基于 dma或中断模式工作3.串口总结:芯片级(i2c、i2s、spi、usb),系统级(网络接口、jtag接口、usb、uar t :rs232/485/422)。urat传输距离:rs232485(差分)tp。在程序运行一周期后,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在tp 时刻

25、修改定时器的计数值,定时器将在ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。功能:定时器功能、复位功能。构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。5.补充:(1)i/o端口寄存器:引脚配置寄存器、数据reg、引脚上拉reg、保留reg。(2)lcd(液晶显示器):是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。组成:lcd显示屏、显示控制器、缓冲存储器。第七章1. linux系统及特点:linux是一套免费使用和自由传播的类unix操作系统。特点:自由软件,开放源代码;真正的多用户、多任务操作系统;可灵活裁剪配置;

26、支持多种硬件平台;提供强大的管理功能;完全符合posix标准;具有丰富的图形界面;具有强大的网络功能。2 .linux组成:linux内核,功能是:进程管理(负责创建和撤销进程以及处理他们和外部世界的连接)、内存管理(内核在有限的可用资源上为每个进程都创建了一个虚拟寻址空间)、文件系统(内核在没有结构硬件上构造结构化的文件系统)、设备控制(内核必须为系统中的每件外设嵌入相应的驱动程序)、网络功能(处理路由和地址解析问题)。linux shell:常用的有:bourne shell(sh,最初始的shell,并且在每种unix上都可以使用),c-shelll(csh),korn shell(ks

27、h),bourne again shell (bash,大多数linux系统的默认shell)。linux文件结构:文件结构是文件存放在磁盘等存储设备上的组织方法,主要体现在对文件和目录的组织上,目录提供了管理文件的一个方便而有效的途径。linux目录采用多级树形结构,用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件,目录树只有一个,不管os管理几个磁盘分区。linux实用工具,分三类:编辑器:用于编辑文件;过滤器:用于接收数据并过滤数据;交互程序:允许用户发送信息或接收来自其他用户的信息。第八章1.交叉编译环境的软件工具1)binutils:binutils是一组针对目

28、标系统的二进制开发工具,包括连接器、汇编器和其他用于目标文件和档案的工具。2)gcc:编译器,gcc不但能够支持c/c+语言的编译,而且能够支持fortran java ada等编程语言。3)glibc:glibc库是提供系统调用和基本函数的c库,可以编译生成静态库和动态库。4)gdb:gdb可以调试c和c+语言程序,功能:a.启动被调试程序。b.让被调试的程序在指定的位置停住。c.当程序被停住时,可以检查程序状态(如变量值)。5) crosstool:实际上是一个脚本,用于编译和测试大多数体系结构的各gcc和glibc的版本组合。2. linux开发环境组建:可分别建立以linux为操作系统

29、的开发环境或者在windows下安装模拟linux环境的软件。几种组建方案: windows linux 目标系统(可以解决开发环境问题,但同时用两个操作系统,来回切换,浪费时间)、windowscygwin目标系统(cygwin是运行于windows下的linux模拟运行环境,但是在使用某些特殊功能时,需要添加一些补丁)、windows虚拟机(linux) 目标系统(在不破坏原有操作系统的基础上,虚拟一台真实计算机,在它上面安装linux和操作真实的linux一样)、windowslinux服务器 目标系统(只需要一台linux服务器即可,对客户机和服务器的硬件要求没什么特别需求)。3.用户

30、、shell、linux之间关系:shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。shell是用户和操作系统之间最主要接口。通过shell,可以同时在后台运行多个应用程序,并且在把需要与用户交互的程序放在前台运行。4.makefile文件的作用:使用make 工具,可以将大型的开发项目分解成为多个易于管理的模块,make在执行时,需要一个命名为makefile的文件。makefile文件描述了整个工程的编译,连接等规则。makefile说明了组成程序的各模块间的相互关系及更新模块时必须进行的动作,make按照这些说明自动地维护这些模块

31、。在makefile(makefile)中,自顶向下说明各模块之间的依赖关系及实现方法。第九章1.bootloader概念:系统上电之后,需要一段程序来进行初始化,如果它能将操作系统内核(从本地flash或通过网络)复制到内存中运行,就称这段程序为bootloader。其作用是,在系统上电时开始执行,初始化硬件设备、准备好软件环境,最后调用操作系统内核。2.两种操作模式:启动加载模式,即bootloader从目标机上的某个固态存储设备上将操作系统加载到ram中运行,整个过程并没有用户的介入;下载模式,目标机上的bootloader将通过串口连接或网络连接等通信手段从主机下载文件,这种模式通常在

32、第一次安装内核与根文件系统时被使用,以后的系统更新也会使用bootloader的这种工作模式。3.启动方式:网络启动方式,使用这种启动方式之前,需要把bootloader安装到板上的eprom或者flash中。bootloader通过以太网接口远程下载linux内核映像或者文件系统。磁盘启动方式,传统的linux系统运行在台式机或者服务器上,这些计算机一般都使用bios引导,并且使用磁盘作为存储介质,在硬盘的主引导区,需要一个bootloader可以从磁盘文件系统中把操作系统引导起来。flash启动方式,bootloader的入口位于处理器上电执行第一条指令的位置,bootloader引导linux内核,就是要把内核映像解压到ram中去,然后跳转到内核映像入口执行,从而实现自举启动,与磁盘启动相似。4.种类与特点:bootloader种类繁多,比如x86上有lilo、grub等;对于arm架构的cpu,有u-boot、vivi等。特点:lilo是linux磁盘引导程序,grub是gnu的lilo替代程序;vivi支持串口下载功能,代码量小;u-boot

温馨提示

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

评论

0/150

提交评论