ARM裸机
Simon_CB_Zhao
这个作者很懒,什么都没留下…
展开
-
ARM的中断向量表,及DCD伪指令
当中断或异常发生的时候,CPU自动将PC指向一个特定的地址,这个地址就是中断向量表。在32位ARM系统中,一般都是在中断向量表中放置一条分支指令或PC寄存器加载指令,实现程序跳转到中断服务例程的功能。例如: IRQEntry B HandleIRQ ;跳转范围较小 LDR PC,=HandleFIQ ;LDR伪指令等效生成1条存储读取指令和1条32位常数定义转载 2016-08-06 01:10:08 · 10451 阅读 · 2 评论 -
ARM虚拟地址原理分析及实现
第五章 虚拟内存及缓冲区管理在刚开始接触TQ2440并测试TEST程序时,当时就产生了一个疑惑,把程序下载到NAND和SDRAM中,其中断均能正确执行,当时以为,程序有可能采用了动态添加中断向量技术,即在SDRAM中运行时在向量0x18处添加跳转指令的二进制编码。虽然能够实现,但在实际编程时会非常麻烦。ARM采用了虚拟内存映射技术即MMU,负责虚拟地址到物理地址的映射,并提供硬件机制的内存转载 2016-09-27 21:54:43 · 3064 阅读 · 0 评论 -
ARM CP15协处理器说明
访问CP15寄存器指令的编码格式及语法说明如下:31 2827 2423 212019 1615 1211 87 543 0cond1 1 1 0opcode_转载 2016-09-27 20:33:18 · 338 阅读 · 0 评论 -
arm MMU详解
本文原地址为 :http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=22891521&id=2109284 在此表示感谢理解本文后需要知道的几个概念及问题:页 ; 页框 ; 页和页框的关联 ; Frame Index(页框索引); 位p(present 存在位) ; 页框索引和位P是相对于什么而言?(页或者每转载 2016-09-26 23:44:48 · 530 阅读 · 0 评论 -
ARM上函数调用参数超过四个的时传递方法
众所周知,ARM架构下,函数参数是通过 r0~r4寄存器传递的;但是如果参数超过四个,就要借助于栈了。下面以一个例子说明。[cpp] view plain copy print?int func(int a1, int a2, int a3, int a4, int a5, int a6) { return a1转载 2016-10-21 13:57:22 · 2649 阅读 · 0 评论 -
S5PV210(TQ210)学习笔记——内存配置(DDR2)
S5PV210有两个独立的DRAM控制器,分别是DMC0和DMC1,其中,DMC0最大支持512MByte,DMC1最大支持1GByte,而DMC0和DMC1又同时支持两个片选CS0和CS1。S5PV210的内存模块相比2440和6410来讲要更加复杂一些,要想正确的配置S5PV210的内存,应该仔细阅读芯片手册相关部分,在配置参数时也应该适当的阅读下内存芯片的手册。这部分的寄存器和配置过程比较复转载 2016-09-25 17:58:20 · 317 阅读 · 0 评论 -
ARM处理器的7种工作模式以及内部寄存器分析
ARM 有7个基本工作模式:User : 非特权模式,大部分任务执行在这种模式FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式Supervisor :当复位或软中断指令执行时将会进入这种模式Abort : 当存取异常时将会进入这种模式Undef : 当执行未定义指令时会进入这种模转载 2016-09-24 17:03:33 · 10017 阅读 · 0 评论 -
MSR指令什么意思
在ARM处理器中,只有MSR指令可以对状态寄存器CPSR和SPSR进行写操作。与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式、或者允许/禁止IRQ/FIQ中断等。由于xPSR寄存器代表了CPU的状态,其每个位有特殊意义,在执行对xPSR状态寄存器写入时(读取时不存在该用法),为了防止误操作和方便记忆,将xPSR里32位分成四个区域,每个区域用小写字母表转载 2016-09-24 16:35:56 · 5537 阅读 · 0 评论 -
ARM下书写位置无关的代码
目录(?)[-]1 B指令2 BL3 ADR4 LDR举例分析例1中断向量跳转例2例3 静态变量例4 存放标号绝对地址绝对地址是编译的时候已经固定例5 显式LDR和隐式LDR例6 使用LinkScript中的变量(以后应该再也不会写汇编了,将以前总结的东西发给大家参考)位置无关代码,即该段代码无论放在内存的哪个地址,都能正确运行。究其原因,是因为代码里没转载 2016-08-26 13:03:28 · 735 阅读 · 0 评论 -
按键处理及外部中断
按键和中断部分 以按键触发中断为例,谈谈S5PV210的中断体系 要使用中断,首先要做好两个部分的工作:CPU中断的初始化和相应器件的中断的初始化。CPU中断初始化:就是要设置好CPU有关中断的东西。相关器件的中断初始化:譬如我们的按键,就要设置好按键,使其一按下按键,就触发中断。(1)我们先来说说按键的相关的中断设置先看看按键的硬件接法:我们可以看转载 2016-08-22 09:10:20 · 11370 阅读 · 0 评论 -
LCD的接口类型详解
LCD的接口类型详解 LCD的接口有多种,分类很细。主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式。MCU模式(也写成MPU模式的)。只有TFT模块才有RGB接口。 但应用比较多的就是MUC模式和RGB模式,区别有以下几点:1.MCU转载 2016-08-29 22:34:40 · 1747 阅读 · 0 评论 -
多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取
本文的原地址为:http://blog.csdn.net/lhf_tiger/article/details/11660773 在此表示感谢多寄存器和堆栈寻址的用法:多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB;堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED;转载 2016-10-26 16:48:34 · 4704 阅读 · 0 评论