随笔分类 - ARM
摘要:对照Startup.s学习ARM汇编指令(1)GBLL 伪指令用于定义一个全局的逻辑变量,并初始化为{False}。GBLL BOOTLOADERBOOTLOADER SETL {TRUE}(2)GET(或 INCLUDE)GET 伪指令用于将一个源文件包含到当前的源文件中,并将被包含的源文件在当前位置进行汇编处理。可以使用 INCLUDE 代替 GET。INCLUDE ..\\..\\kernel\\oal\\startup.s(3)IMPORT 伪指令用于通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件的符号
阅读全文
摘要:ARM处理器共有9中寻址方式1.寄存器寻址 操作数的值在寄存器中,指令执行时直接取出寄存器的值来操作 MOV R1,R2 ;R2->R1 SUB R0,R1,R2 ;R1-R2->R02.立即寻址 MOV R0,#0XFF00 ;0XFF00->R0SUBS R0,R0,#1 ;R0-1->R03.寄存器移位寻址MOV R0,R2,LSL #3 ;R2的值左移3位,存入R0, R0=R2*84.寄存器间接寻址LDR R1,[R2]5.基址寻址LDR R2,[R3,#0XC0] ;读取R3+0XC0地址上的数据,放入R26.多寄存器寻址LDMIA R1!,{R2-R7,R
阅读全文
摘要:常用 ARM指令集及汇编 一、 ARM处理器的寻址方式 二、指令集学习 (一) ARM 指令集 1. 指令格式 2. 条件码 3. ARM 存储器访问指令 1) LDR/ STR -加载 / 存储指令 2) LDM/ STM -多寄存器加载 / 存储指令 3) SWP -寄存器和存储器交换指令 4. ARM 数据处理指令 1) 数据传送指令 a) MOV -数据传送指令 b) MVN -数据非传送指令 2) 算术逻辑运算指令 a) ADD -加法运算指令 b) SUB -减法运算指令 c) RSB- 逆向减法指令 d) ADC -带进...
阅读全文
摘要:我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Nandflash全部都换掉了,硬件做了不小的改动。以前也做过类似的裸板调试,从ARM7到ARM9,再到现在的ARM11。今天就来写一篇ARM裸板调试的文章。如我前面所说,刚拿到ARM裸板的时候,首先就是要上电。不过上电之前,最好测一下电源和地是否短路。然后就可以上电了,我一般采用稳压电源,这样可以看到电流的大小,如果电流太大,说明硬件可能有问题,用手摸摸板子上的芯片,看看是否烫手,
阅读全文
摘要:目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就我个人的理解,介绍一下S3C6410的启动。先读一下S3C6410 User Manual的第3章 System Controller,在123页列了一张表,如图:这章表列出了S3C6410所支持的几种启动模式。首先介绍一下和启动模式相关的硬件管脚:OM[4:0]:选择启动设备及时钟源。OM[0]为0选择XXTlpll
阅读全文
摘要:我们在项目中更换了DRAM,所以需要重新配置S3C6410的DRAM控制器,结果发现S3C6410中的DRAM控制器还是挺复杂的。S3C6410支持两个DRAM片选,可以分别接最大256MB的内存,该处理器用的DRAM控制器是来自ARM的PrimeCell Dynamic Memory Controller(PL340)。只看S3C6410的Datasheet中的DRAM部分介绍是不够的,你还需要看PL340的技术参考文档,这个文档网上搜索一下就有了。想完全了解6410的DRAM控制器,必须两篇文档都看。我都看了,虽然没完全了解,但是比看6410的datasheet要强多了。我用的是mobil
阅读全文
浙公网安备 33010602011771号