嵌入式系统笔记
文章平均质量分 86
Johnny 周
百岁写代码
展开
-
ARM编程模型-常用指令集
由上述例子所示,每调用一级子函数,我们都把返回地址存入到未分组寄存器中,但是未分组寄存器毕竟是有限的,像Linux内核函数的调用层次往往很深,通用寄存器根本不够用,要想保存返回地址,就需要对数据进行压栈,那我们就要为每个模式的栈设置空间。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。未设置的掩码位保持不变。对大多数的Thumb指令而言,没有使用条件执行(标志一直都是置位的),源寄存器和目标寄存器是相同的,只使用了低端寄存器,常量有大小的限制,没有使用内嵌桶形移位器。原创 2023-09-03 13:43:04 · 2509 阅读 · 0 评论 -
ARM编程模型-指令流水线
流水线技术通过多个功能部件并行工作来缩短程序执行时间,提高处理器核的效率和吞吐率,从而成为微处理器设计中最为重要的技术之一。原创 2023-09-02 19:29:36 · 1730 阅读 · 0 评论 -
ARM编程模型-寄存器组
Cortex A系列ARM处理器共有40个32位寄存器,其中33个为通用寄存器,7个为状态寄存器。usr模式和sys模式共用同一组寄存器。原创 2023-09-02 16:16:23 · 1210 阅读 · 0 评论 -
ARM编程模型-状态模式
ARM的两种工作状态大部分的ARM处理器都实现了两种指令集,32位ARM指令集和16位Thumb指令集,看生成的机器码是32位的还是16位的ARM v6引入了新的指令集Thumb-2,能够提供32位和16位的混合指令,在增强了灵活性的同时保持了代码的高密度。ARM的2种工作状态ARM状态:执行32位ARM指令集Thumb状态:执行16位Thumb指令集或v6及以后版本支持的Thumb-2指令集。原创 2023-09-02 14:41:55 · 520 阅读 · 0 评论 -
ARM编程模型-内存空间和数据
ARM属于RISC体系,许多指令单周期指令,是32位读取/存储架构,对内存访问是32位,Load and store的架构,只有寄存器对内存,不能内存对内存存储,CPU通过寄存器对内存进行读写操作。ARM的寻址空间是线性地址空间,典型的32位地址下,空间大小为232 = 4G.注:X86 寻址是段+偏移量。原创 2023-09-02 14:34:32 · 843 阅读 · 0 评论 -
ARM处理器核心概述
紧接着LDR指令后用相同寄存器的数据操作会引起互锁,原因使用相同的寄存器,后面的指令执行依赖相同寄存器。需要注意的是,PC指向的是将要被预取的指令,而不是执行的指令。3级流水线:取值解码执行,从而允许 一些操作同时运行。ARM920T-arch v4T.哈佛结构,5级流水线,具有MMU。ARM V6架构,8级流水线,支持静态和动态的分支预测以及返回堆栈。提供虚拟地址到物理地址的转换,提供操作系统的续存管理。面向复杂的APP的processor,如移动终端。分支指令的存在可能打断流水线的运行。原创 2023-08-29 21:27:36 · 310 阅读 · 0 评论 -
嵌入式系统存储体系
主要分为三种:高速缓存(cache)、主存和外存。原创 2023-08-28 21:22:51 · 630 阅读 · 0 评论 -
嵌入式系统总线-片内总线
总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的公共通道。原创 2023-08-19 21:28:17 · 494 阅读 · 0 评论 -
主流的嵌入式微处理器
嵌入式系统架构原创 2023-08-15 20:48:53 · 978 阅读 · 0 评论 -
嵌入式硬件系统的基本组成
冯.诺依曼架构特点是指令代码和数据存放在同一个存储空间,是统一编址的,并行度不够,对指令的操作和对数据的操作要分开,指令和数据通过同一总线访问。系统上电后在主存中的代码直接运行,主存储器的特点是速度快,一般采用ROM、EPROM、Nor Flash、SRAM、DRAM等存储器件。嵌入式微处理器有许多不同的体系,即使在同一体系中也可能有不同的时钟速度和总线数据宽度、集成不同的外部接口和设备。嵌入式系统的硬件是以包含嵌入式微处理器的SOC为核心,主要由SOC、总线、存储器、输入/输出接口和设备组成。原创 2023-07-30 17:05:01 · 8901 阅读 · 0 评论