2013年8月20日

s3c2440启动代码学习笔记

摘要: 启动代码:设置中断向量,顺序为RESETUDEFSWIPREFETCHUDEFDATAABTNOP //保留地址IRQFIQ共七个中断向量机器上电后从0x00000000地址执行指令,到RESET处初始化系统1.关闭Watchdog,否则cpu会不断重启2. 如果需要使用C函数需要设置sp 注意每个工作模式都有自己的sp,需要设置,另外上电时内存空间只有SteppingStone的4k内部ram,sp不能超过4k ATPCS规定栈为FD,sp指针必须指向栈顶元素,启动代码在跳转到绝对地址运行之前必须使用相对跳转指令3.初始化SDRAM4.设置cpu运行速度5.复制运行代码到SDR... 阅读全文

posted @ 2013-08-20 18:46 lwp513 阅读(2109) 评论(0) 推荐(0) 编辑

s3c2440中断学习笔记

摘要: 进入异常时cpu将做如下工作1.将中断时pc的值copy到lr(此时pc的值为中断指令位置+8,所以返回的指令地址应该是当前pc值+4)2.CPSR->SPSR_(irq) (相当于bl跳转)3.强制进入irq,ARM工作模式4.跳转到异常制定的指令位置进入异常时应该保护寄存器:stmdb sp!, { r0-r12,lr }退出时恢复寄存器: ldmia sp!, {r0-r12,pc}^ "^":当中有pc寄存器时,表示执行指令后spsr中的值自动复制到cpsr中,如果没有pc寄存器是,^表示操作的是用户模式下的寄存器,而不是当前特权模式的寄存器,也就是说在特权模 阅读全文

posted @ 2013-08-20 13:16 lwp513 阅读(505) 评论(0) 推荐(0) 编辑

导航