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

Windows CE.NET下YAFFS文件系統NAND 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塊驅動程序的一種實現方法。

主站蜘蛛池模板: 园内精品自拍视频在线播放| 国产网站黄| 国产拍在线| 国内精品视频区在线2021| 国产精品自在在线午夜| 国产在线一区二区视频| 免费aa毛片| 日本一区高清| 亚洲天堂日韩在线| 99久久精品无码专区免费| 九色综合伊人久久富二代| 日日碰狠狠添天天爽| 国产精品视频久| jizz在线观看| 激情无码字幕综合| 国产精品久线在线观看| 亚洲大尺码专区影院| 国产丝袜一区二区三区视频免下载| 亚洲天堂视频在线观看免费| 婷婷午夜天| 19国产精品麻豆免费观看| 2020最新国产精品视频| 亚洲中文字幕无码mv| 高h视频在线| 国产青榴视频在线观看网站| 99久久精品免费观看国产| 亚洲第一色网站| 在线欧美一区| 国产在线专区| 久久国产精品影院| 国产毛片基地| 亚洲欧美另类视频| 欧美午夜视频在线| 中文字幕天无码久久精品视频免费 | 久久午夜夜伦鲁鲁片无码免费| 欧美午夜网站| 九色综合伊人久久富二代| 亚洲第一视频网站| 亚洲狠狠婷婷综合久久久久| 九九这里只有精品视频| 免费三A级毛片视频| 一级做a爰片久久免费| 国内精自视频品线一二区| 国产精品永久久久久| 视频在线观看一区二区| 久久96热在精品国产高清| 国产特级毛片| 97人人模人人爽人人喊小说| 亚洲成人在线免费| 色一情一乱一伦一区二区三区小说 | 九色免费视频| 国产一区二区影院| 欧美区一区| 久久精品波多野结衣| 99热国产在线精品99| 国产69囗曝护士吞精在线视频| 国产成人精品综合| 精品伊人久久久香线蕉 | 亚洲精品爱草草视频在线| 激情在线网| 欧美视频在线不卡| 日本少妇又色又爽又高潮| 国产精品亚洲欧美日韩久久| 精品人妻一区二区三区蜜桃AⅤ| 久久综合伊人 六十路| 中文国产成人精品久久一| 免费国产在线精品一区| 无码AV动漫| 91视频首页| 国产精品13页| 国产情侣一区二区三区| 91青青草视频| 性视频一区| 日本妇乱子伦视频| 国产成人精品日本亚洲| 性视频一区| 激情乱人伦| 在线看AV天堂| 亚洲性日韩精品一区二区| 一级毛片免费高清视频| 在线看AV天堂| 亚洲Av综合日韩精品久久久|