S3C2410 Nand Flash控制器
访问Nand Flash时需要先发出命令,然后发出地址序列,最后读/写数据;
需要使用各个信号来分辨命令、地址、数据;
S3C2410 的Nand Flash控制器 提供了相关寄存器来简化这些操作:
NFCONF——配置寄存器
NFCMD——命令寄存器
NFADDR——地址寄存器
NFDATA——数据寄存器
NFSTAT——状态寄存器
NFECC——ECC初始化寄存器
一、寄存器介绍:
1、NFCONF——配置寄存器
【1】使能/禁止 Nand Flash控制器
【2】使能/禁止 片选信号nFCE
【3】初始化ECC
【4】设置Nand Flash 的时序参数
2、NFCMD——命令寄存器
3、NFADDR——地址寄存器
当写这个寄存器时,它将对Flash发出地址信号;
4、NFDATA——数据寄存器
只用到低8位,读、写此寄存器将启动对Nand Flash的读数据、写数据操作;
5、NFSTAT——状态寄存器
只用到位0, 0——busy ; 1——ready
6、NFECC——ECC初始化寄存器
二、读Nand Flash的步骤:
1、设置NFCONF——0x9830
NFCONF = 0x9830;
使能 Nand Flash 控制器;
&nbs
相关文档:
汉诺塔算法的递归与非递归的C以及C++源代码
By Minidxer | January 30, 2008
汉诺塔(又称河内塔)问题其实是印度的一个古老的传说。
开天辟地的神勃拉玛(和中国的盘古差不多的神吧)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上 ......
googletest C/C++ 测试框架非常好用,介绍及下载请看 http://code.google.com/p/googletest/
//============================================================================
// 使用 googletest 测试框架
//============================================================================
// Returns n! ......
/*
这是个常见的面试题哦,总之我面试的时候遇到过, 当时没有答上来
回去后想出来下面的方法一,该法还有个附加优点,可以判断出链表在哪个地方形成环的(即如果想拆开这个环,从哪个地方断开)。
后来知道还有个经典算法,即使用两个指针,一快一慢向前试探,如果最终重合则链表有环,果然优美的算法。
*/
#inc ......
#include <stdio.h>
#define bits(p, d) { \
int _tmp=p->d, _bits=0; \
for (p->d=1; p->d; p->d<<=1) \
_bits++; \
p->d=_tmp; \
printf("%s->%s has %d bits", #p, #d, _bits); \
}
typedef struct _s{
int a:4;
} S;
int main()
{
S tmp, ......
已经知道的,不说了...大家都知道的,可以问问,查查资料。这里又放些附加建议:
1.基本算数运算:
既然计算机里没有真正的整数,那么计算机里也没有真正的算数运算。
取值范围:
设a和b是两个占一样位宽的无符号整数,这种整数可取到最大值M ......