SoC嵌入式軟體架構設計之七:嵌入式系統韌體的系統區檔案系統設計

來源:互聯網
上載者:User

標籤:style   os   檔案   sp   資料   on   代碼   ad   bs   

      嵌入式韌體的系統區(system disk,SD)包括作業系統、驅動、中介軟體、應用和字型檔、UI資源等檔案,本文講述SD區的檔案系統設計。檔案系統最主要的目標是為了實現單個檔案的定位和讀寫。因為一般代碼都是不可自修改的,即量產之後不會有寫操作,嵌入式系統的SD檔案系統就是為了能夠簡單、高效地定位某個檔案和讀取檔案中的資料。設計原則和要點有以下幾方面:

       1. 邏輯連續儲存單個檔案,以扇區對齊。

        SD區的單個代碼和資源檔一般都不大,所以不必要像fat32檔案系統那樣用fat表把檔案簇串起來,直接邏輯連續地儲存起來即可,這樣定位也會更加簡單快速,當然檔案應該以扇區來對齊,方便讀取,檔案位移資訊也能用扇區數來記錄。   

 

       2. SD頭

       這是對整個SD區屬性的描述,包括校正碼、版本號碼、日期、OEM廠商等等。有時為了保證智慧財產權,還會加上一些防止拷貝的加密ID資訊。 

 

       3. DIR節

        DIR節就是目錄資訊,即每個檔案在SD區中的定位資訊,是SD檔案系統最重要的資料結構,檔案的定位就是依賴於目錄資訊進行。打包工具會按一定的順序將各個檔案打包,並相應按順序產生每個檔案對應的目錄資訊。每個檔案的目錄資料結構如下:

        1)檔案名稱,一般是8+3格式

        2)檔案屬性,區分系統檔案和應用檔案、隱藏檔案等

        3)檔案在SD區中的位移量,以扇區為單位

        4)檔案大小,位元組為單位

        5)校正碼

 

        4. 檔案資料

        DIR節之後就是一個個真實的代碼和資源和配置等檔案。

 

        5. fopen

        開啟檔案即根據檔案名稱在DIR節中匹配,匹配成功即可獲得檔案在SD中的位移量,將這位移量右移9位(即512位元組,一個扇區)即是檔案的位置。fopen返回的是一個控制代碼,該控制代碼對應一個資料結構,結構一般包括:檔案的起始位置、長度、當前讀指標位置等。記錄起始位置和長度是為了防止越界讀取。

 

        6. fread

        根據控制代碼的當前讀指標進行讀取,讀後要修改當前讀指標。

 

        7. fseek

        根據模式來直接修改讀指標。

         

        需要清楚的是:SD區是一個邏輯區,其只是韌體的一部分。一個韌體會包括引導區、SD區、VM區、特定功能區(如VM),之後才是資料區,這個資料區就會部署fat32或者exfat等標準檔案系統。

SoC嵌入式軟體架構設計之七:嵌入式系統韌體的系統區檔案系統設計

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.