999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Windows?。茫牛危牛韵拢伲粒疲疲游募到yNAND Flash驅動程序設計

2009-11-04 08:04:38徐軍化張紹軍
科技傳播 2009年18期

徐軍化 張紹軍

摘要 嵌入式系統中NAND文件系統的實現方式直接關系到NAND芯片的使用壽命。本文首先介紹了YAFFS文件系統的特點及其在Windows CE.Net環境下NAND Flash接口層的要求,其次介紹了SAMSUNG公司的K9K8G08U0A NAND Flash的相關技術規格,并給出了其塊設備驅動程序的部分程序代碼。

關鍵詞Windows CE;YAFFS;NAND;驅動開發

中圖分類號 TP311.1文獻標識碼A文章編號 1674-6708(2009)05-0054-02

0 引言

Windows CE是微軟公司設計的嵌入式操作系統,具有系統體積小、界面友好、可擴展、應用程序開發上手快等特點,目前,在手持式測量設備領域的應用越來越多。手持式振動信號測量儀是一種電池供電、便于現場或野外攜帶和使用的測量設備,主要功能是對振動信號進行實時連續的采集、顯示、分析、處理和存儲。

1 YAFFS文件系統簡介

YAFFS是一種類似于JFFS/JFFS2的專為NAND Flash設計的嵌入式文件系統,適用于大容量的存儲設備。和JFFS相比,YAFFS減少了一些功能,但是速度更快、占用的內存更少、NAND Flash的使用壽命也更長。YAFFS文件系統采用層次結構設計,可分為三層:文件系統管理接口層、YAFFS內部實現層和NAND Flash接口層。

2 YAFFS NAND Flash接口層

YAFFS NAND Flash接口層的主要功能就是為文件系統管理接口層、YAFFS內部實現層提供一個與具體NAND Flash硬件無關的訪問服務,提高了代碼的可移植性和通用性。在對NAND Flash接口層相關代碼進行深入的分析后,我們發現為了使YAFFS能夠對NAND Flash進行訪問,必須為NAND Flash提供一個塊設備驅動程序。與NAND Flash物理訪問相關的代碼全部由其實現,而YAFFS則是通過給該設備驅動程序發送IOControl請求來實現對NAND Flash的讀、寫、擦除等具體操作,具體來說,主要有以下幾個操作請求:

1)IOCTL_DISK_NAND_INIT 功能是命令NAND Flash驅動程序對Flash芯片進行初始化。

2) IOCTL_DISK_NAND_GETSIZE 功能是獲取NAND Flash的存儲容量(磁盤空間)。

3) IOCTL_DISK_NAND_GETNAME 功能是獲取設備在Windows CE中顯示的文件夾名稱。

4) IOCTL_DISK_NAND_GETPARTITIONS 功能是獲取NAND Flash中的分區表。

5) IOCTL_DISK_NAND_WRITE 功能是將緩沖區中的數據寫到NAND Flash中的指定頁中。

6) IOCTL_DISK_NAND_READ 功能是讀取指定的頁的數據。

7) IOCTL_DISK_NAND_ERASE 功能是從NAND Flash中的指定塊擦除。

3 Samsung K9K8G08U0A Flash

目前,在嵌入式系統領域廣泛使用的Flash主要有兩種:一種是采用NOR技術的NOR Flash,另一種是采用NAND技術的NAND Flash。這里重點介紹一下NAND Flash,首先,從內部存儲器的組織形式上看,NAND Flash的內部可分為若干個塊,塊又分為頁,頁而由數據存儲區和備用區兩部分組成;其次,NAND Flash不能按照字節進行訪問,而是以頁為單位進行讀、寫,以塊為單位進行擦除;第三,NAND Flash的地址、數據、命令端口復用,讀、寫、擦除等操作都是相應的命令來完成的。

SAMSUNG的K9K8G08U0A NAND Flash內部共有8192個塊,每個塊有64個頁,每頁包含2048字節的存儲空間和64字節的備用空間,總容量為1G字節。K9K8G08U0A的以頁為單位進行讀和寫,以塊為單位擦除,其典型的隨機頁讀時間為25us、順序頁讀時間為25ns、頁寫時間為200us、塊擦除時間為1.5ms。

4 K9K8G08U0A塊設備驅動程序的實現

