跳转至

嵌入式重点

第一章 绪论

基本概念与特点

填空题 概念、特点 - 嵌入式系统:是嵌入到对象体系中的、用于执行独立功能的专用计算机 - 嵌入式系统的三要素: 1. 嵌入性——满足环境要求 2. 专用性——满足配置要求 3. 计算机系统——满足控制要求 - 与桌面通用系统的区别(19~20简答题): - 专用 - 实时性强 - 可靠性 - 功耗低 - 资源较少 - 开发需要专用工具和特殊方法 - 开发:交叉编译 - 调试:仿真器、虚拟机 - 更新:在线升级 - 结构(19~20填空题): 1. 嵌入式处理器 2. 外围硬件设备 3. 嵌入式操作系统(可选) 4. 用户的应用软件

第二章 ARM微处理器与编程模型

体系结构

  • 冯诺依曼结构:
    • 将程序与数据存放在同一存储器不同地址
    • 顺序执行指令
    • 执行过程:
      1. 取指(数据)
      2. 译码
      3. 执行
  • 哈佛结构:
    • 将程序和数据存放在不同的存储器
    • 并行执行指令
    • 执行过程:
      1. 取指(数据)
      2. 译码
      3. 执行

指令系统

  • RISC:精简指令集计算机
    • Load-Store结构:CPU只处理寄存器中的数据,使用Load-Store指令完成数据在寄存器和外部存储器之间的传送

流水线

  • Pipeline:几条指令可以并行执行
  • 三级流水线

微处理器

  • ARM内部芯片结构:
    • ARM CPU(内核) + 外部设备(部件) = ARM芯片

运行模式

  • 7种运行模式:
    1. USR用户模式:ARM处理器正常的程序执行状态
    2. FIQ快速中断模式:用于高速数据传输或通道处理
    3. IRQ外部中断模式:用户通用的中断处理
    4. SVC管理模式:操作系统使用的保护模式,处理软件中断
    5. ABT数据访问中止模式:当数据或指令预取中止时进入该模式
      • 可用于虚拟存储器和存储器保护
    6. UND未定义指令模式:当未定义的指令执行时进入该模式
      • 可用于支持硬件协处理器和软件仿真
    7. SYS系统模式:运行具有特权的操作系统任务

异常

[!note] ARM处理异常 步骤: 1. 保存断点 2. 保存状态 3. 设置异常模式 4. 跳转执行 返回的具体步骤: 1. 恢复断点 2. 恢复状态 3. 清除中断状态 4. - ARM处理异常的具体步骤: 1. 将下一条指令的地址存入相应链接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。 2. 将CPSR复制到相应的SPSR中, 3. 根据异常类型,强制设置CPSR的运行模式位。 4. 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。同时设置中断禁止位。 - ARM处理异常返回的具体步骤: 1. 将链接寄存器L的值减去相应的偏移量后送到PC中。 2. 将SPSR复制回CPSR中。(※) 3. 若在进入异常处理时设置了中断禁止位,要在此清除。 4. 可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。 - 优先级: 1. 复位 2. 数据中止 3. FIQ 4. IRQ 5. 预取指令中止 6. 未定义指令 7. SWI - 异常向量地址:image.png

第三章 ARM指令集与汇编程序设计

image.png image.png

第四章 嵌入式存储器系统

系统的启动方式

  • NAND FLASH作为引导ROM的启动流程:image.png

存储芯片连接

  • 数据总线:顺序连接即可
  • 控制总线:将存储器芯片的控制引脚与微处理器芯片对应的控制引脚连接
  • 地址总线:image.png
    • S3C2440的A0/A0A1用作存储器的片选

NAND/NOR FLASH的特点

  • NAND FLASH:
    1. 速度相对慢,程序必须放入RAM才能执行
    2. CPU需通过专门的控制器才能访问
    3. 使用时需要复杂的I/O接口电路和存储管理操作
      • 以页为最小单位进行读写
      • 以块为最小单位进行擦除
    4. 擦写次数约为100万次
    5. 容量大,价格经济
    6. 需要借助内部RAM才能实现引导系统启动,支持自动启动引导
  • NOR FLASH
    1. 访问速度快,程序可以在其内部直接运行、
    2. CPU可以直接访问
    3. 擦写次数约为10万次
    4. 写入速度慢,容量小,价格高
    5. 带有SRAM接口,与微处理器连接方便,便于数据存取
    6. 常作为内部或者外部ROM,存放BootLoader程序,引导系统启动

第五章 常用外围设备及接口

GPIO案例

中断

  • 中断的作用:
    1. 并行处理
    2. 实时处理
    3. 故障处理
  • 外部中断相关:
    • 外部中断控制器(EXTINTn):用于设定外部中断请求信号的触发方式
    • 外部中断滤波寄存器(EINTFLTn):设定滤波器的时钟信号来源和滤波宽度
    • 外部中断屏蔽寄存器(EINTMASK):用于设定20个外部中断请求信号是否允许中断
    • 外部中断挂挂起寄存器(EINTPEND):用于标记外部中断请求信号是否触发,供中断服务程序读取和判断
  • 一级中断相关:
    • 源挂起寄存器(SRCPND):用于标记一级中断源的中断请求信号是否触发,即是否有中断等待处理,供中断服务程序读取和判断
    • 中断模式寄存器(INTMOD):用于设定32个一级中断源的中断模式
    • 中断屏蔽寄存器(INTMASK):用于设定32个一级中断源是否被允许中断
    • 中断优先级:通过中断优先级来确定中断请求的服务顺序

时钟与定时部件

  • 定时器的特点:

    1. 实际执行减1操作的是TCNTn,为了防止对其读写影响计数,不允许程序对其直接访问
      • 通过程序将计数初值写入TCNTBn。每次定时开始时,会被复制到TCNTn中
      • 通过程序读取TCNTOn,间接获取TCNTn的动态计数值
      • 通过程序读取TCNTBn,读出的是下次定时操作的重载值
    2. TCNTn减到0时,可以根据TCON的自动重载标志,决定是否复制TCNTBn到TCNTn中,以开启下一次定时操作。
    3. 内部设有双缓冲功能
      • 因此,在当前定时操作VS,若设置心得定时器值,仅当当前定时操作执行完毕后才有效
  • 实时时钟:用于提供年月日时分秒星期等实时时间信息

  • 看门狗定时器:用于当噪音或系统错误引起故障时,恢复控制器操作的定时器
    • 本质是一个16位内部定时器,当计数器值为0(超时)时,通过触发中断服务,激活128个PCLK时钟周期内部的复位信号
    • 系统处于嵌入式ICE调试模式时,WDT必须无操作

第六章 Linux编程基础

  • Bootloader:操作系统内核运行之前运行的一段小程序
    • 通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
  • 五个主要子系统:
    1. 进程调度
    2. 进程间通信
    3. 内存管理
    4. 虚拟文件系统
    5. 网络接口