<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                用adb shell登錄到我的G7手機上,然后用mount查看信息后,會得到如圖9-10所示的結果: :-: ![](http://img.blog.csdn.net/20150802164824388?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 圖9-10 mount命令的執行結果 其中,可以發現系統的幾個重要的分區,例如/system對應的設備是mtdblock3,那么mtdblock是什么呢? 1. MTD的介紹[^write] Linux系統提供了MTD(Memory Technology Device,內存技術設備)系統來建立針對Flash設備的統一、抽象的接口,也就是說,有了MTD,就可以不用考慮不同Flash設備帶來的差異了,這一點和FBD(FrameBuffer Device)的作用很類似。下面看Linux MTD的系統層次圖,如圖9-11所示。 :-: ![](http://img.blog.csdn.net/20150802164737835?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 圖9-11 Linux MTD系統層次圖 從上圖中可以看出: - MTD將文件系統與底層的Flash存儲器進行了隔離,這樣應用層就無須考慮真實的硬件情況了。 - 圖9-11中的mtdblock表示MTD塊設備。 有了MTD后,就不用關心Flash是NOR還是NAND了。另外,我們從圖9-10“mount命令的執行結果”中還可看見mount指定的文件系統中有一個yaffs2,它又是什么呢? 2. Flash文件系統[^platform] 先來說說Flash的特性。常見的文件系統(例如FAT32、NTFS、Ext2等)是無法直接用在Flash設備上的,因為無法重復地在Flash的同一塊存儲位置上做寫入操作(必須事先擦除該塊后才能寫入)。為了能夠在Flash設備上使用這些文件系統,必須透過一層轉換層(TranslationLayer),將邏輯塊地址對應到Flash存儲器的物理地址上,以便系統能把Flash當做普通的磁盤處理,可稱這一層為FTL(Flash Translation Layer)。Flash轉換層的示意圖如圖9-12所示: :-: ![](http://img.blog.csdn.net/20150802164918988?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 圖9-12 FTL和NFTL 從上圖中可以看到: - 如果想使用FAT32或NTFS文件系統,必須通過FTL或NTFL進行轉換,其中FTL針對NORFlash,而NTFL針對NAND Flash。 - 盡管有了FTL,但畢竟多了一層處理,這樣對I/O效率的影響較大,所以人們開發了專門針對Flash的文件系統,其中YAFFS就是應用比較廣泛的一種。 YAFFS是Yet Another Flash File System的簡稱,目前有YAFFS和YAFFS2兩個版本。這兩個版本的主要區別是,YAFFS2可支持大容量的NADN Flash,而YAFFS只支持頁的大小為512字節的NAND Flash。YAFFS使用OOB(Out Of Bind)來組織文件的結構信息,所以在Vold代碼中,可以見到OOB相關的字樣。 關于嵌入式存儲方面的知識就介紹到這里。有興趣深入了解的讀者可閱讀有關驅動開發方面的書籍。 3. Android mtd設備的介紹 這里以我的HTC G7手機為例,分析Android系統中MTD設備的使用情況。 通過adb cat /proc/mtd,得到圖9-13所示的MTD設備的使用情況: :-: ![](http://img.blog.csdn.net/20150802164826476?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 圖9-13 G7 MTD設備使用情況 這幾個設備對應存儲空間的大小和作用如下: - MTD0,主要用于存儲開機畫面。此開機畫面在Android系統啟動前運行,由Bootloader調用,大小為1MB。 - MTD1,存儲恢復模式的鏡像,大小為4.5MB。 - MTD2,存儲kernel鏡像,大小為3.25MB。 - MTD3,存儲sytem鏡像,該分區掛載在/system目錄下,大小為250MB。 - MTD4,緩沖臨時文件,該分區掛載在/cache目錄下,大小為40MB。 - MTD5,存儲用戶安裝的軟件和一些數據,我的G7把這個設備掛載在/mnt/asec/mtddata目錄下,大小為150.75MB。 >[info] **注意**,上面的設備和掛載點與具體的機器及所刷的ROM有關。 [^write]: 參考資料為《Linux設備驅動開發詳解》,宋寶華,第530頁-531頁,人民郵電出版社,2008年。 [^platform]: 參考資料為《Linux設備驅動開發詳解》,宋寶華,第556頁-560頁,人民郵電出版社,2008年。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看