<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于TFFS的成像聲吶文件系統設計

基于TFFS的成像聲吶文件系統設計

作者:董琎琎 金雪 夏偉杰 蔣鵬飛 時(shí)間:2015-04-29 來(lái)源:電子產(chǎn)品世界 收藏

  3 TrueFFS系統設計

本文引用地址:http://dyxdggzs.com/article/273339.htm

  3.1 功能層的實(shí)現

  為了使生成的映像支持TrueFFS系統,需要對如下文件進(jìn)行配置:

  config.h用來(lái)定義系統包含的配置,這使得的初始化代碼調用tffsDrv()來(lái)創(chuàng )建管理TrueFFS所需的結構和全局變量,并在運行確認程序之前為所有掛接了的設備注冊socket組件驅動(dòng)。在鏈接時(shí),通過(guò)解析與tffsDrv()相關(guān)聯(lián)的符號可以將TrueFFS所必須的軟件模塊鏈接到映像中。

  xxxMtd.c是驅動(dòng)文件,主要包含了針對所使用的具體設備所編寫(xiě)的底層驅動(dòng)函數,由于我們使用的是SPANSION公司的S29GL512P10TFIR20芯片,Tornado或者Workbench并未提供相應的驅動(dòng),需要自己編寫(xiě),具體在3.2節中進(jìn)行了闡述。

  sysTffs.c文件將TrueFFS三個(gè)功能層鏈接到一起,并與VxWorks關(guān)聯(lián)并決定應該包含哪個(gè)翻譯層和MTD模塊,本文Flash芯片采用的是NOR-based技術(shù),包含INCLUDE_TL_FTL組件即可。

  tffsConfig.c文件在mtdTable[]表中注冊自己的MTD。如果你新寫(xiě)了一個(gè)MTD并希望TrueFFS可以識別它,就需要在此表中添加它的注冊信息。

  Makefile文件用來(lái)添加TrueFFS的目標文件。

  3.2 MTD驅動(dòng)的編寫(xiě)

  MTD和具體的Flash存儲器相關(guān),實(shí)現讀、寫(xiě)、擦除、映射等操作,這里我們針對S29GL512P10TFIR20芯片編寫(xiě)了驅動(dòng)文件的入口函數、Flash映射函數、Flash擦除函數、Flash寫(xiě)函數。擦除和寫(xiě)函數是編寫(xiě)MTD驅動(dòng)時(shí)最關(guān)鍵的兩個(gè)函數。

  MTD入口函數主要用來(lái)探測設備并識別設備ID。若返回的設備ID是其支持的設備ID,則對FLFlash結構成員進(jìn)行初始化;否則返回失敗。

  Flash地址映射函數將系統傳遞給map函數的Flash片內地址轉換為系統地址。一般直接在片內地址的基礎上加上Flash的基地址即可。

  Flash擦除函數主要用于擦除TrueFFS管理的Flash區域。Flash的擦除操作是成塊進(jìn)行的,擦除前先要對扇區進(jìn)行解鎖,然后寫(xiě)入擦除建立和擦除扇區命令,擦除成功后,內容應該均為1,以此來(lái)判斷是否擦除成功。

  Flash寫(xiě)函數主要實(shí)現寫(xiě)Flash操作。寫(xiě)入前首先要對扇區解鎖,然后判斷是否是改寫(xiě)操作,若是則需要進(jìn)行擦除操作,否則直接寫(xiě)命令、寫(xiě)數據。最后需要判斷數據是否寫(xiě)完。

  MTD驅動(dòng)文件的編寫(xiě)需要注意幾個(gè)方面:(1)Flash芯片的數據手冊中給出指令地址是按字而言的,在本文中不能直接使用,需要左移一位。(2)擦除和寫(xiě)操作是需要屏蔽中斷的,可以用intLock()函數來(lái)屏蔽中斷,用intUnlock()函數來(lái)使能中斷。(3)可以在各個(gè)操作函數中添加打印信息以方便調試。

  4 文件系統的創(chuàng )建

  一旦VxWorks包含了TrueFFS系統,啟動(dòng)時(shí)usrRoot()會(huì )調用tffsDev()進(jìn)行設備初始化,通過(guò)xxxRegister()函數注冊socket驅動(dòng)。此過(guò)程如圖 5所示。

  4.1 Flash設備的識別

  在TrueFFS中包含了INCLUDE__SHOW 和INCLUDE_SHOW_ROUTINES后,就可以在shell中使用tffsShow()和tffsShowAll()任意一個(gè)顯示程序來(lái)識別Flash設備。

  4.2 格式化TrueFFS

  在實(shí)際加載使用TrueFFS之前,需要格式化TrueFFS。格式化是否成功,在于你的MTD驅動(dòng)代碼是否正確。因此可以用格式化操作來(lái)調試MTD層。在shell中輸入tffsDevFormat命令來(lái)格式化TrueFFS,tffsDevFormat最終會(huì )調用s29gl512MTDErase()和s29gl512MTDWrite()函數。這兩個(gè)函數是MTD層的主要的兩個(gè)函數。格式化成功則返回0,否則返回-1。

  4.3 掛載DOS設備名

  格式化TrueFFS成功之后,就可以給Flash設備掛接DOS設備名了。在usrTffs.c文件中提供了一個(gè)標準的初始化函數usrTffsConfig(),可用來(lái)在TrueFFS塊設備上建立dosFs文件系統。加載完成后,就可以使用加載點(diǎn)來(lái)訪(fǎng)問(wèn)文件系統了。

  5 文件系統測試

  一般為了調試MTD驅動(dòng)的方便,在VxWorks映像中建立文件系統而非在BootRom中建立文件系統。先通過(guò)網(wǎng)絡(luò )加載VxWorks映像。在shell中調試MTD驅動(dòng),創(chuàng )建TrueFFS系統。然后使用dosFs文件系統的相關(guān)命令如copy等將VxWorks映像拷貝到TrueFFS文件系統中,改變config.h中的啟動(dòng)引導行,從文件系統加載。修改完后,重新編譯生成bootrom_uncmp.bin,并把它燒寫(xiě)到Flash中然后重新啟動(dòng),在超級終端中即可看到如圖 6和圖 7所示的啟動(dòng)畫(huà)面。

  6 結束語(yǔ)

  本文首先介紹了VxWorks系統的啟動(dòng)流程和加載方式,分析了網(wǎng)絡(luò )加載的缺點(diǎn)和建立Flash文件系統的必要性;接著(zhù)介紹了VxWorks下支持的文件系統,選擇了適用于硬件平臺和系統需求的TrueFFS文件系統;然后分析了TrueFFS文件系統需要配置的文件以及驅動(dòng)層的編寫(xiě);最后在文件配置好的基礎上創(chuàng )建TrueFFS文件系統并對文件系統進(jìn)行了測試,成功基于文件系統加載了VxWorks映像,將系統的啟動(dòng)時(shí)間縮短到了20s,提高了產(chǎn)品的用戶(hù)體驗。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程


熱成像儀相關(guān)文章:熱成像儀原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: VxWorks 嵌入式 TFFS Flash MTD

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>