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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Nand flash驅動工作原理

[復制鏈接]
跳轉到指定樓層
樓主
ID:373920 發表于 2018-7-18 10:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在介紹具體如何寫Nand Flash驅動之前,我們先要了解,大概的,整個系統,和Nand Flash相關的部分的驅動工作流程,這樣,對于后面的驅動實現,才能更加清楚機制,才更容易實現,否則就是,即使寫完了代碼,也還是沒搞懂系統是如何工作的了。
讓我們以最常見的,Linux內核中已經有的三星的Nand Flash驅動,來解釋Nand Flash驅動具體流程和原理。
此處是參考2.6.29版本的Linux源碼中的\drivers\mtd\nand\s3c2410.c,以2410為例。
1. 在nand flash驅動加載后,第一步,調用對應的init函數 ---- s3c2410_nand_init: 去將nand flash驅動注冊到Linux驅動框架中。
2. 驅動本身真正的開始,是從probe函數: s3c2410_nand_probe->s3c24xx_nand_probe,
在probe過程中:
clk_enable //打開nand flash控制器的clock時鐘,
request_mem_region //去申請驅動所需要的一些內存等相關資源。
s3c2410_nand_inithw //去初始化硬件相關的部分,主要是關于時鐘頻率的計算,以及啟用nand flash控制器,使得硬件初始化好了,后面才能正常工作。
3. 需要多解釋一下的,是這部分代碼:
for (setno = 0; setno < nr_sets; setno++, nmtd++) {
pr_debug("initialising set %d (%p, info %p)\n", setno, nmtd, info);
/*調用init chip去掛載你的nand驅動的底層函數到"nand flash的結構體"中,以及設置對應的"ecc mode",掛載ecc相關的函數 */
s3c2410_nand_init_chip(info, nmtd, sets);
/* scan_ident,掃描nand 設備,設置nand flash的默認函數,獲得物理設備的具體型號以及對應各個特性參數,這部分算出來的一些值,對于nand flash來說,是最主要的參數,比如nand flash的芯片的大小,塊大小,頁大小等。 */
nmtd->scan_res = nand_scan_ident(&nmtd->mtd, (sets) ? sets->nr_chips : 1);
if (nmtd->scan_res == 0) {
s3c2410_nand_update_chip(info, nmtd);
/*掃描的后一階段,經過前面的scan_ident,我們已經獲得對應nand flash的硬件的各個參數,
*然后就可以在scan tail中,根據這些參數,去設置其他一些重要參數,尤其是ecc的layout,即ecc是如何在oob中擺放的,
*最后,再去進行一些初始化操作,主要是根據你的驅動,如果沒有實現一些函數的話,那么就用系統默認的。 */
nand_scan_tail(&nmtd->mtd);
/*add partion,根據你的nand flash的分區設置,去分區 */
s3c2410_nand_add_partition(info, nmtd, sets);
}
if (sets != NULL)
sets++;
}
4. 等所有的參數都計算好了,函數都掛載完畢,系統就可以正常工作了。
上層訪問你的nand falsh中的數據的時候,通過MTD層,一層層調用,最后調用到你所實現的那些底層訪問硬件數據/緩存的函數中。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区国产 | 成人黄色在线视频 | 午夜成人在线视频 | 五月天天色 | 国产精品99久久久精品免费观看 | 无码一区二区三区视频 | 国产精品毛片av一区 | 国产精品一区二区av | 国产乱码精品一品二品 | 日本亚洲精品成人欧美一区 | 中文字幕一级毛片视频 | 中文字幕高清 | 亚洲 欧美 日韩在线 | 国产一区二区自拍 | 91免费观看视频 | 亚洲在线看| 日韩无 | 免费一级黄色录像 | 国产在线观看一区二区三区 | 国产精品成人国产乱一区 | 精品一区二区在线观看 | 日韩免费看片 | 国产小视频精品 | 国产毛片久久久 | 91亚洲精| 97精品超碰一区二区三区 | 亚洲一二三在线观看 | 国产999精品久久久 日本视频一区二区三区 | 日本三级日产三级国产三级 | 久久综合伊人一区二区三 | 午夜看片网站 | 在线视频日韩 | 日本久久久久久 | 完全免费在线视频 | 一级a性色生活片久久毛片 午夜精品在线观看 | 亚洲精品久久久久久国产精华液 | 男女视频免费 | 免费在线观看一级毛片 | 欧美一级高潮片免费的 | 一区二区视频在线 | 成人亚洲精品 |