Windows CE.Net環境下的塊設備驅動程序一般都實現為流接口驅動的形式,即流接口驅動需要的XXX_Close、XXX_Deinit、XXX_Init、XXX_IOControl、XXX_Open、XXX_PowerDown、XXX_PowerUp、XXX_Read、XXX_Seek 、XXX_Write都要實現,XXX表示設備名前綴,這里可以是“DSK”。由于YAFFS的NAND Flash接口主要是通過IOControl的形式實現的,所以,相應的與K9K8G08U0A讀、寫、擦除等操作相關代碼也都在DSK_IOControl函數內實現。下面給出DSK_IOControl的部分程序代碼:

DSK_IOControl的部分程序代碼如下:

BOOL DSK_IOControl(……)

{

switch (dwIoControlCode)

{

case IOCTL_DISK_NAND_WRITE:

NandRePage(pDisk,pBufData,pBufSpare,ifData->chunk);break;

case IOCTL_DISK_NAND_READ:

NandReadPage(pDisk,pBufData,pBufSpare,ifData->chunk);break;

case IOCTL_DISK_NAND_ERASE:

NandEraseBlock(pDisk,*BlockNumber);break;

}

}

具體的讀、寫、擦除等操作分別由NandReadPage、NandWritePage、NandEraseBlock三個函數按照Samsung公司K9K8G08U0A的時序規范來實現。

5 結論

本文在深入研究YAFFS文件系統的NAND Flash接口后,給出了Windows CE.Net環境下Samsung的K9K8G08U0A NAND Flash塊設備驅動的實現方法,并給出了關鍵程序代碼。

本文創新點在于以手持式振動信號測量儀為背景,給出了Windows CE.Net環境下YAFFS文件系統NAND Flash塊驅動程序的一種實現方法。

主站蜘蛛池模板: 国产精品妖精视频| 又爽又黄又无遮挡网站| 日本黄网在线观看| 日日噜噜夜夜狠狠视频| 亚洲日韩久久综合中文字幕| 凹凸国产熟女精品视频| 尤物成AV人片在线观看| 91福利在线观看视频| 重口调教一区二区视频| 亚洲人妖在线| 99久久性生片| 午夜福利视频一区| 国产欧美又粗又猛又爽老| 99热这里只有精品国产99| 国产综合网站| 亚洲精品成人7777在线观看| 找国产毛片看| 五月天丁香婷婷综合久久| 无码福利视频| 亚洲第一国产综合| 91尤物国产尤物福利在线| 亚洲欧美日韩视频一区| 伊人福利视频| 91精品国产麻豆国产自产在线| 亚洲男人天堂久久| 一本大道无码日韩精品影视| 免费a级毛片视频| 色偷偷一区| 国产三级国产精品国产普男人| 日本午夜三级| 国产丝袜91| 亚洲天堂首页| 亚洲av无码久久无遮挡| 亚洲国产91人成在线| 国产成人超碰无码| 波多野结衣AV无码久久一区| 欧美国产在线看| 亚洲成人手机在线| 日韩欧美中文字幕在线韩免费| 欧美视频在线不卡| 毛片在线看网站| 成年人久久黄色网站| 欧美日韩精品在线播放| 秘书高跟黑色丝袜国产91在线| 国产在线小视频| 美女毛片在线| 黄色片中文字幕| 欧美国产菊爆免费观看| 3D动漫精品啪啪一区二区下载| 青青草原国产精品啪啪视频| 91在线无码精品秘九色APP | 免费不卡视频| 国产美女无遮挡免费视频| 国产农村妇女精品一二区| 日韩中文欧美| 国产99视频免费精品是看6| 影音先锋亚洲无码| 久久国产成人精品国产成人亚洲| 亚洲男人天堂久久| 国产欧美视频综合二区| 国产精品免费露脸视频| 91香蕉视频下载网站| 午夜电影在线观看国产1区| 午夜国产在线观看| 拍国产真实乱人偷精品| 久久人人97超碰人人澡爱香蕉| 午夜日b视频| 国产永久在线视频| 呦系列视频一区二区三区| 亚洲人成影视在线观看| 亚洲成a人片在线观看88| 美女毛片在线| 黄色一及毛片| 91九色最新地址| 久视频免费精品6| 亚洲日韩精品无码专区| 色亚洲激情综合精品无码视频| 亚洲中文无码h在线观看| 99热这里只有精品5| 天天色综网| 国产综合日韩另类一区二区| 在线观看精品国产入口|