ARM Arch

目录

参考:Cortex-M3权威指南.pdf

什么是ARM?

ARM是一种处理器架构,就像汽车的发动机设计图。ARM公司只设计"蓝图",其他公司(如苹果、高通、三星)根据这个蓝图制造实际的芯片。

核心特点

  • 低功耗:非常省电,适合手机、平板等移动设备
  • 高性价比:性能足够强,成本相对较低
  • 广泛应用:从智能手表到服务器都在使用

RISC架构简介

什么是RISC?

RISC(精简指令集计算机)是一种处理器设计哲学,与CISC(复杂指令集)相对。

RISC的核心思想

  • 简单指令:每条指令只完成一个基本操作
  • 固定长度:指令长度一致,解码简单
  • Load-Store架构:只有专门的加载/存储指令可以访问内存
  • 多用寄存器:大量通用寄存器提高效率

RISC vs CISC 对比

特性 RISC (ARM) CISC (x86)
指令数量 较少,简单 很多,复杂
指令长度 固定 可变
内存访问 只能通过Load/Store 指令可直接操作内存
设计哲学 硬件简单,编译器复杂 硬件复杂,编译器简单
功耗

核心部件:主控、内存、FLASH

详见: - ARM Cortex-M CPU

1. 主控芯片(CPU) - "大脑"

主控芯片是设备的"大脑",负责所有的计算和控制工作。

主要功能: - 执行数学运算(1+1=2) - 逻辑判断(如果...那么...) - 控制其他部件(让屏幕显示、让喇叭发声)

2. 内存(RAM) - "工作台"

内存就像是工作时的"临时工作台"。

特点: - 速度快:CPU可以快速读写 - 临时存储:断电后数据消失 - 空间有限:同时只能处理一定量的数据

工作方式:

CPU 从 FLASH 加载程序 → 在 内存 中运行程序 → 处理完成后保存结果

3. FLASH存储 - "文件柜"

FLASH就像是"文件柜",用于长期保存数据。

特点: - 永久存储:断电后数据不丢失 - 容量较大:可以存储很多程序和数据 - 速度较慢:比内存读写慢

存储内容: - 操作系统(如Android、iOS) - 应用程序(微信、游戏) - 用户数据(照片、文档)

三者如何协同工作?

简单比喻

想象你在办公室工作: - 主控(CPU) = 你本人(思考和工作) - 内存(RAM) = 办公桌(临时放正在处理的文件) - FLASH = 文件柜(长期存放所有文件)

实际工作流程

  1. 开机启动:从FLASH加载操作系统到内存
  2. 运行程序:从FLASH加载App到内存运行
  3. 数据处理:CPU在内存中计算和处理
  4. 保存结果:将重要数据写回FLASH保存

运算的基本原理

1. 二进制世界

计算机只认识0和1,所有数据都用二进制表示: - 数字:5 = 二进制 101 - 文字:A = 二进制 01000001 - 图片:由无数个彩色点组成,每个点用数字表示

2. 基本运算过程

加法示例:

计算:3 + 2

二进制:011 + 010
步骤:
  011
+ 010
------
  101  (十进制5)

3. 指令执行流程

CPU的工作就是不断重复以下步骤:

  1. 取指令:从内存读取下一条要执行的命令
  2. 解码:理解这个命令要做什么
  3. 执行:实际进行运算
  4. 存储:将结果保存到内存或寄存器

指向指令

CPU是靠机器码和寄存器操作来运行的,见: - GeneralReg - - SpecialReg_xPSR

从C代码到CPU执行的完整流程

C源代码 → 编译器 → 汇编代码 → 汇编器 → 机器码 → 存储在FLASH
                                              ↓
                                       开机加载到内存
                                              ↓
                                        CPU逐条执行

实际应用举例

手机拍照过程

  1. 启动相机:从FLASH加载相机程序到内存
  2. 取景预览:CPU处理摄像头数据,在内存中生成预览画面
  3. 按下快门:CPU进行图像处理、压缩
  4. 保存照片:将处理好的图片从内存写入FLASH存储

游戏运行

  1. 游戏程序存储在FLASH中
  2. 运行时加载到内存
  3. CPU和GPU(图形处理器)在内存中进行计算
  4. 生成画面输出到屏幕
  5. 游戏进度保存到FLASH

重要概念总结

部件 比喻 特点 作用
主控(CPU) 大脑 运算、控制 执行所有计算任务
内存(RAM) 工作台 速度快、临时性 提供运行空间
FLASH 文件柜 永久存储、容量大 长期保存数据

学习

  1. 理解层次关系:C语言 → 汇编 → 机器码 → 硬件执行
  2. 动手实验:尝试写简单C程序,查看生成的汇编代码
  3. 关注数据流:观察数据如何在寄存器、内存、FLASH之间流动
  4. 理解RISC优势:简单指令如何通过流水线提高效率