国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于TFFS的成像聲吶文件系統(tǒng)設(shè)計(jì)

發(fā)布時間:2015-10-30 15:34    發(fā)布者:designapp
關(guān)鍵詞: VxWorks , 嵌入式 , TFFS , Flash , MTD
  1 VxWorks系統(tǒng)的啟動流程
  嵌入式VxWorks操作系統(tǒng)的啟動包括兩個階段,一是BootRom引導(dǎo),二是VxWorks操作系統(tǒng)映像的啟動。BootRom映像也叫做啟動映像,它主要是初始化串口、網(wǎng)口等很少的硬件系統(tǒng)來下載VxWorks映像。VxWorks映像包含完整的VxWorks OS,是真正在目標(biāo)板上運(yùn)行的操作系統(tǒng)。它啟動后會重新初始化幾乎所有的硬件系統(tǒng),這樣操作系統(tǒng)才可以在目標(biāo)板上正常運(yùn)行。兩種映像的區(qū)別如表 1所示。


  VxWorks內(nèi)核有多種啟動流程。本文基于的聲吶原型機(jī)采用了最常見的一種啟動方法,將BootRom映像存放在Flash中,負(fù)責(zé)初始化一些簡單的硬件如網(wǎng)口、串口等,然后下載VxWorks映像到RAM中并將控制權(quán)交由操作系統(tǒng)開始執(zhí)行。VxWorks映像存放在干端主機(jī)上,通過網(wǎng)絡(luò)加載到目標(biāo)機(jī)中,啟動時還需要打開FTP進(jìn)行配置。圖 1所示為基于網(wǎng)絡(luò)加載的VxWorks啟動方式。此種啟動方法比較繁瑣,而且需要網(wǎng)絡(luò)的支持,啟動速度也比較慢。


  產(chǎn)品定型之后,BootRom映像和VxWorks映像不再需要進(jìn)行修改,本文建立基于Flash的文件系統(tǒng),將VxWorks映像拷貝到文件系統(tǒng)中,通過Flash文件系統(tǒng)加載VxWorks映像,不需要網(wǎng)絡(luò)和FTP軟件的支持,提高了啟動速度。基于Flash文件系統(tǒng)的加載的VxWorks啟動方式如圖 2所示。


  2 Flash文件系統(tǒng)
  2.1 文件系統(tǒng)比較與選擇
  文件系統(tǒng)的選擇與存儲設(shè)備的物理特性和系統(tǒng)的要求密切相關(guān)。I/O系統(tǒng)、文件系統(tǒng)和塊設(shè)備之間的聯(lián)系如圖 3所示。


  dosFs文件系統(tǒng)是一種與MS_DOS文件系統(tǒng)相兼容的文件系統(tǒng),具有能夠滿足實(shí)時應(yīng)用的多種要求;支持可擴(kuò)展的目錄結(jié)構(gòu);支持使用連續(xù)文件;支持存儲盤緩存,提高數(shù)據(jù)讀寫效率的特點(diǎn)。
  TrueFFS(簡稱TFFS)旨在提高閃存的使用效率。它具有線程安全、可重入的特點(diǎn),忽略了底層存儲介質(zhì)的不同,使得用戶可以像操作磁質(zhì)設(shè)備一樣操作存儲介質(zhì)。通過wear-leveling技術(shù)、磨損均衡及碎片回收等機(jī)制平衡所有存儲單元的使用頻率,以此來達(dá)到延長存儲介質(zhì)使用壽命的目的。但是TrueFFS不能單獨(dú)使用,需要DOS文件系統(tǒng)的支持。
  因此本文選擇在嵌入式VxWorks操作系統(tǒng)下基于Flash建立TFFS系統(tǒng),在TFFS上掛載dosFs文件系統(tǒng)來進(jìn)行I/O操作。如此一來,對Flash設(shè)備中文件和數(shù)據(jù)的讀取就像對磁盤操作一樣,方便快捷。
  2.2 TrueFFS系統(tǒng)分析
  VxWorks下的TFFS位于dosFs文件系統(tǒng)和底層硬件之間,由一個核心層和翻譯層、MTD層、Socket層三個功能層組成。要在VxWorks下包含TFFS系統(tǒng),每一層至少有一個軟件模塊與之對應(yīng)。圖4為TFFS結(jié)構(gòu)圖。


  核心層(Core Layer)的主要作用是將其它三層有機(jī)結(jié)合起來,同時還控制著碎片回收、定時器和其他一些系統(tǒng)資源。翻譯層(Translation Layer)是TrueFFS系統(tǒng)的核心,主要實(shí)現(xiàn)TrueFFS和DOS文件系統(tǒng)(dosFs)之間的高級交互功能。MTD(Memory Technology Drivers)層針對具體Flash存儲器件,提供讀、寫、擦除、ID識別、映射等基本操作。Socket層(Socket Layer),又稱套接層,提供TrueFFS和硬件系統(tǒng)之間的接口,用來向系統(tǒng)注冊socket設(shè)備、檢測設(shè)備插拔、硬件寫保護(hù)等。
                               
                  3 TrueFFS系統(tǒng)設(shè)計(jì)
  3.1 功能層的實(shí)現(xiàn)
  為了使生成的VxWorks映像支持TrueFFS系統(tǒng),需要對如下文件進(jìn)行配置:
  config.h用來定義系統(tǒng)包含的配置,這使得VxWorks的初始化代碼調(diào)用tffsDrv()來創(chuàng)建管理TrueFFS所需的結(jié)構(gòu)和全局變量,并在運(yùn)行MTD確認(rèn)程序之前為所有掛接了的Flash設(shè)備注冊socket組件驅(qū)動。在鏈接時,通過解析與tffsDrv()相關(guān)聯(lián)的符號可以將TrueFFS所必須的軟件模塊鏈接到VxWorks映像中。
  xxxMtd.c是MTD驅(qū)動文件,主要包含了針對所使用的具體Flash設(shè)備所編寫的底層驅(qū)動函數(shù),由于我們使用的Flash是SPANSION公司的S29GL512P10TFIR20芯片,Tornado或者Workbench并未提供相應(yīng)的MTD驅(qū)動,需要自己編寫,具體在3.2節(jié)中進(jìn)行了闡述。
  sysTffs.c文件將TrueFFS三個功能層鏈接到一起,并與VxWorks關(guān)聯(lián)并決定應(yīng)該包含哪個翻譯層和MTD模塊,本文Flash芯片采用的是NOR-based技術(shù),包含INCLUDE_TL_FTL組件即可。
  tffsConfig.c文件在mtdTable[]表中注冊自己的MTD。如果你新寫了一個MTD并希望TrueFFS可以識別它,就需要在此表中添加它的注冊信息。
  Makefile文件用來添加TrueFFS的目標(biāo)文件。
  3.2 MTD驅(qū)動的編寫
  MTD和具體的Flash存儲器相關(guān),實(shí)現(xiàn)讀、寫、擦除、映射等操作,這里我們針對S29GL512P10TFIR20芯片編寫了驅(qū)動文件的入口函數(shù)、Flash映射函數(shù)、Flash擦除函數(shù)、Flash寫函數(shù)。擦除和寫函數(shù)是編寫MTD驅(qū)動時最關(guān)鍵的兩個函數(shù)。
  MTD入口函數(shù)主要用來探測設(shè)備并識別設(shè)備ID。若返回的設(shè)備ID是其支持的設(shè)備ID,則對FLFlash結(jié)構(gòu)成員進(jìn)行初始化;否則返回失敗。
  Flash地址映射函數(shù)將系統(tǒng)傳遞給map函數(shù)的Flash片內(nèi)地址轉(zhuǎn)換為系統(tǒng)地址。一般直接在片內(nèi)地址的基礎(chǔ)上加上Flash的基地址即可。
  Flash擦除函數(shù)主要用于擦除TrueFFS管理的Flash區(qū)域。Flash的擦除操作是成塊進(jìn)行的,擦除前先要對扇區(qū)進(jìn)行解鎖,然后寫入擦除建立和擦除扇區(qū)命令,擦除成功后,內(nèi)容應(yīng)該均為1,以此來判斷是否擦除成功。
  Flash寫函數(shù)主要實(shí)現(xiàn)寫Flash操作。寫入前首先要對扇區(qū)解鎖,然后判斷是否是改寫操作,若是則需要進(jìn)行擦除操作,否則直接寫命令、寫數(shù)據(jù)。最后需要判斷數(shù)據(jù)是否寫完。
  MTD驅(qū)動文件的編寫需要注意幾個方面:(1)Flash芯片的數(shù)據(jù)手冊中給出指令地址是按字而言的,在本文中不能直接使用,需要左移一位。(2)擦除和寫操作是需要屏蔽中斷的,可以用intLock()函數(shù)來屏蔽中斷,用intUnlock()函數(shù)來使能中斷。(3)可以在各個操作函數(shù)中添加打印信息以方便調(diào)試。
  4 嵌入式文件系統(tǒng)的創(chuàng)建
  一旦VxWorks包含了TrueFFS系統(tǒng),啟動時usrRoot()會調(diào)用tffsDev()進(jìn)行設(shè)備初始化,通過xxxRegister()函數(shù)注冊socket驅(qū)動。此過程如圖 5所示。


  4.1 Flash設(shè)備的識別
  在TrueFFS中包含了INCLUDE_TFFS_SHOW 和INCLUDE_SHOW_ROUTINES后,就可以在shell中使用tffsShow()和tffsShowAll()任意一個顯示程序來識別Flash設(shè)備。
  4.2 格式化TrueFFS
  在實(shí)際加載使用TrueFFS之前,需要格式化TrueFFS。格式化是否成功,在于你的MTD驅(qū)動代碼是否正確。因此可以用格式化操作來調(diào)試MTD層。在shell中輸入tffsDevFormat命令來格式化TrueFFS,tffsDevFormat最終會調(diào)用s29gl512MTDErase()和s29gl512MTDWrite()函數(shù)。這兩個函數(shù)是MTD層的主要的兩個函數(shù)。格式化成功則返回0,否則返回-1。
  4.3 掛載DOS設(shè)備名
  格式化TrueFFS成功之后,就可以給Flash設(shè)備掛接DOS設(shè)備名了。在usrTffs.c文件中提供了一個標(biāo)準(zhǔn)的初始化函數(shù)usrTffsConfig(),可用來在TrueFFS塊設(shè)備上建立dosFs文件系統(tǒng)。加載完成后,就可以使用加載點(diǎn)來訪問文件系統(tǒng)了。
  5 文件系統(tǒng)測試
  一般為了調(diào)試MTD驅(qū)動的方便,在VxWorks映像中建立文件系統(tǒng)而非在BootRom中建立文件系統(tǒng)。先通過網(wǎng)絡(luò)加載VxWorks映像。在shell中調(diào)試MTD驅(qū)動,創(chuàng)建TrueFFS系統(tǒng)。然后使用dosFs文件系統(tǒng)的相關(guān)命令如copy等將VxWorks映像拷貝到TrueFFS文件系統(tǒng)中,改變config.h中的啟動引導(dǎo)行,從文件系統(tǒng)加載。修改完后,重新編譯生成bootrom_uncmp.bin,并把它燒寫到Flash中然后重新啟動,在超級終端中即可看到如圖 6和圖 7所示的啟動畫面。


  6 結(jié)束語
  本文首先介紹了VxWorks系統(tǒng)的啟動流程和加載方式,分析了網(wǎng)絡(luò)加載的缺點(diǎn)和建立Flash文件系統(tǒng)的必要性;接著介紹了VxWorks下支持的文件系統(tǒng),選擇了適用于硬件平臺和系統(tǒng)需求的TrueFFS文件系統(tǒng);然后分析了TrueFFS文件系統(tǒng)需要配置的文件以及驅(qū)動層的編寫;最后在文件配置好的基礎(chǔ)上創(chuàng)建TrueFFS文件系統(tǒng)并對文件系統(tǒng)進(jìn)行了測試,成功基于文件系統(tǒng)加載了VxWorks映像,將系統(tǒng)的啟動時間縮短到了20s,提高了產(chǎn)品的用戶體驗(yàn)。
                               
               
