ARM体系结构
内存管理
(多线程)
栈:局部变量 函数参数 函数返回地址堆:程序员自己管理的内存区域,使用时需要动态申请, ---- 释放bss : 初始化为 0 和未初始化的全局及静态变量bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小;data :初始化不为 0 全局及静态变量data段(已手动初始化的数据)则为数据分配空间,数据保存在目标文件中;(全局变量初始化不为0会增加代码所占空间)bss和data段整个区段被称为数据区
ARM处理器
RAM
RAM: (random access memory)随机存储器
--快 掉电数据丢失
SRAM DRAM SDRAM DDR(n) 静态 动态(电容+晶体管 需要刷新) (时钟)同步 SDRAM 2及以上版本
ROM
ROM: (read only memory) 只读存储器
--慢 掉电数据不丢失
PROM EPROM EEPROM 可编程 可擦除可编程 电子可擦除可编程 (只能写一次) (用光擦除,擦除范围较难控制) 用电擦除
Flash
Flash:闪存
--快 掉电数据不丢失
线性访问
有专门的地址总线和数据总线(可以像内存一样访问)
norflash : 或非门 可线性访问
nandflash : 与非门 不可线性访问
CPU结构
计算机两大结构
计算机结构
冯诺依曼结构:数据和指令一起存储
(速度较哈佛结构慢些,同一时间只能存取一条指令或一条数据)
哈佛结构:
数据和指令分开存储(下图属于哈佛结构)
(速度更快,同一时间可以同时存取一条数据和一条指令)
CPU构成
寄存器: R0~R12PC: 程序计数器, 默认值为 0 , 做自加运算, 实际指向正在运行的下下条指令LR: 链接寄存器 保存函数的返回地址SP: 栈指针寄存器, 指向栈顶增栈:从低地址向高地址增长减栈:从高地址向低地址增长满栈:存数据时,栈顶指针先加一再存数据,栈顶指针指向新入栈的数据空栈:存数据时,数据先存入栈顶指针指向的空间,再加一,此时栈顶指针指向空使用满减栈:减栈:若数据入栈溢出时 不会溢出到内核区,而是堆区满栈:当最后一个数据出栈后,栈顶指针不会越界CPSR: 运算结果为正、负、进借位、结果为 0 等标志, 中断的使能, 工作状态,工作模式SPSR: CPSR 的备份Cache: 缓存MMU : 内存管理单元 ( 虚拟地址到物理地址的映射 )
Soc
CPU :中央处理单元MCU :微控制器 51 单片机MPU :微处理器 intelDSP :数字信号处理器FPGA :现场可编程门阵列 -- 硬件设计语言
总线
数据总线:地址总线:控制总线:读写信号等AHB :高速总线APB :低速总线
指令集
RISC :精简指令集CISC :复杂指令集