一、嵌入式系统

1.定义:以应用为中心,计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2.特点






3.组成




      ① 

      ② 

      ③ 


       一些常见的嵌入式外围器件(按功能分):

       

       

       

4.常见的存储器概念分析:

根据掉电数据是否丢失可分为:RAM、ROM

RAM随机存储器:访问速度比较快,但是掉电后数据丢失(人们通常说的内存即指系统中的RAM)



 3》Flash是一种非易失性存储器,掉电不会丢失,它擦写方便、访问速度快,亦称Flash ROM,它又分为NOR flash(三大总线,数据、地址、控制,容量1——16m)和NAND flash(总线复用,容量1——8g)

5.嵌入式系统开发

       ①交叉编译:在一个平台上生成可以在另一个平台上执行的代码。(需要注意的是:编译器本身也是程序,也要在与之对应的某个CPU平台上运行)

       

       

       


二、ARM体系结构

1.ARM(advanced 

2.嵌入式RISC微处理器



3.数据和指令类型


             

             

 

 

 

4.处理器的工作模式(7种模式,1种非特权模式user,6种特权模式又分为5种异常模式(除了system模式))用户、管理、系统,中止、未定义,中断、快中断-----七种模式

此外:Cortext-A特有的模式 : Monitor——————也是特权模式,用于执行安全监控代码,一般用于网银等方面。

 ①目的:资源控制,最主要控制寄存器;不同模式,控制的寄存器不同

 ②什么是寄存器:

       

       

 ③什么情况下会引起CPU复位?

       

       

       

       

④什么情况下会引起CPU中断?

       

⑤fiq和irq的区别?

       

⑥supervisor为管理模式或者特权模式:CPU复位或者软件中断指令执行时会进入这种模式

     undef未定义指令访问模式

     system系统模式(可以直接访问user模式不能直接访问的MMU)

     内核需要的数据---指令数据和用户数据

5.ARM寄存器

1.异常不可屏蔽,但中断可以屏蔽。。。。。fiq和irq也是异常产生的中断;中断是外设引起,它一定属于异常中的一种;

2.ARM状态:所有指令32bits宽,程序指针PC,只能存放指令的地址,pc的值由bits[31:2]决定,bits[1:0]一直是0;

3.thumb状态:所有指令16bits宽,指令halfword半字对齐。pc的值由bits[31:1]决定,bits[0]一直是0;

4.Crotext—A以前的ARM版本,处理器有37个32位长的寄存器,其中包括30个通用寄存器,6个状态寄存器:1个CPSR当前程序状态寄存器,5个SPSR备份程序状态寄存器和1个PC程序计数器。

5. R0-R7:8种模式共用

 R8-R12:FIQ私有一组,其他共用一组。

 R13(存放栈指针sp)

 R14(用来保存PC(R15))

 R15(PC):程序计数器

 程序的状态寄存器CPSR

 SPSR:保存CPSR


6.异常处理(重点)

 1.当异常产生时,必须在ARM状态下,内核为我们实现:(复位不做前3步,只操作pc)(以下步骤无先后顺序)

 ①拷贝CPSR拷贝到相应模式下的SPSR_

 ②设置适当的CPSR位,改变处理器状态进入ARM状态,改变处理器模式进入相应的异常模式位,如果有需要,可以设置中断禁止位禁止相应的中断

 ③保存返回地址到LR_

 ④设置PC为相应的异常向量

 2.返回时,异常处理需要(最起码要操作①②步,两步同时执行)

 ①从SPSR_恢复CPSR

 ②从LR_恢复PC


7.字节序

 小端:低地址放低字节

 大端:低地址放高字节

 例:0x12345678------78为低字节

 ARM都支持,默认为小端;X86都是小端;powerpc是大端;网络通信时大端。


8.contex系列:

       

       

       

TI:德州仪器(做DSP起家)

Samsung:三星

Freescale:飞思卡尔----以前motorola的

Marvell:马维尔

Qualcomm:高通

Nvidia:英伟达-----显卡、主板

低功耗、低成本的微控控制器方向:cortex-M3/M1/M0

实时方向:cortex-R4


9.ARM指令集

       

        2.所有的ARM指令都可以条件执行

       

       

               

                

       

                  1.B  不能返回,跳转范围PC+32Mbyte和PC-32Mbyte

                 

                 

       


10.Thumb指令集

       

       

       

11.SOC概念

       

        2.AMBA----先进、微处理、总线、架构AMBA(Advanced Microcontroller Bus Architecture)   

       

       

12.ARM的处理内核

       

                 

                 

                 

                 

                 

                 

                 

                 

       

                  1.PC指向预取的指令,而非正在执行的指令

                 

                 

                 

                 

  

  

                 

                 

                 

  

  

                  1.LDM  R13!, {R0 – R3} 

                 

  

  

                 

                 

                 

  

                 

                  2.静态分支预测 

                 

                  4.支持“Hit 

                 

9.顺序代码的执行

                 

                  2.多发射,每个核中有多个 

10.ARM V6体系

                 

                  2.SIMD:单指令流,多数据流。。。。(音频和  

                 

                          

                          

                          

4.中断延迟:指从硬件中断发生到开始执行中断处理程序第一条指令之间的这段时间,中断延迟 = 识别中断时间 + [等待中断打开时间] + [关闭中断时间]