嵌入式复习


第一讲 嵌入式系统概述

一、嵌入式系统的定义:

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

二、嵌入式系统的特点:

  • 软硬件可裁剪;
  • 对功能、可靠性、成本、体积、功耗要求严格;
  • 代码短小精悍,可固化;
  • 实时性;
  • 弱交互性;
  • 需要专门的开发环境和开发工具;

三、嵌入式系统图:

在这里插入图片描述

  • 嵌入式应用软件嵌入式操作系统和是整个系统的控制核心
  • 嵌入式系统软件基本上可以分为应用层操作系统(OS)层硬件设备驱动层
    在这里插入图片描述

第二讲 ARM微处理器体系结构

RISC和CISC在构架上的不同:

  • RISC构架的指令格式和长度通常是固定的;CISC构架下的指令长度通常是可变的;
  • RISC在结构设计上是一个载入/存储的构架,只有载入和存储指令可以访问存储器,数据处理指令只对寄存器的内容进行操作。为了加速程序的运算,RISC会设定多组寄存器,并且指定特殊用途的寄存器
  • CISC架构则允许数据处理指令对存储器进行操作,对寄存器的要求相对不高

三级流水线:取指译码执行

在这里插入图片描述

  • (1) 在第1个周期,PC指向指令1,此时指令1进入三级流水线的取指阶段。
  • (2) 在第2个周期,PC指向指令2,此时指令1进入三级流水线的译码阶段,同时取出指令2。
  • (3) 在第3个周期,PC指向指令3,此时指令1进入三级流水线的执行阶段,指令2进入译码阶段,取出指令3。
  • (4) 在第4个周期,PC指向指令4,指令1执行完成,指令2和指令3流水线推进一级,同时开始指令4的取指处理

五级流水线IFIDEXMEMWB

Cortex-A9的流水线:八级流水线

在这里插入图片描述

  • 超标量:配置多个指令译码电路和执行部件,能同时执行多条指令。
  • 超标量执行:超标量CPU采用多条流水线结构。

Cortex-A9架构的处理器状态

Cortex-A9架构的处理器状态(四种):指令集状态执行状态安全状态调试状态

  • 指令集状态:共4种指令集状态,分别是ARM状态Thumb状态、Jazelle状态和ThumbEE状态

Cortex-A9内核的工作模式(九种):

其中除用户模式和系统模式外的都属于异常模式

  • 用户模式、系统模式
  • 快速中断模式、外部中断模式
  • 管理模式、超级管理模式、监视模式
  • 预取指令中止异常
  • 未定义指令模式

第三讲 ARM的指令系统及汇编程序设计

ARM指令集的种类

  • 数据处理和杂项指令
    MOV, ADD, SUB等
  • 分支指令
    B, BL, BLX, BX
  • 异常中断指令
    SWI, BKPT
  • 存储器访问指令
    LDR, STR
  • 程序状态寄存器处理指令
    MRS, MSR
  • 协处理器指令

在这里插入图片描述

寻址方式(8种)

1.立即数寻址
2.寄存器寻址3.多寄存器寻址
4.相对寻址5.寄存器间接寻址6.寄存器移位寻址7.基址、变址寻址8.堆栈寻址
在这里插入图片描述


第四讲:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五讲时钟管理单元

时钟模块(五个)

  • CPU时钟模块
  • DMC时钟模块(动漫城)
  • LEFTBUS时钟模块
  • RIGHTBUS时钟模块
  • 其他时钟模块

分频

设置某位分频值为 4,那么,分频时,原来频率假设为1000 MHz,则该频率就被分为 1000 / ( 1   +   4 )   =   200 MHz 1000/(1 + 4) = 200\text{MHz} 1000/(1+4)=200MHz


中断状态:4个

  • (1) 未激活(Inactive)
    中断尚未激活或未挂起;
  • (2) 挂起(Pending)
    中断已经产生,正等待目标CPU响应;
  • (3) 激活(Active)
    CPU已经应答(Acknowledge)来自GIC的中断,该中断正在被CPU处理但尚未完成;
  • (4) 激活并挂起(Active&Pending)
    CPU正在处理该中断,此时GIC又收到来自该中断源的更高优先级的中断。

中断类型(共160个)

【或者问“Exynos 4412中断源共有3种”】

  • (1) 软件生成的中断(SGIs):
    是通过向软件生成中断寄存器写入SGI中断号生成的。SGI一般被用作核间中断,用于核间通信。16个
  • (2) 私有外设中断(PPI):
    由一个单独的处理器私有的外设生成。16个
  • (3) 共享外设中断(SPI):
    由一个可以被中断控制器路由到多个处理器的外设生成。128个

GIC中断分组表:

GIC将ID0~ID1019分为以下几组:
(1)  16个SGI中断号(ID0~ID15),一般被用来作为核间中断 IPI(Inter-Processor Interrupt);
(2)  16个PPI中断号被分配为ID16~ID31;
(3)  SPI的中断号被分配为ID32~ID1019,Exynos 4412仅使用了前128个(ID32~ID159)。


