跳到正文
HeZzz's Notes
返回

嵌入式系统设计与应用-2026sp-重点

在 Github 上编辑此页

嵌入式系统设计与应用 2026 春季学期的期末复习重点。

本文连载于嵌入式系统设计与应用-2026sp-重点 | HeZzz.

🙇‍♂️🙇‍♂️🙇‍♂️时间仓促,有不足之处烦请及时告知。邮箱hez2z@foxmail.com 或者在 速通之家 群里 @9¾

题型分布

题型数量每题分值总分说明
简答题68486 道简答题
解释 ARM 指令5210-
程序设计21122程序填空
ARM 汇编
用 ARM 调用 C
C 内嵌汇编调用 ARM
问答题4520-
总计100四题型

重点

第一章 嵌入式系统概述

嵌入式系统的特点

嵌入式系统硬件的基本结构

以嵌入式处理器为中心,配置存储器、I/O 设备、通信模块以及电源等必要的辅助接口组成。

嵌入式系统是“量身定做”的“专用计算机应用系统”,硬件配置非常精简,除了微处理器和基本的外围电路以外,其余的电路都可以根据需要和成本进行“裁剪”、“定制化”,经济、可靠。

嵌入式系统软件的基本结构

设计较复杂的程序时,需要一个操作系统(OS)来管理和控制内存、多任务、周边资源等等。以减少应用程序员的负担。

嵌入式系统软件结构一般包含四个层面:

第二章 ARM处理器体系结构

经典 ARM 处理器家族及作用

目前 ARM 处理器主要分为经典系列和 Cortex 系列:

Cortex-A8 处理器工作模式

Cortex-A8 是基于ARMv7构架的处理器,共有8种工作模式:

处理器模式模式标识符备注
用户模式 (User)usr正常程序执行模式
系统模式 (System)sys使用和用户模式相同的寄存器组,用于运行特权级操作系统任务
管理模式 (Supervisor)svc系统复位或软件中断时进入该模式,是供操作系统使用的一种保护模式
外部中断模式 (IRQ)irq低优先级中断发生时进入该模式,常用于普通的外部中断处理
快速中断模式 (FIQ)fiq高优先级中断发生时进入该模式,用于高速数据传输和通道处理
数据访问中止模式(Abort)abt当存取异常时进入该模式,用于虚拟存储和存储保护
未定义指令中止模式 (Undefined)und当执行未定义指令时进入该模式,用于支持硬件协处理器的软件仿真
安全监控模式 (Monitor)mon可在安全模式和非安全模式下转换

其中

ARM 状态寄存器(CPSR 和 SPSR)

ARM处理器有两类程序状态寄存器:1 个当前程序状态寄存器 CPSR 和 6 个备份程序状态寄存器 SPSR。

它们的主要功能是:

每一种处理器模式下使用专用的备份程序状态寄存器。

当特定的中断或异常发生时,处理器切换到对应的工作模式下,该模式下的备份程序状态寄存器 SPSR 保存当前程序状态寄存器 CPSR 的内容。

当异常处理程序返回时,再将其内容从备份程序状态寄存器 SPSR 回复到当前程序状态寄存器 CPSR。

大/小端存储方式

Cortex-A8处理器支持大端(Big-endian)和小端(Little-endian)两种存储模式,同时还支持混合大小端模式(既有大端模式也有小端模式)和非对齐数据访问。可以通过硬件的方式设置(没有提供软件的方式)端模式。

大端模式是被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。

小端模式中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。

例如,一个 32 位字数据 0x12345678

大端存储模式
高字节放低地址,低字节放高地址
高地址 78
56
34
低地址 12
小端存储模式
低字节放低地址,高字节放高地址
高地址 12
34
56
低地址 78

第三章 ARM指令集

汇编寻址方式

