随笔分类 -  ARM

摘要:ARM处理器的工作状态 在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。 《嵌入式系统开发与应用教程(第2版)》上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子: ARM核 阅读全文
posted @ 2016-04-24 22:03 SuGuolin 阅读(17161) 评论(0) 推荐(6)
摘要:为什么需要多寄存器访问指令?ldr/str每周期只能访问4字节内存,如果需要批量读取、写入内存时太慢,解决方案是stm/ld举例(uboot start.S 537行) stmia sp, {r0 - r12}将r0存入sp指向的内存处(假设为0x30001000);然后地址+4(即指向0x3000... 阅读全文
posted @ 2015-11-27 18:03 SuGuolin 阅读(204) 评论(0) 推荐(0)
摘要:协处理器cp15操作指令:mcr & mrc•mrc用于读取CP15中的寄存器•mcr用于写入CP15中的寄存器什么是协处理器?•SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。•ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(cp:copro... 阅读全文
posted @ 2015-11-27 17:39 SuGuolin 阅读(179) 评论(0) 推荐(0)
摘要:常用ARM指令1:数据处理指令 •数据传输指令 mov mvn mov r1, r0 @两个寄存器之间数据传递 mov r1, #0xff @将立即数赋值给寄存器mov 和mvn用法一样,区别是mov是原封不动的传递,而mvn是按位取反后传递•算术指令 add sub rs... 阅读全文
posted @ 2015-11-27 11:21 SuGuolin 阅读(412) 评论(0) 推荐(0)
摘要:(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行。(汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码。两种不同风格的ARM指令--ARM官方的ARM汇编风格:指令... 阅读全文
posted @ 2015-11-23 21:34 SuGuolin 阅读(329) 评论(0) 推荐(0)
摘要:1、什么是异常? 正常工作之外的流程都叫异常 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作 中断是异常的一种2、异常向量表 所有的CPU都有异常向量表,这是CPU设计时就设定好,是硬件决定的。 当异常发生时,CPU会自动动作(PC跳转到异常向量处处理异常,... 阅读全文
posted @ 2015-11-19 17:52 SuGuolin 阅读(336) 评论(0) 推荐(0)
摘要:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。6个状态寄存器。这些寄存器都是32位寄存器。通用寄存器(R0-R15)可分为三类 :不分组寄存器R0~R7; 分组寄存器R8~R14; ... 阅读全文
posted @ 2015-11-19 14:40 SuGuolin 阅读(1069) 评论(0) 推荐(0)
摘要:ARM寄存器一、ARM工作状态下的寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态... 阅读全文
posted @ 2015-10-12 16:07 SuGuolin 阅读(422) 评论(0) 推荐(0)
摘要:ARM工作模式一、存储器格式(字对齐):Arm体系结构将存储器看做是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列。作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB。存储器格式 1、大端格式:高... 阅读全文
posted @ 2015-10-11 14:34 SuGuolin 阅读(2566) 评论(0) 推荐(0)