![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式裸奔
xingmeng0518
这个作者很懒,什么都没留下…
展开
-
为什么adrl r2,mem_cfg_val这里不用ldr r2,=mem_cfg_val,
请教书中sdram裸机代码memsetup:mov r1, #MEM_CTL_BASEadrl r2,mem_cfg_valadd r3, r1,#521:ldr r4, [r2],#4str r4, [r1],#4cmp r1,r3bne 1bmov pc,lrmem_cfg_val: .long 0x22011110 .转载 2012-08-25 16:12:17 · 475 阅读 · 0 评论 -
cpsr与cpsr_c的区别
在学习到中断部分时,需要调整cpu的工作模式,常常见到的语句是:msr cpsr_c,#0xd2 //进入中断模式那么究竟cpsr_c与cpsr是什么关系?后来查了下,在ARM 处理器中.只有MSR 指令可以直接设置状态寄存器CPSR或SPSR.指令格式如下MSR{cond} psr_fields,#immed_8rMSR{cond} psr_fields,Rm其中:转载 2012-08-25 14:46:25 · 1278 阅读 · 0 评论 -
终于明白这个LR寄存器了
看下面这个ARM汇编吧BL NEXT ;跳转到子程序......... ;NEXT处执行NEXT..........MOV PC,LR ;从子程序返回这里的BL是跳转的转载 2012-08-25 21:58:43 · 7359 阅读 · 2 评论 -
深入理解SP、LR和PC
深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益。1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候,程序就可以把一般通用寄存器压入堆栈,返回时再出栈,保证了各种模式下程序的状态的完整性。2、连转载 2012-08-25 22:04:19 · 744 阅读 · 0 评论 -
堆栈的问题 SP指针
为什么将SP设为 4096 设定之后怎么运行?是从4096开始写然后再写4095还是往4097写?4096是steppingstone的地址吗?中断为什么设为3072? S3C2410、S3C2440有内部RAM、外部的SDRAM,这些都被称为内存;SP设在内存上,可以是内部RAM,也可以是SDRAM,只要不破坏当前运行的程序就可以了。启动时首先执行内部RAM的4转载 2012-08-25 22:07:41 · 1666 阅读 · 0 评论