
ARM 体系结构与接口
文章平均质量分 79
sfrysh
嵌入式开发,本博客大部分资源来自网络,为学习交流之用,如有侵犯你您的版权,实属无心,请给本人留言,本人会及时删除。
展开
-
AMBA、AHB、APB总线简介
APB简介 APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB上的传输可以用如图2所示的状态图来说明。 1)系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。 2)当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到转载 2010-08-05 20:57:00 · 934 阅读 · 0 评论 -
S3C2410读写Nand Flash分析
作者:刘洪涛,华清远见嵌入式学院高级讲师。一、结构分析 S3C2410处理器集成了8位NandFlash控制器。目前市场上常见的8位NandFlash有三星公司的k9f1208、k9f1g08、k9f2g08等。k9f1208、k9f1g08、k9f2g08的数据页大小分转载 2011-10-16 16:35:07 · 666 阅读 · 0 评论 -
ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的
几天前一个学生问我ARM中断嵌套的问题,我才发现原在我心中理所当然的事对学生来说理解实属不易。 ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。 我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin. 在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。 先不说中断转载 2011-10-21 23:20:41 · 831 阅读 · 0 评论 -
友善之臂Mini2440开发板的存储系统及I/O空间总结(转)
用友善之臂的板子已经有一段时间了.对于存储系统和I/O空间的认识也渐渐淡忘了,原因是在做其他开发时,一直用着自带的启动代码,从不关心板子的储存空间配置.最近在做网卡驱动,突然间就不知道网卡的地址是什么了,于是花点时间总结一下.废话少说.开始吧. 1,板上的存储资源 两个32M的SDRAM.一个2M的NOR FLASH一个128M(有些是64M)的NAND FLASH以上转载 2011-10-22 21:01:26 · 785 阅读 · 0 评论 -
S3C2440-SDRAM
哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.youkuaiyun.com/woshixingaaa/archive/2010/12/14/6075190.aspx我板子的SDRAM是64M,从0x30000000~0x33ffffff,被BANK6选中。//64MB // 0x30000000 ~ 0x30ffffff : Download Area转载 2011-10-22 21:19:39 · 821 阅读 · 0 评论 -
s3c2440硬件篇之九:LCD
背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制ST转载 2011-11-16 10:20:19 · 1169 阅读 · 0 评论 -
ARM920T的Cache
ARM920T有16K的数据Cache和16K的指令Cache,这两个Cache是基本相同的,数据Cache多了一些写回内存的机制,后面我们以数据Cache为例来介绍Cache的基本原理。我们已经知道,Cache中的存储单位是Cache Line,ARM920T的一个Cache Line是32字节,因此16K的Cache由512条Cache Line组成。要了解Cache的基本原理,我们从如何设计转载 2012-06-24 14:50:19 · 1430 阅读 · 0 评论 -
ARM920T的MMU
我们已经简单了解了一下查页表的过程,实际上ARM920T支持多种尺寸规格的页表,下图示意了所有可能的情况(本节的图表均摘自[S3C2410用户手册])。图 1. 查页表的过程回顾一下查表的过程,首先从CP15的TTB寄存器找到一级页表的基地址,再把VA[31:20]作为索引从表中找出一项,这个表项称为一级页描述符(Level 1 Descriptor),一个这样的表项占4个字节,可转载 2012-06-24 14:53:26 · 1642 阅读 · 0 评论 -
MMU分析
这几天一直在看MMU部分,现在有了基本的认识,还不深入,解决了初级问题,并且仿照vivi完成了一个测试实例,对深入理解和验证推论的结果很有帮助。在学习的过程中,体会到几种方法还是比较实用的: · 从历史的角度去了解技术,梳理清楚发展主线,效率更高。 · 采用软硬件结合的方法分析,理解更为深入。 · 与同一爱好的朋友交流,可以发现认识的盲区,认识更为全面。转载 2012-06-24 15:33:10 · 1228 阅读 · 0 评论 -
ARM处理器之MMU和Cache
本节首先从总体上介绍MMU、Cache和CPU核是如何协同工作的,后面两节分别讲解MMU和Cache的细节。三星公司的S3C2410是一种很常见的采用ARM920T的芯片,涉及到具体的芯片时我们以S3C2410为例。ARM920T的MMU和Cache都集成在CP15协处理器中,MMU和Cache的联系非常密切,以下是CP15协处理器的寄存器列表(摘自[S3C2410用户手册]),和CPU核转载 2012-06-24 14:00:16 · 3236 阅读 · 0 评论 -
内存管理单元MMU
一、内存管理单元MMU介绍内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。重点就在于地址映射:页表的结构与建立、映射的过程。 1、S3C2440 MMU地址变换过程 1)地址的分类一个程序在运行之前,没有必要全部装入内存,仅转载 2012-06-24 16:27:48 · 6410 阅读 · 0 评论 -
NAND Flash的驱动程序设计
摘要 以三星公司K9F2808UOB为例,设计了NAND Flash与S3C2410的接口电路,介绍了NAND Flash在ARM嵌入式系统中的设计与实现方法,并在UBoot上进行了验证。所设计的驱动易于移植,可简化嵌入式系统开发。 引言 当前各类嵌入式系统开发设转载 2011-10-16 16:48:38 · 1166 阅读 · 0 评论 -
嵌入式Linux之我行——ARM MMU工作原理剖析
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn一、MMU的产生转载 2011-09-22 13:56:36 · 1007 阅读 · 0 评论 -
开关功率mos管介绍
在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1,MOS管种类和结构 MOSFET管是FET的一种(另一种是JFET),可以被制造成增强型或耗尽型,P沟道或N沟道共4种类型,但实际应用的转载 2010-08-07 09:36:00 · 2477 阅读 · 0 评论 -
MTK G-sensor
<br />声明:资料来自公司同事整理<br />G-sensor<br />G-sensor是加速度传感器,可以通过其来获得分别来自三个不同轴向上的加速度用以通知上层应用做出相应处理。<br /> <br />由于地球的引力作用,gsensor平放时,Z轴方向能感应到1g的重力加速度,如果移动或倾斜,此时垂直的重力加速度会分解到X,Y,Z轴上。所以旋转手机时,X,Y,Z轴的值不断变化,可以理解为手机处在一个坐标系中,我们判断手机是否旋转就是判断X,Y,Z当前的值。<br /> <br />下图为基本原理图转载 2010-08-11 14:29:00 · 2162 阅读 · 0 评论 -
ARM 启动过程
<br />对于一般的嵌入式系统来讲,考虑到系统成本,运行速度等因素,往往联合使用好几种存储器件。在下面讲到的例子中,是我在开发中用到的一个 ARM9EJ 的处理器,系统中采用了SDRAM, ROM, Nand FLASH, ITCM ,DTCM 等。 <br /> SDRAM: 程序正常运行时所在的存储器, 物理地址 0x24000000 - 0x24800000 (以8M 为例);<br /> ROM: 复位后, ARM 从 ROM 启动, ROM 是只读的,出厂时就烧好了,不可更改转载 2010-08-18 09:06:00 · 930 阅读 · 0 评论 -
关于DMA和它的仇家
<br />[基础知识]什么叫做DMA?<br />DMA=Direct Memory Access。这是一种通过硬件实现的数据传输机制。简单的说,就是不在CPU的参与下完成数据的传输。<br />[/基础知识]<br />不太明白?我举个简单的例子:<br />比如有个数组a,我希望把这个数组中的内容传输到另一个数组b中。我们假设这两个数组都是一样大。比如int a[10000];int b[10000];。<br />那么我可以这样做:<br />[code=c]for(int x=0;x<sizeof转载 2010-08-18 09:32:00 · 1697 阅读 · 0 评论 -
ARM开发总结的小知识 Code,RO-data,RW-data,ZI-
<br />ARM开发总结的小知识 <br />字节 8位<br />半字 16位<br />字 32位<br /><br />Code, RO-data<br />RW-data,ZI-data<br /><br />Code为程序代码部分<br />RO-data 表示 程序定义的常量 const temp;<br />RW-data 表示 已初始化的全局变量<br />ZI-data 表示 未初始化的全局变量<br /><br />Program Size: Code="18248" RO-dat原创 2010-08-18 11:52:00 · 1570 阅读 · 1 评论 -
理解“统一编址与独立编址、I/O端口与I/O内存”
<br />引言:<br /> 从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……<br /> 对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),访问设备实际上是访问相关的端口,所有的信息转载 2010-11-26 15:08:00 · 2151 阅读 · 1 评论 -
寄存器编址
<br />分析这几个容易混淆的概念.<br /> 引用一段资料: 几乎每一种外设都是通过读写设备上的寄存器来进行操作的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。<br /><br />CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。具体采用哪一种则取决于CPU的体系结构。<br /> 有些体系结构的CPU(如Pow转载 2010-11-26 16:32:00 · 1144 阅读 · 0 评论 -
ARM中的程序状态寄存器(CPSR)
2006.11.100:31作者:hokepoly | 评论:1 | 阅读:8379<br />3130292827~876543210NZCV保留IFTM4M3M2M1M0NNegative/Less ThanIIRQ disableZZeroFFIQ disableCCarry/Borrow/ExtendTState bitVOverflowM0~4Mode bits <br />1、条件码标志<br /> N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令转载 2011-03-23 19:49:00 · 1413 阅读 · 0 评论 -
ARM处理器中CP15协处理器的寄存器1376698090
本章和第5章的内容都与ARM处理器中CP15协处理器的寄存器有密切关系,所以我们这里先介绍一下CP15寄存器以及访问CP15寄存器的汇编指令。4.1.1 访问CP15寄存器的指令访问CP15寄存器指令的编码格式及语法说明如下:31 2827 2423 212019 16转载 2011-07-27 11:33:50 · 1600 阅读 · 0 评论 -
S3C2440 SDRAM内存驱动 .
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。我们从其硬件的角度来分析其原理,然后再引出SDRAM转载 2011-09-21 10:34:47 · 1347 阅读 · 0 评论 -
linux-arm中断系统之GIC
GIC为中断控制器,不要和ARM core的中断搞混了,这些中断都是连接到ARM core的IRQ或者FIQ上的。 要了解arm中断系统,GIC绝对不容错过,好先付上一张大家都能百度到的图片。++和*可以先不用考虑,用于安全模式。GIC可以用于单核多核系统,这时候要抛开单片机的简单中断了,从图上看有SGI(Software-generated interrupt)、PPI(Pr转载 2013-09-28 18:34:39 · 1768 阅读 · 0 评论