本文地址:http://m.qingdxww.cn/thread-155201-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 實(shí)時控制解決方案的正確選擇——數(shù)字信號控制器(DSC)或通用MCU
  • dsPIC® DSC集成電機(jī)驅(qū)動器:非常適合在緊湊空間內(nèi)進(jìn)行實(shí)時控制
  • dsPIC® DSC:攻克各種觸摸傳感挑戰(zhàn)的電容式觸摸解決方案
  • PIC32CM LS00 Curiosity Pro評估工具包
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲第一综合色| 天天看天天爽| 日韩精品你懂的在线播放| 欧美精品一区二区三区久久| 青青在线国产| 天天狠天天透天干天天怕处| 瑟瑟色| 亚洲狠狠综合久久| 色就色欧美综合偷拍区a| 婷婷在线综合| 天天舔天天操| 一本到亚洲网| 亚洲欧美久久精品一区| 亚洲黄色在线网站| 亚洲欧美日韩动漫| 亚洲一区二区三区国产精品| 日本免费网| 亚洲激情视频网站| 亚洲综合精品| 亚洲国产精品一区二区三区| 一级片免费播放| 日本二本道| 亚洲a视频在线观看| 亚洲欧美不卡| 亚洲欧洲免费视频| 青草资源视频在线高清观看| 亚洲欧美精品日韩欧美| 青青热久| 亚洲a网| 亚洲婷婷天堂在线综合| 亚洲综合综合在线| 四虎国产精品4hu永久| 亚洲精品视频在线观看免费| 四虎www成人影院| 视频毛片| 欧美成人国产| 青青草国产免费久久久91| 亚洲美女一区| 亚洲国产精品人久久| 欧美一级免费片| 视频国产一区|