<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è) > 嵌入式系統 > 設計應用 > TrueFFS上VxWorks 應用程序的啟動(dòng)及動(dòng)態(tài)更新

TrueFFS上VxWorks 應用程序的啟動(dòng)及動(dòng)態(tài)更新

作者: 時(shí)間:2009-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

2.2 MTD層代碼實(shí)現
由于本系統中選用的2片Flash為Spansion公司的S29AL032D,因此需要編寫(xiě)對應的驅動(dòng)代碼。對于MTD層,一般向上提供MTD識別、Flash連續扇區擦除、Flash連續數據寫(xiě)等主要接口函數,可以不提供單獨的鏡像函數,系統會(huì )使用內部缺省的鏡像函數。需要在2片Flash上實(shí)現,即每片Flash相當于一個(gè)分區,這一點(diǎn)在編寫(xiě)驅動(dòng)程序時(shí)需要重點(diǎn)考慮。在MTD層驅動(dòng)程序中,Flash的單個(gè)字節(或字)寫(xiě)入接口函數為重點(diǎn),不同Flash類(lèi)型以及不同的端口寬度都會(huì )導致該函數的實(shí)現不同。其寫(xiě)操作流程如圖3所示。

為了在兩片Flash上實(shí)現2個(gè)文件分區,可以采用以下方式:在sysTffs.c中定義新的MTD類(lèi)型,并根據實(shí)際需要定義2片Flash(即兩個(gè)分區)的起始地址和長(cháng)度,并根據上述定義完成設備基址和窗口尺寸的設置;在sysTffsInit()函數中進(jìn)行2次rfaRegister()操作以完成2個(gè)分區的注冊;在rfaRegister()中根據注冊的設備個(gè)數設置本TrueFFS設備的設備號。在MTD層接口函數中一般都有一個(gè)Flash驅動(dòng)設備的參數,可以根據該參數來(lái)獲取2個(gè)TrueFFS設備的設備號,然后分別指向對應的Flash地址范圍進(jìn)行相應的操作。
MTD驅動(dòng)設計完成后,可以根據提供的方式完成TrueFFS的加載。在中可以通過(guò)組件配置界面進(jìn)行加載配置,而在bootrom中則需要手動(dòng)修改相應的配置文件。
由于系統的需要從boottom開(kāi)始,其編譯的結果文件必須以二進(jìn)制方式固化到程序Flash的起始位置,因此每片Flash起始的256 KB空間都預留出來(lái),不參與TrueFFS系統的管理。這樣,Flash上文件的操作與bootrom代碼的保存不存在沖突。

3 bootrom的改進(jìn)
中,修改好的bootrom一般通過(guò)硬件調試工具固化到代碼Flash中,bootrom后通過(guò)TFTP方式實(shí)現編譯好的調試用映像文件的下載過(guò)程,并完成該映像文件的啟動(dòng)。這樣就可以實(shí)現基于串口或網(wǎng)絡(luò )的調試,使用更加方便靈活。
為了滿(mǎn)足系統的要求,bootrom還需要增加如下功能:支持2個(gè)Flash分區的TrueFFS加載;支持FTP功能;支持從TrueFFS加載及啟動(dòng),以及從TFTP網(wǎng)絡(luò )方式加載及啟動(dòng)調試態(tài)VxWorks映像文件兩種方式,以保證系統即使在現場(chǎng)運行過(guò)程中,一旦發(fā)現問(wèn)題,也能夠方便地進(jìn)行仿真調試;支持Flash的格式化及True-FFS的初始化功能,一旦文件系統異常后,可以通過(guò)該功能進(jìn)行TrueFFS的徹底重構。由于boottom的主要工作在bootconfig.c文件中實(shí)現,因此上述改進(jìn)工作也主要在該文件中進(jìn)行。
還需要完成以下工作:在對應配置文件中加入IN-CLUDE_TFFS和INCLUDE_FTP_SERVER的定義,從而實(shí)現系統對TrueFFS和FTP功能的加載;對bootloader函數進(jìn)行修改,使其不支持基于TrueFFS的應用程序啟動(dòng),當需要調試時(shí)通過(guò)網(wǎng)絡(luò )方式加載和啟動(dòng);增加一個(gè)類(lèi)似于bootloader的功能函數,可以以此函數為模版進(jìn)行修改,完成TrueFFS功能的初始化和加載過(guò)程,以及基本網(wǎng)絡(luò )功能和FTP功能的加載,同時(shí)在程序Flash文件分區中存在應用程序文件的前提下,實(shí)現該應用程序的加載和啟動(dòng)功能;增加2片Flash的格式化和TrueFFS的初始化功能函數。
對bootCmdLoop任務(wù)執行流程進(jìn)行調整,改進(jìn)后的流程如圖4所示。

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


4 應用程序的
為了便于產(chǎn)品的維護和升級,本系統需要支持基于FTP的應用程序,而VxWorks提供了各種類(lèi)型應用程序的加載啟動(dòng)方式。由于應用程序最終在動(dòng)態(tài)RAM中執行,因此在TrueFFS和FTP功能具備的前提下,實(shí)現應用程序的動(dòng)態(tài)更新非常方便。
經(jīng)過(guò)改造后,bootrom和最終應用程序中都實(shí)現了TrueFFS和FTP功能,因此在bootrom和最終應用程序執行時(shí)都可以完成應用程序加載。另外,由于具備了bootrom中更新應用程序的功能,即使由于應用程序異常導致無(wú)法運行,復位后重新進(jìn)入bootrom仍然可以進(jìn)行新程序的更新,從而增強了系統的健壯性。
需要注意的是,通過(guò)TrueFFS方式加載啟動(dòng)的最終應用程序也是default類(lèi)型的,而不是rom類(lèi)型的。如果下載到文件系統中的應用程序是rom類(lèi)型,則會(huì )導致bootrom無(wú)法成功加載該文件,因為其實(shí)現方式與仿真調試過(guò)程基本類(lèi)似。

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


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

評論


相關(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>