![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
何有飞
宁大科院
展开
-
ARM指令状态切换到Thumb指令状态
AREA Arm_to_Thumb,CODE, READONLY ENTRY CODE32start ldr r0,=aaa+1 mov r3,#18 bx r0 CODE16aaa mov r1,#12 mov r2,#10 END 请看上面的代码,首先看到第一条指令,ldr r0,=aaa+1,aaa可以理解成一个函数的名字,那么函数aaa执行的时候是不原创 2015-03-26 00:57:21 · 11441 阅读 · 2 评论 -
ARM裸机程序之LED灯
从3月份开始看arm的裸机程序,到现在一个半月了,做到后来,发现自己越做到综合的程序,越吃力,还是得回头看看,为了最终写一个bootloader打下点基础吧,所以以这篇文章为开始,总结一下之前做过的裸机程序,希望会有所收获,我用的开发板是友善之臂的mini2440。首先声明一点我都是在linux环境下写裸机程序的,因为这样能知道更多底层的东西,不过在这里面写就是有点不方便的是调试的时候,所以你原创 2015-04-11 22:29:17 · 1383 阅读 · 0 评论 -
ARM裸机程序之存储管理器控制SDRAM
本文讲的是s3c2440A芯片的存储管理器,配套的开发板是友善之臂mini2440,首先贴出代码head.s的代码:.equ MEM_CTL_BASE, 0x48000000 @定义13个寄存器的首地址.equ SDRAM_BASE, 0x30000000 @定义SDRAM的首地址.text.global _start_st原创 2015-04-13 09:11:59 · 815 阅读 · 0 评论 -
LDMIA、LDMIB、LDMDB、LDMDA、STMIA、LDMFD、LDMFA、LDMED、LDMEA等指令详解
关于多寄存器加载存储指令1.LDMIA指令、LDMIB指令、LDMDB指令、LDMDA指令(1)LDMIA指令,IA表示每次传送后地址加4 (2)LDMIB指令,每次传送前地址加四 (3)LDMDB指令,每次传送前地址减4,这里还要注意程序中先给R5,还是先给R8,这里明显是先给R8 (4)LDMDA指令,每次传送后地址减4,这里也是先给R8原创 2015-04-08 20:04:40 · 41690 阅读 · 7 评论 -
NandFlash的时序分析
首先申明我用的NandFlash的型号是K9K8G08U0B,这里不做这款NandFlash芯片硬件结构的分析,只是分析NandFlash初始化的时候要配置NFCONF寄存器,这里涉及到这个寄存器中的三个参数,分别是TACLS,TWRPH0,TWRPH1,这三个参数关系到这款NandFlash的一个基本的时序问题。之前一直没有仔细研究过这么一段NandFlash的初始化函数,我先把这个子函数的代码原创 2015-04-23 23:36:09 · 7707 阅读 · 0 评论