
从零开始学嵌入式-12.ARM体系结构与接口技术
文章平均质量分 67
ARM体系结构与接口技术
Jing's secret
头发少,样子老,背个双肩包像沙雕
展开
-
12.12 GPIO寄存器分析
通过数据手册分析GPIO中哪些寄存器可以控制LED - GPX2CON、GPX2DAT。通过电路原理图查找LED与Exynos4412的连接关系 - GPX2_7。通过电路原理图分析LED的控制逻辑 - 高电平点亮、低电平熄灭。通过程序去操控对应的寄存器完成对LED的控制。原创 2023-07-17 17:02:10 · 227 阅读 · 0 评论 -
12.11 FS4412开发环境搭建
1.数据运算指令(CPU内部)2.跳转指令(CPU内部)3.load/store(通过读写对硬件进行控制)4.状态寄存器传送指令(CPU内部)5.SWI(CPU内部)6.协处理器指令(CPU内部)原创 2023-07-17 15:26:15 · 388 阅读 · 0 评论 -
12.10 伪操作与混合编程
不生成代码,只是在编译阶段告诉编译器怎么编译.global.local.equ.macro.endm。原创 2023-07-17 10:27:30 · 228 阅读 · 0 评论 -
12.9 专用指令
专门用来读写CPSR寄存器的指令。原创 2023-07-13 17:03:25 · 382 阅读 · 0 评论 -
12.8 栈的种类与应用
空栈:栈指针指向最后一次压入到栈中的数据的相邻位 置,压栈时可直接压栈,之后需要将栈指针移动 到相邻位置。满栈:栈指针指向最后一次压入到栈中的数据,压栈时 需要先移动栈指针到相邻位置然后再压栈。不管寄存器列表中的顺序如何,存储时永远是低地址存储小标号的寄存器。将R1-R4寄存器中的数据存储到内存以R11为起始地址的内存中。如局部变量、函数的参数、返回值、以及程序跳转时需要保护的寄存器。增栈:压栈时栈指针越来越大,出栈时栈指针越来越小。减栈:压栈时栈指针越来越大,出栈时栈指针越来越小。堆需要程序员自己申请。原创 2023-07-13 16:56:48 · 229 阅读 · 0 评论 -
12.7 跳转与存储器访问指令
不带返回的跳转指令,本质就是将pc寄存器的值修改成跳转标号下第一条指令的地址。带返回的跳转指令,本质就是将pc寄存器的值修改成跳转标号下第一条指令的地址。将R1寄存器中的数据写入到R2+8指向的内存空间,然后R2自增8。将R1寄存器中的数据写入到R2+(R3<<1)指向的内存空间。将R1寄存器中的数据写入到R2指向的内存空间,然后R2自增8。将内存中R2指向的内存空间中的数据读取到R3寄存器。将R1寄存器中的数据写入到R1+R3指向的内存空间。将R1寄存器中的数据写入到R2+8指向的内存空间。原创 2023-07-13 10:09:51 · 268 阅读 · 0 评论 -
12.6 数据处理指令
操作码:表示执行哪种操作》《目标寄存器:用于存储运算的结果》《第一操作寄存器:存储第一个参与运算的数据(只能是寄存器)》《第二操作数:第二个参与运算的数据(可以是寄存器或立即数)》能放在MOV之后的数,0-255,包含在指令当中的数,属于指令的一部分,优点:速度快取指的时候就可以将其读取到CPU,不用单独去内存读取,缺点:不能是任意的32位的数字,有局限性。BIC R1, R2, #0xF @第二操作数中哪一位为1,就将第一操作寄存器中哪一位清零,将结果放入目标寄存器。运算结果的高32位放在R6。原创 2023-07-12 09:05:03 · 289 阅读 · 0 评论 -
12.5 ARM指令集导学
能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...) 指令在内存中以机器码(二进制)的方式存在 每一条指令都对应一条汇编 程序是指令的有序集合。每条汇编都会唯一对应一条机器码,且CPU能直接识别和执行即汇编中所有的指令都是CPU能够识别和执行的。C中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等 都是编译器来分配和维护。汇编中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等都需要自己维护。理解C的本质,用汇编的思想写出高效的C代码。理解CPU是怎样执行程序的。原创 2023-07-11 11:49:54 · 216 阅读 · 0 评论 -
12.4 ARM异常处理
指令流水线机制的引入确实能够大大的提升指令执行的速度但在实际执行程序的过程中很多情况下流水线时是无法形成的比如芯片刚上电的前两个周期、执行跳转指令后的两个周期等所以指令流水线的引入以及优化只能使平均指令周期不断的接近1而不可能真正的达到1,且流水线级数越多芯片设计的复杂程度就越高,芯片的功耗就越高。因为异常向量表空间有限一般我们不会再这里写异常处理程序,而是在对应的位置写一条跳转指令使其跳转到指定的异常处理程序的入口 注:ARM的异常向量表的基地址默认在0x00地址但可以通过配置协处理器来修改其地址。原创 2023-07-07 11:34:41 · 1078 阅读 · 0 评论 -
12.3 ARM寄存器组织
CPSR寄存器分为四个域,[31:24]为条件域用F表示、[23:16]为状态域用S表示、[15:8]为预留域用X表示、[8:0]为控制域用C表示。C语言中register存储在寄存器中,但无法进行取地址&因为没有地址,只能修饰局部变量,因为寄存器存储空间太少,不能长时间被占用。产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下一条指令的地址,异常处理结束后将LR的值复制到PC可实现程序返回。注 三角表示只能在某个特定模式下只能使用当前模式下的寄存器,一个模式下特有的寄存器其他模式下不可使用。原创 2023-07-07 11:34:10 · 774 阅读 · 0 评论 -
12.2 ARM处理器概论
ARM(Advanced RISC Machines)有三种含义一个公司的名称、一类处理器的通称、一种技术能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)指令在内存中以机器码(二进制)的方式存在每一条指令都对应一条汇编程序是指令的有序集合。原创 2023-07-06 19:39:40 · 308 阅读 · 0 评论 -
12.1 计算机硬件基础
CPU工作方式是串行同一时间只能进行一个运算。原创 2023-07-06 09:09:00 · 147 阅读 · 0 评论