- 博客(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 1161
原创 裸奔程序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 1372 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 1574
原创 裸奔程序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 1297
原创 裸奔程序7(一)-NAND芯片的读写及ECC检验软硬件实现
对TQ2440上NAND芯片的读写进行了分析,同时对ECC检验算法进行了彻底的研究,对S3C2440中NAND控制寄存器进行了深入研究,对ECC校验进行了软实现和S3C2440上的硬实现。
2011-01-15 09:20:00 1971 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 1051
原创 TQ2440裸奔程序1-LED流水灯
裸奔程序1-跑马灯最近,把半个多月来学习ARM的笔记进行了整理,主要是想让自己养成一个良好的学习习惯,加深对汇编语言的理解,见证自己学习过程中的体会和感悟,同时感谢在论坛上给予我帮助的人,你们的帮助是我继续研究下去的动力。故将自己的笔记整理发布,仅供像我这样的初学者参考。 第一章 GPIO端口操作S3C2440有117个I/O端口,共分为A-H组,可以通过设置寄存器来确定某个引脚用于输入、输出或其他特殊功能。对端口的操作主要通过以下三个寄存器来进行。1.
2011-01-11 18:40:00 2391 1
ARM启用MMU分析及源程序代码
2011-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人