汇编寻址方式是ARM指令集的核心,决定了指令如何获取操作数。根据提供的资料,主要的寻址方式及其特点如下:

  1. 立即寻址 (Immediate Addressing)

    操作数直接在指令中给出,称为立即数,要求以“#”为前缀(十六进制为“#0x”)。

    示例ADD R0, R0, #1(R0 = R0 + 1)。

  2. 寄存器寻址 (Register Addressing)

    操作数的值存放在寄存器中,指令执行时直接取出寄存器值。

    特点:支持在寻址时进行移位操作(如LSL逻辑左移、LSR逻辑右移等)。 示例MOV R1, R2ADD R3, R2, R1, LSR #2

  3. 寄存器间接寻址 (Register Indirect Addressing)

    寄存器中的值是操作数的内存地址,操作数本身存放在存储器中。 示例LDR R0, [R1](将R1指向的地址中的数据传送到R0)。

  4. 基址加偏址寻址 (Base plus Offset Addressing)

    将基址寄存器的内容与指令中给出的地址偏移量(立即数或寄存器)相加,得到有效地址。

    • 模式
      • 前变址LDR R0, [R1, #4]
      • 自动变址LDR R0, [R1, #4]!(访问后更新基址寄存器R1 = R1 + 4)。
      • 后变址LDR R0, [R1], #4(访问后再更新基址)。
  5. 堆栈寻址 (Stack Addressing)

    使用专门的堆栈指针(SP/R13)指示操作位置,遵循先进后出(FILO)原则。

    • 类型:分为满递增(FA)、空递增(EA)、满递减(FD)、空递减(ED)。
    • 规范ATPCS规定使用FD(满递减)类型,且操作需8字节对齐。
    • 指令STMFD(入栈)、LDMFD(出栈)。
  6. 块拷贝寻址 (Block Copy Addressing)

    用于多寄存器传送指令(LDM/STM),实现存储器数据块与多个寄存器之间的数据交换。

    • 后缀:IA(每次传送后地址加4)、IB(传送前加4)、DA(传送后减4)、DB(传送前减4)。
  7. 相对寻址 (Relative Addressing)

    以程序计数器(PC)的当前值为基地址,指令中的地址标号作为偏移量,两者相加得到有效地址。

    • 示例BL NEXT(跳转到子程序NEXT执行)。

这些寻址方式中,堆栈寻址(FD)基址加偏址寻址在程序设计题(如冒泡排序或字符串处理)中非常常用。

第二操作数移位方式(指令中移位)

LSL (Logical Shift Left):逻辑左移,空出的最低有效位用 0 填充。

LSR (Logical Shift Right):逻辑右移,空出的最高有效位用 0 填充。

ASL (Arithmetic Shift Left):算术左移,由于左移空出的有效位用 0 填充,因此它与 LSL 同义。

ASR (Arithmetic Shift Right):算术右移,算术移位的对象是带符号数,移位过程中必须保持操作数的符号不变。如果源操作数是正数,空出的最高有效位用 0 填充,如果是负数用 1 填充。

ROR (Rotate Right):循环右移,移出的字的最低有效位依次填入空出的最高有效位。

RRX (Rotate Right with Extend):带扩展的循环右移。将寄存器的内容循环右移1位,空位用原来 C 标志位填充.

第四章 S5PV210微处理器与接口 / Thumb 指令集

S5PV210 处理器组成

S5PV210处理器主要由6大部分组成,分别为 CPU 核心、系统外设、多媒体、电源管理、存储器接口和 Connectivity 模块。CPU 和各个部分之间通过多层次 AHB/AXI 总线进行通信。

GPIO 接口

GPIO(General-Purpose Input/Output Ports)全称是通用编程I/O端口。它们是CPU的引脚,可以通过它们向外输出高低电平,或者读入引脚的状态,这里的状态也是通过高电平或低电平来反应的,所以GPIO接口技术可以说是CPU众多接口技术中最为简单、常用的一种。

每个GPIO端口至少需要两个寄存器:

控制和数据寄存器的每一位和GPIO的硬件引脚相对应,由控制寄存器设置每一个引脚的数据流向,数据寄存器设置引脚输出的高低电平或读取引脚上的电平。

Thumb 指令集

04-02-第四章Thumb指令集-2026

编写程序 ARM 汇编,ARM 调用 C 语言,C 语言调用内嵌汇编

第五章 ARM-Linux内核

GNU/Linux 操作系统的基本体系结构

graph TD
  
    subgraph UserSpace ["用户空间"]
        App["用户应用程序"]
        Glibc["GNU C 库 (glibc)"]
    end

    subgraph KernelSpace ["内核空间"]
        SCI["系统调用接口 (SCI)"]
        KernelIndep["内核 (独立体系结构代码)"]
        KernelDep["与体系结构相关代码"]
    end

    Hardware["硬件平台"]

    %% 连接关系
    App --- Glibc
    App --- SCI
    Glibc --- SCI
    SCI --- KernelIndep
    KernelIndep --- KernelDep
    KernelDep --- Hardware

    %% 样式调整
    style UserSpace fill:#f9f9f9,stroke:#333,stroke-width:2px
    style KernelSpace fill:#f9f9f9,stroke:#333,stroke-width:2px
    style Hardware fill:#fff,stroke:#333,stroke-width:2px

用户空间包括用户应用程序和GNU C库(glibc库),负责执行用户应用程序。

内核空间可以进一步划分成 3 层:

ATPCS 规范

ATPCS ( ARM-Thumb Produce Call Standard)是 ARM 程序和 Thumb 程序中子程序调用的基本规则,目的是为了使单独编译的 C 语言程序和汇编程序之间能够相互调用。这些基本规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则和参数的传递规则。

第十一章 嵌入式系统的开发设计案例

传统的嵌入式系统设计流程

flowchart TD
    A[系统定义] --> B[可行性分析]
    B --> C[需求分析]
    C --> D[系统总体设计]
    D --> E[硬件设计]
    D --> F[软件设计]
    E --> G[硬件测试]
    F --> H[软件测试]
    G --> I[软硬件集成、测试]
    H --> I
    I --> J{符合要求}
    J -- 是 --> K([开发结束])
    J -- 否 --> D

协同设计概念的嵌入式系统设计方法

flowchart TD
    A[系统定义] --> B[可行性分析]
    B --> C[需求分析]
    C --> D[系统总体设计]
    D --> E[系统级仿真建模]
    E --> F[硬件综合]
    E --> G[软件综合]
    F --> H[软硬件协同仿真和验证]
    G --> H
    H --> I[系统集成、测试]
    I --> J{符合要求}
    J -- 是 --> K[开发结束]
    J -- 否 --> D

嵌入式系统组成,作用特点,软件和硬件,软件里 Linux 操作系统组成,硬件 S5PV210 内容

ARM-Linux 操作系统基本组成

AEM 处理器 CPSR SPSR 经典类型处理器家族作用

存储器大小端存储方式

六种 指令中 移位

Cortex-A8 处理器工作模式支持处理器类型

汇编寻址方式

嵌入式系统设计方法,传统和现代流程内容

伪代码和伪指令含义操作

ARM 里 ATPCS,堆栈寻址

notebooklm: 嵌入式系统设计与应用


在 Github 上编辑此页
分享这篇资料:

上一篇
嵌入式系统设计与应用-2026sp-期中
下一篇
软件工程-2025fa-重点