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
Ïà¹ØÎĵµ£º
//ijˮÍõµÄ·¢ÌûÊý³¬¹ý×ÜÌùÊýµÄÒ»°ë£¬ÕÒ³öÖ®
int find(int *ID, int N)
{
int candidate;
int nTimes, i;
for (i = nTimes = 0; i < N; i++)
{
if (nTimes == 0)
{
candidate = ID[i];
nTimes = 1;
}
else if (candidate == ID[i])
{
nTimes++;
}
else
{
nTimes--;
......
#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, ......
ÍøÉÏÁ÷´«ºÜ¶àCºÍC# Éñ»°
ÎÒÌýÁËÒԺ󣬾ö¶¨´òÆÆÕâЩÃÀÀöµÄÉñ»°¡£¡£¸ø´ó¼Ò¿ª¿ªÑ۽磬¸üÏ£ÍûÄÜ˵Ã÷Ò»¸öÉñ»°£¬¡££¬£¬
½â¿ªÎÒ ×îÉñÃØµÄµÈ´ý
C
³ÌÐòÔõÑù·´±àÒë³É
C
ÓïÑԵijÌÐò£¿
Éñ»°£ºÎÞ·¨·´±àÒëµÄ£¬£¬Ö»ÄÜͨ¹ý»ã±àÀ´½âÊÍ¡£
Ïêϸ£º
CÓïÑÔÔ´³ÌÐò¾¹ý±àÒë¡¢ÓÅ»¯£¬µÃµ½Ä¿±ê¸ñʽ£¬µ«ÓÉÄ¿±ê¸ñʽ²»ÄÜ ......
NORºÍNANDÊÇÏÖÔÚÊг¡ÉÏÁ½ÖÖÖ÷ÒªµÄ·ÇÒ×ʧÉÁ´æ¼¼Êõ¡£IntelÓÚ1988ÄêÊ×ÏÈ¿ª·¢³öNOR flash¼¼Êõ£¬³¹µ×¸Ä±äÁËÔÏÈÓÉEPROMºÍEEPROMһͳÌìϵľÖÃæ¡£½ô½Ó×Å£¬1989Ä꣬¶«Ö¥¹«Ë¾·¢±íÁËNAND flash½á¹¹£¬Ç¿µ÷½µµÍÿ±ÈÌØµÄ³É±¾£¬¸ü¸ßµÄÐÔÄÜ£¬²¢ÇÒÏó´ÅÅÌÒ»Ñù¿ÉÒÔͨ¹ý½Ó¿ÚÇáËÉÉý¼¶¡£µ«ÊǾ¹ýÁËÊ®¶àÄêÖ®ºó£¬È ......