一、DMA结构

1.共3种:

  • 单总线、I/O分离的DMA结构
  • 单总线、I/O集成的DMA结构
  • I/O总线的DMA结构

2.单总线、I/O分离的DMA结构的特点:

  • 优点:结构简单、配置代价较小、价格便宜;
  • 缺点:存储器和I/O模块之间经过DMA数据交换的路径是:MEMORY (I/O)----SYSTEM BUS----DMA----SYSTEMBUS----I/O(MEMORY),传送一个字需要消耗两个总线周期,传输效率比较低

3.单总线、I/O集成的DMA结构的特点:

  • 优点:DMA逻辑集成为I/O模块的一部分,存储器和I/O模块之间经DMA数据交换路径简化为MEMORY(I/O)----SYSTEM BUS----I/O(MEMORY) ,传送一个字节只需要一个总线周期,节省了总线周期

4.I/O总线的DMA结构的特点:

  • 优点:通过I/O总线连接I/O外设与DMA模块连接,I/O外设与DMA控制器都可以做成与总线的标准接口,满足了嵌入式微处理器结构可扩展的要求

二、DMA控制器(DMAC)

  • 地址寄存器:包括源地址和目的地址寄存器。
    在进行DMA操作之前,在CPU控制下将源地址和目的地址分别装入DMAC的源地址和目的地址寄存器;
    在进入DMA操作后,由这些地址寄存器提供出源地址和目的地址,并在传送数据的同时,由硬件以加1或减1来修改地址寄存器的值。

  • 控制/状态寄存器:选择DMAC的操作类型、工作方式、传送方向和有关参数。
    通过CPU在DMA操作之前向控制寄存器写入相应的控制字来实现的。
    状态寄存器用于寄存DMA传送前后的状态。
    DMA传送结束后,CPU通过对该寄存器执行输入指令即可读入状态字,了解所需的状态和结果

  • 字节计数器:用于控制传送数据块的长度。
    在进入DMA操作之前,CPU将数据块长度(字节数)装入字节计数器中。
    进入DMA操作后,每传送一个字节数据,由硬件自动修改计数器的值(减);当计数器溢出时,便使DMA方式的数据传送结束。


看门狗定时器计数值的计算

  • (1)输入到计数器的时钟周期
    t W a t c h D o g = 1 ( P C L K / ( 预 分 频 值   +   1 ) / 分 频 值 ) t_{WatchDog} = \dfrac{1}{( PCLK / (预分频值 + 1) / 分频值)} tWatchDog=(PCLK/(+1)/)1
    其中:
    预分频器 Prescaler的预分频值:取值范围为0~254
    分频因子 Division factor的分频值:取值为16、32、64、128(分别对应函数值0,1,2,3),由用户在WTCON(看门狗时钟控制寄存器)中设置。

  • (2)已知看门狗的定时周期T,求WTCNT初值
    T   =   计 数 值 ( W T C N T 初 值 −   W T C N T 当 前 值 )   × t W a t c h D o g T = 计数值(WTCNT初值 - WTCNT当前值) \times t_{WatchDog} T=(WTCNTWTCNT)×tWatchDog
    WTCNT为看门狗计数寄存器,用来设置计数多少个时钟周期,乘以时钟周期则是定时的总时间。
    算的时候,WTCNT当前值就是0,WTCNT初值其实就是 t W a t c h D o g t_{WatchDog} tWatchDog的倒数。

  • (3)wdt_operate(1,1,128,1,199,625,625)七个值

    • 是否Reset,是1
    • 是否中断,是1
    • 分频值对应的函数值
    • 是否使能,是1
    • 预分频值
    • 看门狗数据寄存器WTDAT:同WTCNT初值
    • 看门狗计数寄存器WTCNT

例:假设PCLK为16MHz,实现1s内不对看门狗实现喂狗操作,看门狗就会复位系统。
解:预分频值设为199,分频值设为128,T=1s则
t W a t c h D o g = 1 ( 16 M / ( 99   +   1 ) / 128 ) = 1 625 t_{WatchDog} = \dfrac{1}{( 16M / (99 + 1) / 128)}=\dfrac{1}{625} tWatchDog=(16M/(99+1)/128)1=6251
T   =   计 数 值 ( W T C N T 初 值 −   W T C N T 当 前 值 )   × t W a t c h D o g = 1 s T = 计数值(WTCNT初值 - WTCNT当前值) \times t_{WatchDog}=1s T=(WTCNTWTCNT)×tWatchDog=1s
W T C N T 初 值 = 625 WTCNT初值=625 WTCNT=625
wdt_operate(1,1,3,1,199,625,625)

第九讲 UART接口和ADC转换器

A/D转换器的基本原理:

模/数转换一般分为采样保持量化编码liangbian四个步骤。(财报量变)

A/D转换器的主要技术指标

分辨率相对精度转换速度。(分享转)

I2C总线

双向,二线制,同步,串行

SPI总线

全双工,4线制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值