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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式文件系統(tǒng)在工程機(jī)械監(jiān)控器上的移植

          嵌入式文件系統(tǒng)在工程機(jī)械監(jiān)控器上的移植

          作者: 時(shí)間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

          2.6 文件管理的程序
          這部分是關(guān)于文件系統(tǒng)的文件基本操作程序,主要包括:初始化文件指針系統(tǒng),查找已打開的指定文件的文件句柄,刪除文件,查找以讀寫方式打開的指定文件的文件句柄,只讀方式打開文件,讀寫方式打開文件,移動(dòng)文件讀/寫位置,以指定方式打開文件,關(guān)閉指定文件,從文件讀一個(gè)字節(jié),讀取文件,寫一個(gè)字節(jié)到文件,寫文件,關(guān)閉所有打開的文件,判斷文件是否讀/寫到文件尾,從文件指針當(dāng)前位置讀取一頁,從文件指針當(dāng)前位置寫入一頁。在這部分函數(shù)里,著重修改的是兩個(gè)函數(shù):讀取文件FileRead()和寫文件FileWrite()。第一個(gè)函數(shù)的原型是這樣的:
          a.JPG
          不難看出,這個(gè)函數(shù)讀取文件的時(shí)候是一個(gè)一個(gè)字符讀的,而且每讀一個(gè)字符都要從盤里讀而不是從緩存里讀,這樣不僅速度慢,而且對(duì)磁盤的操作太頻繁,容易減少磁盤的壽命。為了解決這個(gè)問題,對(duì)上述函數(shù)進(jìn)行了修改。首先創(chuàng)建了一個(gè)新函數(shù):從文件指針當(dāng)前位置讀取一頁FileGetPage(),這個(gè)函數(shù)一次性最大能夠讀取一個(gè)Page大小的文件。然后,在FileRead函數(shù)里判斷,如果要讀取的文件大小不足一個(gè)Page,就用memcpy()這個(gè)庫函數(shù)將文件里要讀取的內(nèi)容直接拷貝到緩沖區(qū);如果要讀取的文件超過一個(gè)Page,就計(jì)算出有N個(gè)Page,然后循環(huán)N次調(diào)用FileGetPage(),最后將不足一個(gè)Page的部分用memcpy()這個(gè)庫函數(shù)去拷貝。
          根據(jù)相同的思路,又創(chuàng)建了一個(gè)新函數(shù):從文件指針當(dāng)前位置寫入一頁FileWritePage(),并對(duì)ZLG—FS原來的FileWrite()函數(shù)進(jìn)行了修改。通過實(shí)驗(yàn)發(fā)現(xiàn),這樣修改以后,大大提高了文件系統(tǒng)的讀寫速度。原來讀取一個(gè)幾兆的文件需要半個(gè)多小時(shí),現(xiàn)在不到一分鐘就可以完成了。
          2.7 目錄管理的程序
          Dir.c文件是關(guān)于FAT文件系統(tǒng)的目錄基本操作程序,主要包括:用戶文件/目錄名轉(zhuǎn)換為系統(tǒng)名,獲取FDT所在目錄的開始簇號(hào)及系統(tǒng)內(nèi)名稱,獲取指定目錄的驅(qū)動(dòng)器(驅(qū)動(dòng)器號(hào)為0、1、2等),改變當(dāng)前邏輯盤,獲取指定目錄開始簇號(hào),建立目錄,刪除目錄,改變當(dāng)前目錄。這里面有幾個(gè)函數(shù)作過微小的修改,在此不細(xì)述。
          2.8 文件系統(tǒng)在嵌入式系統(tǒng)上面的
          在智能中,使用的嵌入式系統(tǒng)是μC/OS—II。正好ZLG—FS提供了其文件系統(tǒng)在μC/OS—II上面的移植程序,就是文件OSFile. c,該文件里面的函數(shù)和File.c里面的函數(shù)功能類似,只不過都打上了μC/OS—II系統(tǒng)的烙印,這些函數(shù)都通過調(diào)用Together(a,b,c)來完成對(duì)文件的一些操作。Together(a,b,c)是為簡(jiǎn)化接口函數(shù)編寫的一個(gè)宏。最后一個(gè)函數(shù)是OSFileTask(),該函數(shù)是在系統(tǒng)主程序里調(diào)用的,作用是創(chuàng)建一個(gè)文件系統(tǒng)服務(wù)任務(wù),對(duì)文件的所有操作都可以在該任務(wù)里以命令的形式被執(zhí)行。這一模塊的程序基本不需要修改。

          結(jié)語
          在整個(gè)文件系統(tǒng)的移植過程中,首先要將文件系統(tǒng)里的程序全部吃透、消化,然后再根據(jù)自己的需要進(jìn)行修改,邊修改邊做實(shí)驗(yàn),通過這個(gè)過程還可以學(xué)習(xí)他人好的編程方法。移植完后,通過實(shí)驗(yàn)驗(yàn)證了的移植效果良好、系統(tǒng)穩(wěn)定。

          本文引用地址:http://www.ex-cimer.com/article/201610/306067.htm

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();