
ARM
文章平均质量分 55
haospark
这个作者很懒,什么都没留下…
展开
-
对ARM堆栈的理解
堆栈严格来说应该叫做栈,栈(Stack)是限定仅在一端进行插入或删除操作的线性表。从栈顶的定义来看,栈顶的位置是可变的。空栈时,栈顶和栈底重合;满栈时,栈顶离栈底最远。ARM为堆栈提供了硬件支持,它使用一个专门的寄存器(堆栈指针)指向堆栈的栈顶。而且7种模式都有各自独立的堆栈指针,也就是有各自独立的堆栈空间。但这里的堆栈和uC/OS操作系统的任务堆栈又有区别,uC/OS的每个任务都有自己的堆栈,要...原创 2018-05-18 08:23:53 · 1099 阅读 · 0 评论 -
arm寄存器之r14,r15
(1)PC是程序计数器,存储将要执行的指令地址(2)LR是链接寄存器,是ARM处理器中一个有特殊用途的寄存器,当调用函数时,返回地址即PC的值被保存到LR中(mov lr,pc)。(3)IR是指令寄存器,用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。区别:(1)IR是微体系结构概念(什么是微体系结构?就是程序员看不到,但硬件中确实存在的硬...转载 2018-05-18 08:24:56 · 3912 阅读 · 0 评论 -
ARM汇编指令-STMFD和LDMFD
STMFD指令STMFD Rn{!},{reglist}{^}STMFD SP!,{R0-R7,LR} 对于这条指令伪代码的解释,网上是这么说的:SP = SP - 9×4; address = SP; for i = 0 to 7 Memory[address] = Ri; address = address+ 4;Memory[address] = LR;经过我在keil4的...原创 2018-05-18 08:25:52 · 1185 阅读 · 0 评论 -
加深对ARM汇编中对stmfd和ldmfd的理解
AREA STMFD,CODE,READONLYENTRYCODE32STARTsub sp,sp,#4 ;经过此条语句过后,sp的值由原来的0变为了0xfffffffcmov r0,#0x1d ;将0x1d赋值给r0寄存器mov r1,#0x1c ;将0x1c赋值给r1寄存器stmfd sp!,{r0} ;将r0中的值压入堆栈,压入过程是,由于r0中的值为32位的,首先将sp减去4,将r0中的低...原创 2018-05-18 08:26:31 · 5095 阅读 · 0 评论 -
Exynos4412中断管理控制器工作流程——以按键中断为例
以下是流程原创 2019-06-26 16:36:16 · 548 阅读 · 0 评论