自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (2)
  • 收藏
  • 关注

原创 TQ2440裸奔程序3-中断控制LED灯

<br />第二章 中断<br />    ARM体系的CPU有7种工作模式,可以通过软件来进行模式切换,或者发生各类中断、异常进行相应模式。<br />CPU可以识别两种类型中断,正常中断(IRQ)和快速响应中断(FIQ)状态寄存器的PSR中F和R位决定是中断的启闭。为了使能中断,必须将PSR中F或R位清零,并且中断屏蔽寄存器相应位也要清零。<br />ARM中断分为子中断源和一般中断源,子中断源多了两个寄存器SUBRCPN(标识子中断源是否发生)INTSUBMSK(屏蔽子中断源)<br />ARM中断发

2011-01-16 16:20:00 1151

原创 裸奔程序7(四)-NAND芯片的读写及ECC检验软硬件实现

从结果可以看出,三次读取页数据,其检验码只有在第一次读取0页时正确,第二次读取1页时错误,第三次重读0页时生成的竞是第1页的ECC码,当时差点让人崩溃。为了找到问题的症结所在,决定在读取页数据前先查看一下NFMECC0寄存器的值,重启系统调试发现,三次读取页数据前,其值如下:NFMECC0=0xf0ffffffNFMECC0=0x50969569NFMECC0=0xf0c3fc33经过分析发现当读取页数据结束并锁定ECC值时,NFMECC0的值为NFMECC0=NFMECC0^(~页ECC码)第一次读取为0

2011-01-15 09:38:00 1355 1

原创 裸奔程序7(三)-NAND芯片的读写及ECC检验软硬件实现

行检验码的生成过程:根据异或规则,当一个数的ECC码第bit6位(En=1)时,将改变11位行检验码,显然,问题的关键是如何判断这11位行检验码。当我们用i来表示字节在2048个字节中的位置时,由于2^11=2048,即i只取11位。考虑如下:   2048个字节中第i个字节,其值ECC码第6位为1再让我们考虑一下行检验码的生成规则将其进行2平分后异或P8912_1=E1024+E1025+……+E2047(显然,i[10]=1)P8912_0=E0  +  E1……   +E1023(显然,i[10]=0

2011-01-15 09:32:00 1541

原创 裸奔程序7(二)-NAND芯片的读写及ECC检验软硬件实现

当我们要对NAND进行读写或复位擦除等操作时,其基本流程如下:1.        允许片选信号NFCONT寄存器位[1]置0(低电平有效)2.        传输命令3.        传输地址4.        等待操作结束,可以判断NFSTAT位[0]或位[2]为高电平表示操作结束,需注意的时,如果采用位[2]进行判断,我们在允许片选信号后,需向该位[2]写1清0,位[0]由硬件自动清除。5.        发送命令70,读取操作状态是否成功。6.        禁止片选信号具体操作说明,每次操作都需要

2011-01-15 09:23:00 1247

原创 裸奔程序7(一)-NAND芯片的读写及ECC检验软硬件实现

对TQ2440上NAND芯片的读写进行了分析,同时对ECC检验算法进行了彻底的研究,对S3C2440中NAND控制寄存器进行了深入研究,对ECC校验进行了软实现和S3C2440上的硬实现。

2011-01-15 09:20:00 1918 1

原创 tq2440裸奔程序2-按键控制LED

裸奔程序2-按键控制LED在上一个程序中,我们已经知道对GPIO端口的操作主要是针对寄存器而来的,因此,在这个程序中,我们对键盘K1-K4进行检测,通过它来操纵LED灯。2、按键测试程序(检测模式)   硬件说明:K1接GPF1 K2接GPF4 K3接GPF2 K4接GPF0,按下时输入低电平            GPFCON地址为0x56000050,GPBDAT地址为0x56000054GPFCON每两位控制一个端口,其中00为输入端,01为输出端,取值11保留,10为其它定义软件说明:GPF0-GP

2011-01-14 08:13:00 1030

原创 TQ2440裸奔程序1-LED流水灯

 裸奔程序1-跑马灯最近,把半个多月来学习ARM的笔记进行了整理,主要是想让自己养成一个良好的学习习惯,加深对汇编语言的理解,见证自己学习过程中的体会和感悟,同时感谢在论坛上给予我帮助的人,你们的帮助是我继续研究下去的动力。故将自己的笔记整理发布,仅供像我这样的初学者参考。                        第一章 GPIO端口操作S3C2440有117个I/O端口,共分为A-H组,可以通过设置寄存器来确定某个引脚用于输入、输出或其他特殊功能。对端口的操作主要通过以下三个寄存器来进行。1.   

2011-01-11 18:40:00 2371 1

S3C2440中ECC校验算法实现

对ECC算法进行了彻底的研究,并对其过程用软件进行了实现,对S3C2440NAND控制器进行了研究,对其ECC校验进行了硬实现

2011-01-15

ARM启用MMU分析及源程序代码

实现了对ARM920T中MMU的启用 地址转换过程 1. 从CP15寄存器C2得到一级页表的基地址 2. 将虚拟地址[31:20]作为页表的索引,得到页表中该虚拟地址的描述符。 3. 判断该描述符是否为段描述符,如为段描述符,将该描述符[31:20]和虚拟地址[19:0]作为偏移量组成一个32位的物理地址进行访问。 4. 如为粗页表描述符,则将该粗页表描述符[31:10]作为二级页表的基地址,并将虚拟地址[19:12]位作为索引得到在二级页表中该虚拟地址的描述符。 判断二级页表符的类型 ① 为极大页描述符表将该描述符[31:16]作为基地和虚拟地址[15:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ② 为小页描述符表将描述符[31:12]作为基地和虚拟地址[11:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 5. 如为细页表描述符,将该组页表描述符[31:12]作为二级页表的基地址,并将虚拟地址[19:10]位作为索引得到在二级页表中该虚拟地址的描述符。 判断二级页表符的类型 ① 为大页描述符表将该描述符[31:16]作为基地和虚拟地址[15:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ②为小页描述符表将该描述符[31:12]作为基地和虚拟地址[11:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ③为小极页描述符表将描述符[31:10]作为基地和虚拟地址[9:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。

2011-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除