<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM7系統(tǒng)中CF卡存儲的文件系統(tǒng)設計實現(xiàn)

          ARM7系統(tǒng)中CF卡存儲的文件系統(tǒng)設計實現(xiàn)

          作者: 時間:2013-11-09 來源:網(wǎng)絡 收藏

          為了達到這些目的,我們針對不同CPU的不同處理方法,對硬件操作程序進行分離,將設備有關的底層程序變成與設備無關的上層操作。這樣,當系統(tǒng)新增功能之后,不必更改每個子程序,只需要在某些接口文件的數(shù)據(jù)結構中添加或者更改數(shù)據(jù)項即可;又考慮到用戶對上層操作的透明性,我們采用面向對象的方法,上層結構中存取操作的Driver結構(含Read、Write數(shù)據(jù)項)是虛擬的,在底層才將它具體化為的讀寫扇區(qū)命令(操作碼為:20h、30h)。

          軟件程序的主要流程如圖3所示。

          2 系統(tǒng)設計實現(xiàn)

          根據(jù)上述原理,可完成軟件設計,其基本框架如圖4所示,分為六個主要部分。

          其中,驅動程序設計的關鍵是的存取操作函數(shù)所采用的命令碼有些不同。另外,我們使用驅動程序對象來代表CF卡設備驅動程序。該驅動程序對象對于用戶是部分不透明的,數(shù)據(jù)項包括讀寫函數(shù)的指針,這些函數(shù)由文件系統(tǒng)程序輸出(包括兩部分函數(shù),用戶可見API函數(shù)調(diào)用和用戶不見驅動存取函數(shù))。此對象的數(shù)據(jù)結構聲明如下:

          Typedef Struct CF_XFILE_DRIVER{

          BYTE Driver_name; /*介質標示;CF卡、IDE硬盤、Flash卡、RAMDISK等,刪除驅動的話,需要重新記錄DRIVER號*/

          …… /*IRP處理函數(shù)*/

          }CF_XFILE_DRIVER;

          如果有多個CF卡,需要用另外一個特定的數(shù)據(jù)結構Next_Driver來把它們水平連接在一起。然后,用鏈表來管理這些數(shù)據(jù)結構,管理方式類似于WDM(Windows Driver Model)。

          3 測試分析

          經(jīng)過調(diào)試運行,該文件系統(tǒng)性能良好。與我們之前已經(jīng)移植過的Nucleus、ΜC/OS- II、UNIX的操作系統(tǒng)的文件系統(tǒng)相比,本文介紹的文件系統(tǒng)可移植性更強;除了文中著重介紹的CF卡,經(jīng)過對底層驅動的簡單修改就可以應用于其它存儲介質如RAMdisk、IDE硬盤、Flash等(其中IDE硬盤和Flash也已經(jīng)調(diào)試成功)。另外,本文介紹的文件系統(tǒng)對硬件平臺的配置要求降低,并且對于文件操作的運行速度并未減慢。


          上一頁 1 2 下一頁

          關鍵詞: ARM CF卡 微控制器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();