久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1921|回復: 0
打印 上一主題 下一主題
收起左側

S3C2440的Nand Flash控制器

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-6 13:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
s3c2440內(nèi)部集成有內(nèi)部SRAM(steppingstone),當選擇從nand flash啟動的時候,nand flash的前4k代碼將會自動copy到內(nèi)部SRAM中后運行。
一、nand flash控制器的特性
1、支持讀/寫/編程NAND FLASH內(nèi)存。
2、系統(tǒng)復位后nand flash的前4k代碼自動copy到內(nèi)部SRAM,copy完成后從SRAM啟動,此時內(nèi)部sram被映射為nGCS0。(當OM[1:0]=00時,使能NAND FLASH 啟動模式)
3、支持硬件ECC校驗。
4、系統(tǒng)啟動后內(nèi)部SRAM可以用做其他的用途。

二、操作nand flash的方法
1、設置nand flash配置寄存器NFCONF
2、向命令寄存器NFCMMD寫入操作命令;
3、向地址寄存器NFADDR寫入地址;
4、讀/寫數(shù)據(jù)前要讀取狀態(tài)寄存器NFSTAT來判斷nand flash是否處于忙狀態(tài)。

三、ECC(錯誤糾錯碼)
nand flash控制器包括4個ECC模塊,兩個模塊(一個用于data[7:0],一個用于data[15:8])可以被用于2048bytes為上限的ECC檢驗碼的生成,另外兩個模塊(一個用于data[7:0],一個用于data[15:8])可以被用于16bytes為上限的ECC檢驗碼的生成。

四、NAND FLASH特殊功能寄存器的詳細說明----見手冊
NFCONF    0x4E000000 NAND flash configuration
NFCONT    0x4E000004 NAND flash control
NFCMD      0x4E000008 NAND flash command
NFADDR    0x4E00000C NAND flash address
NFDATA     0x4E000010 NAND flash data
NFMECC0 0x4E000014 NAND flash main area ECC0/1
NFMECC1 0x4E000018 NAND flash main area ECC2/3
NFSECC    0x4E00001C NAND flash spare area ECC
NFSTAT     0x4E000020 NAND flash operation status
NFESTAT0 0x4E000024 NAND flash ECC status for I/O[7:0]
NFESTAT1 0x4E000028 NAND flash ECC status for I/O[15:8]
NFMECC0 0x4E00002C NAND flash main area ECC0 status
NFMECC1 0x4E000030 NAND flash main area ECC1 status
NFSECC    0x4E000034 NAND flash spare area ECC status
NFSBLK     0x4E000038 NAND flash start block address
NFEBLK     0x4E00003C NAND flash end block address
五、讀nand flash一般步驟
1.設置NFCONF和NFCONT
NFCONF = 0x300      ;設置時序
NFCONT = (1<<4)|(1<<1)|(1<<0)
2.發(fā)出片選信號.
NFCONT&= ~(1<<11)
NFCMMD = 0xff; reset命令,第一次操作nand flash前,通常復位nand flash

3.發(fā)出讀命令
NFCMMD = 0 (讀命令)

4.發(fā)出地址信號

volatile unsigned char *p = (volatile unsigned char *)&s3c2440nand->NFADDR;
   
    *p = addr & 0xff;
    *p = (addr>>9) & 0xff;
    *p = (addr>>17) & 0xff;
    *p = (addr>>25) & 0xff;
5.循環(huán)查詢NFSTAT位0,直到它等于1。

6.連續(xù)讀NFDATA寄存器512次,得到一頁數(shù)據(jù)(512字節(jié))

7.禁止nand flash的片選信號
NFCONT|= (1<<1)

例子:
void nand_read(unsigned char *buf, unsigned long start_addr, int size)
{
    int i, j;
   
    if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) {
        return ;    /* 地址或長度不對齊 */
    }
   /* 選中芯片 */
    nand_select_chip();
    for(i=start_addr; i < (start_addr + size);) {
      /* 發(fā)出READ0命令 */
      write_cmd(0);
      write_addr(i); /* Write Address */
      wait_idle();
      for(j=0; j < NAND_SECTOR_SIZE; j++, i++) {
          *buf = read_data();
          buf++;
      }
    }
   
    nand_deselect_chip(); /* 取消片選信號 */
   
    return ;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99热最新网址 | 综合久久色 | 国产精品无码久久久久 | 97精品超碰一区二区三区 | 成人福利在线观看 | 亚洲综合一区二区三区 | 一区二区三区免费在线观看 | 亚洲人成网站777色婷婷 | 亚洲精品一区二区网址 | 一区二区国产在线观看 | 国产精品久久久亚洲 | 国产精品久久久久久久久久尿 | 亚洲国产高清在线观看 | 国产欧美综合在线 | 国产精品黄视频 | 亚洲欧美高清 | 精品国产一区二区在线 | 天天干视频 | 99久久精品免费看国产四区 | 日韩成人中文字幕 | 在线播放91| 黄色网址在线免费观看 | 一呦二呦三呦国产精品 | 天天夜天天操 | 91精品久久久久久综合五月天 | 天天天天操| 成人在线国产 | 亚洲一区二区三区在线免费 | 99热热99| 国产精品久久久久国产a级 欧美日本韩国一区二区 | 美女黄网站 | 日韩免费视频一区二区 | 紧缚调教一区二区三区视频 | 福利片在线 | 综合网伊人 | 亚洲综合色视频在线观看 | 国产精品3区 | 欧美中文字幕一区二区三区亚洲 | 日日网| 欧美性网站 | 午夜精品一区二区三区在线视频 |