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
相关文档:
/*
思路:递归算法
前0..cur-1位置上已经排好,当前cur位置取一个和前面都不一样的,然后递归处理后面的。
*/
/* 输出1,2,3,..,n的排列数 */
#include <stdio.h>
#include <assert.h>
#include <malloc.h>
void p(int n)
{
extern void _p(int n, int cur, int *a);
int *a;
a = ......
/*
注意不断右移判断最低位是1有多少个的算法是错误的,
因为根据GNU C/C++的实现来看,负数是带符号填充进行右移的,所以如果是负数,该算法会死循环。
变通办法:Java可以用>>>逻辑右移位操作符,C/C++可以强制转换成无符号整数再处理
下面的程序是正解。其中num &= (num - 1) 会消除num的最小位置的"1" ......
已经知道的,不说了...大家都知道的,可以问问,查查资料。这里又放些附加建议:
1.基本算数运算:
既然计算机里没有真正的整数,那么计算机里也没有真正的算数运算。
取值范围:
设a和b是两个占一样位宽的无符号整数,这种整数可取到最大值M ......
方法一
1::<head></head>中加入代码:
<style>
html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
</style>
2:在css文档种加入以下代码
html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
若FLASH的颜色不能被CSS滤镜控制, ......