
ARM学习
luoyouhui
这个作者很懒,什么都没留下…
展开
-
LDR指令和LDR伪指令
LDR指令和LDR伪指令热3已有 1930 次阅读 2009-10-19 15:06 标签: 汇编 指令 <br />ARM指令集中,LDR通常都是作加载指令,但是它也可以作伪指令。<br /><br />初学者一般不会注意到它们的区别,其实在嵌入式开发过程中,这两条指令时非常常用的!我们应该了解他们的区别。<br />LDR伪指令的形式是“LDR Rn,=expr”。作用是装在一个32bit常数和一个地址到寄存器。<br />下面举一个例子来说明它的用法。<br />COUNT EQU转载 2010-10-18 10:23:00 · 525 阅读 · 0 评论 -
启动代码和Bootloader的区别
<br />启动代码和Bootloader有点类似于类和结构体的关系,也就是说结构体只是一种很特殊很特殊的类,但不能说类是一种结构体。<br />也就是说可以说启动代码是Bootloader,但是不能说Bootloader是启动代码。但是这也不是绝对的,只在某些情况下可以这么说。<br />通常,启动代码仅仅是指CPU复位后到main函数之前需要执行的汇编代码。需要这段代码是为了给C语言程序准备好堆栈空间,中断入口和外部数据等。而且这段汇编代码可以直接对硬件进行操作,效率很高。<br />Bootloade转载 2010-11-13 01:07:00 · 660 阅读 · 0 评论 -
MMU的使用:地址映射
1<br />(1)cpu核发出VA<br />(2)VA转换成MVA,cache、MMU使用MVA<br />VA->MVA的方法(硬件自动完成):<br />if(VA<32M)<br />MVA=VA|(PID<<25) //PID通过读CP15的C13获得<br />else<br />MVA=PA<br />2<br />(1)一级页表中的描述符 <br />1)段描述符(描述符最低两位为10):保存段的起始物理地址 位[31:20]为段基址,低20位为0就是一块1MB的物理地址空间的起始转载 2010-11-07 22:00:00 · 2521 阅读 · 1 评论 -
内存管理单元mmu
<br /> 一、内存管理单元MMU介绍内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。<br />重点就在于地址映射:页表的结构与建立、映射的过程。<br /><br />1、S3C2440 MMU地址变换过程 <br />1)地址的分类<br />一个程序在运行之前,没有必要全部装入内存,仅需要将那些要运行的部分先装入内存,其余部分在用到时从磁盘载入,当转载 2010-11-07 20:42:00 · 600 阅读 · 0 评论 -
S3C2440时钟CLK总结
<br />Fin,MPLL,UPLL,FCLK,HCLK,PCLK.<br />Fin指CPU外围接的晶振本身的频率,通常为12MHz。<br />MPLL和UPLL分别指的是用于供整机系统的PLL和专用于USB的UPLL。<br />FCLK = MPLL = (m * Fin)/(p + 2^s);<br />HCLK,PCLK受CLKDIVN寄存器的影响,即当FCLK确定后,CLKDIVN决定了HCLK和PCLK。<br />这里UART使用PCLK,要想串口打印信息正常显示,这里是关键!原创 2010-10-30 16:08:00 · 571 阅读 · 0 评论 -
2440中断中SRCPND和INTPND清零的疑问
<br />SRCPND是中断源引脚寄存器,某个位被置1表示相应的中断被触发,但我们知道在同一时刻内系统可以触发若干个中断,只要中断被触发了,SRCPND的相应位便被置1,也就是说SRCPND在同一时刻可以有若干位同时被置1,然而INTPND则不同,他在某一时刻只能有1个位被置1,INTPND 某个位被置1(该位对应的中断在所有已触发的中断里具有最高优先级且该中断没有被屏蔽),则表示CPU即将或已经在对该位相应的中断进行处理,于是我们可以有一个总结:SRCPND说明了有什么中断被触发了,INTPND说明了C原创 2010-10-25 20:19:00 · 1258 阅读 · 0 评论 -
关于S3C2440时钟设置的理解
<br />关于S3C2440时钟设置的理解<br />1)FLCK、HCLK和PCLK的关系<br />S3C2440有三个时钟FLCK、HCLK和PCLK<br />手册上说P7-8写到:<br />FCLK is used by ARM920T,内核时钟,主频。<br />HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD con转载 2010-10-27 20:49:00 · 439 阅读 · 0 评论 -
mini2440 H-flasher Flash id does not match问题的解决
<br />check时,总是提示:Flash id does not match<br /> <br />原因是:<br />H-JTAG中:option--->connection mode---->要选择 Hardware reset at 0x0<br /> <br />在编写U-boot时,需要将u-boot通过H-JTAG烧写入Nor flash中,但有时烧入u-boot后,再次使用H-JTAG检测Nor flash时会提示错误:<br />1、Error:Memory read/write e原创 2010-10-24 15:48:00 · 2297 阅读 · 0 评论 -
ARM中常用的一些代表指令的符号
<br /> 特殊符号对应指令含义<br />特殊符号 对应指令 含义<br /> = DCB 分配一片连续的字节存储单元并用指定的数据初始化<br /> & DCD 分配一片连续的字存储单元并用指定的数据初始化<br /> % SPACE 分配一片连续的存储单元<br /> ^ MAP 定义一个结构化内存表的首地转载 2010-10-19 21:52:00 · 630 阅读 · 0 评论 -
RO,RW,ZI 和scatter file详解
RO,RW,ZI 和scatter file详解<br /> <br /> <br />要了解RO,RW和ZI需要首先了解以下知识:<br /> (1) <br /> ARM程序的组成<br /> 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。<br /> 一个ARM程序包含3部分:RO,RW和ZI<br /> RO是程序中的指令和常量<br转载 2010-11-12 19:42:00 · 545 阅读 · 0 评论