一、内存分布结构
栈:局部变量 函数参数 函数返回地址
堆:程序员自己管理的内存区域,使用是需要动态申请,使用捷顺后需要释放
bss: 初始化为0和未初始化的全局及静态变量
data:初始化不为0全局及静态变量
data段和bss段的区别
1、data段:存放已初始化的全局变量。在编译器编译的时候,会给已初始化的数据分配内存空间,数据保存在目标文件中。
2、bss段:存放未初始化的全局变量。在编译器编译的时候,不会给该段的数据分配空间,只是记录数据所需的空间大小。程序执行的时候再分配内存并将内存清零。
二、ARM的结构
以最基本的功能实现为基础
1、RAM和ROM
(1)RAM: random access memory 随机存储
特点:运行速度快快 掉电数据丢失
(2)ROM: read only memory 只读存储
特点:运行速度慢慢 掉电数据不丢失
2、RAM的迭代过程
RAM ->SRAM-> DRAM-> SDRAM-> DDR(n) (静态-> 动态-> 同步)
3、ROM的迭代过程
ROM-> PROM-> EPROM-> EEPROM (可编程-> 可擦除(紫外线)-> 电擦除 )
3、flash
特点:运行速度快 掉电数据不丢失
线性访问: 有专门的地址总线和数据总线(可以像内存一样访问)
norflash : 或非门 可线性访问
nandflash : 与非门 不可线性访问
三、CPU的结构
以CPU – ARM920T为例
PC:程序计数器, 默认值为0, 做自加运算, 实际指向正在运行的下下条指令
LR: 链接寄存器 保存函数的返回地址
SP: 栈指针寄存器, 指向栈顶
CPSR: 运算结果为正、负、进借位、结果为0等标志, 中断的使能, 工作状态,工作模式 S
PSR: CPSR的备份
Cache:缓存
MMU: 内存管理单元(虚拟地址到物理地址的映射)
四、处理器的结构
以SOC处理器为例
由CPU(中央处理器)和其他微控制器组成搭配不同的控制器来实现所需功能
AHB:高速总线
APB:低速
1、ARM处理器的最新发展
(1)Cortex-A 特点:低功耗 消费低
(2)Cortex-R 特点:实时性
(3)Cortex-M 高性能,偏控制
2、处理器工作模式
ARM有7个基本工作模式
(1)User:非特权模式,大部分任务执行在这种模式
(2)FIQ :当一个高优先级(fast)中断产生时将会进入这种模式
(3)IRO:当一个低优先级(normal)中断产生时将会进入这种模式
(4)Supervisor:当复位或软中断指令执行时将会进入这种模式
(5)Abort:当存取异常时将会进入这种模式
(6)Undef:当执行未定义指令时会进入这种模式
(7)System:使用和User模式相同寄存器集的特权模式
还有一种Cortex-A特有模式:
Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;.也是一种特权模式