新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TrueFFS的鐵路牽引自動化系統(tǒng)應(yīng)用

基于TrueFFS的鐵路牽引自動化系統(tǒng)應(yīng)用

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

基于TrueFFS的鐵路牽引自動化系統(tǒng)應(yīng)用
為了在兩片F(xiàn)lash上實(shí)現(xiàn)2個(gè)文件分區(qū),可以采用以下方式:在sysTffs.c中定義新的MTD類型,并根據(jù)實(shí)際需要定義2片F(xiàn)lash(即兩個(gè)分區(qū))的起始地址和長度,并根據(jù)上述定義完成設(shè)備基址和窗口尺寸的設(shè)置;在sysTffsInit()函數(shù)中進(jìn)行2次rfaRegister()操作以完成2個(gè)分區(qū)的注冊;在rfaRegister()中根據(jù)注冊的設(shè)備個(gè)數(shù)設(shè)置本設(shè)備的設(shè)備號。在MTD層接口函數(shù)中一般都有一個(gè)Flash驅(qū)動設(shè)備的參數(shù),可以根據(jù)該參數(shù)來獲取2個(gè)TrueFFS設(shè)備的設(shè)備號,然后分別指向?qū)?yīng)的Flash地址范圍進(jìn)行相應(yīng)的操作。

MTD驅(qū)動設(shè)計(jì)完成后,可以根據(jù)VxWorks提供的方式完成TrueFFS的加載。在應(yīng)用程序中可以通過組件配置界面進(jìn)行加載配置,而在bootrom中則需要手動修改相應(yīng)的配置文件。

由于系統(tǒng)的啟動需要從boottom開始,其編譯的結(jié)果文件必須以二進(jìn)制方式固化到程序Flash的起始位置,因此每片F(xiàn)lash起始的256 KB空間都預(yù)留出來,不參與TrueFFS系統(tǒng)的管理。這樣,F(xiàn)lash上文件的操作與bootrom啟動代碼的保存不存在沖突。

3 bootrom的改進(jìn)

在VxWorks中,修改好的bootrom一般通過硬件調(diào)試工具固化到代碼Flash中,bootrom啟動后通過TFTP方式實(shí)現(xiàn)編譯好的調(diào)試用VxWorks映像文件的下載過程,并完成該映像文件的啟動。這樣就可以實(shí)現(xiàn)基于串口或網(wǎng)絡(luò)的應(yīng)用程序調(diào)試,使用更加方便靈活。

為了滿足系統(tǒng)的要求,bootrom還需要增加如下功能:支持2個(gè)Flash分區(qū)的TrueFFS加載;支持FTP功能;支持從TrueFFS加載及啟動應(yīng)用程序,以及從TFTP網(wǎng)絡(luò)方式加載及啟動調(diào)試態(tài)VxWorks映像文件兩種方式,以保證系統(tǒng)即使在現(xiàn)場運(yùn)行過程中,一旦發(fā)現(xiàn)問題,也能夠方便地進(jìn)行仿真調(diào)試;支持Flash的格式化及True-FFS的初始化功能,一旦文件系統(tǒng)異常后,可以通過該功能進(jìn)行TrueFFS的徹底重構(gòu)。由于boottom的主要工作在bootconfig.c文件中實(shí)現(xiàn),因此上述改進(jìn)工作也主要在該文件中進(jìn)行。

還需要完成以下工作:在對應(yīng)配置文件中加入IN-CLUDE_TFFS和INCLUDE_FTP_SERVER的定義,從而實(shí)現(xiàn)系統(tǒng)對TrueFFS和FTP功能的加載;對bootloader函數(shù)進(jìn)行修改,使其不支持基于TrueFFS的應(yīng)用程序啟動,當(dāng)需要調(diào)試時(shí)通過網(wǎng)絡(luò)方式加載和啟動;增加一個(gè)類似于bootloader的功能函數(shù),可以以此函數(shù)為模版進(jìn)行修改,完成TrueFFS功能的初始化和加載過程,以及基本網(wǎng)絡(luò)功能和FTP功能的加載,同時(shí)在程序Flash文件分區(qū)中存在應(yīng)用程序文件的前提下,實(shí)現(xiàn)該應(yīng)用程序的加載和啟動功能;增加2片F(xiàn)lash的格式化和TrueFFS的初始化功能函數(shù)。

對bootCmdLoop任務(wù)執(zhí)行流程進(jìn)行調(diào)整,改進(jìn)后的流程如圖4所示。
基于TrueFFS的鐵路牽引自動化系統(tǒng)應(yīng)用
在bootCmdLoop進(jìn)入超級終端界面循環(huán)操作過程后,可以通過相關(guān)命令完成基于網(wǎng)絡(luò)方式的調(diào)試態(tài)VxWorks映像文件的加載和啟動,也可以根據(jù)實(shí)際需要增加Flash格式化、自動進(jìn)入超級終端界面標(biāo)志命令設(shè)置、軟件復(fù)位等功能。經(jīng)過上述改進(jìn),可以實(shí)現(xiàn)bootrom上運(yùn)行態(tài)應(yīng)用程序及調(diào)試態(tài)VxWorks映像文件的靈活加載和啟動,不僅避免了現(xiàn)場運(yùn)行系統(tǒng)為進(jìn)行調(diào)試而重新寫入bootrom的問題,而且方便應(yīng)用程序的動態(tài)更新。

4 應(yīng)用程序的動態(tài)更新

為了便于產(chǎn)品的維護(hù)和升級,本系統(tǒng)需要支持基于FTP的應(yīng)用程序動態(tài)更新,而VxWorks提供了各種類型應(yīng)用程序的加載啟動方式。由于應(yīng)用程序最終在動態(tài)RAM中執(zhí)行,因此在TrueFFS和FTP功能具備的前提下,實(shí)現(xiàn)應(yīng)用程序的動態(tài)更新非常方便。

經(jīng)過改造后,bootrom和最終應(yīng)用程序中都實(shí)現(xiàn)了TrueFFS和FTP功能,因此在bootrom和最終應(yīng)用程序執(zhí)行時(shí)都可以完成應(yīng)用程序加載。另外,由于具備了bootrom中更新應(yīng)用程序的功能,即使由于應(yīng)用程序異常導(dǎo)致無法運(yùn)行,復(fù)位后重新進(jìn)入bootrom仍然可以進(jìn)行新程序的更新,從而增強(qiáng)了系統(tǒng)的健壯性。

需要注意的是,通過TrueFFS方式加載啟動的最終應(yīng)用程序也是default類型的,而不是rom類型的。如果下載到文件系統(tǒng)中的應(yīng)用程序是rom類型,則會導(dǎo)致bootrom無法成功加載該文件,因?yàn)槠鋵?shí)現(xiàn)方式與仿真調(diào)試過程基本類似。

結(jié) 語

經(jīng)過測試,采用上述實(shí)現(xiàn)方案后,系統(tǒng)運(yùn)行穩(wěn)定。通過FTP工具,可以靈活地對2片F(xiàn)lash上文件分區(qū)中的文件進(jìn)行讀寫操作,2 MB左右的應(yīng)用程序文件可在30 s內(nèi)下載到Flash中。整個(gè)系統(tǒng)的啟動過程穩(wěn)定可靠,對于2 MB左右的應(yīng)用程序,從裝置上電到bootrom啟動,再到應(yīng)用程序正常開始運(yùn)行,基本可在十幾秒內(nèi)完成。本方案對于基于VxWorks系統(tǒng)的嵌入式產(chǎn)品有一定的借鑒意義。


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