一種嵌入式系統(tǒng)在線刷新程序的方法
【技術領域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)的程序更新,特別涉及一種嵌入式系統(tǒng)在線刷新程序的方法。
【背景技術】
[0002]目前的嵌入式系統(tǒng)特別是一些功能比較復雜的嵌入式控制系統(tǒng),在產(chǎn)品開發(fā)完畢推向市場后,由于系統(tǒng)的復雜性,常常會發(fā)現(xiàn)原來的程序有缺陷,或者增加新功能的時候,需要廠家對現(xiàn)有程序進行升級。
[0003]對于已經(jīng)流入市場的嵌入式產(chǎn)品進行召回或更換處理,又或者由廠家派出專業(yè)的工程師用專業(yè)的刷新工具去對已售出的產(chǎn)品進行刷新,這種做法費時、費力、費錢。
[0004]針對上述問題,提供一種新型的方法,方便廠家對已出廠的嵌入式系統(tǒng)進行軟件更新升級是現(xiàn)有技術需要解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術問題是,提供一種嵌入式系統(tǒng)在線刷新程序的方法,便于廠家對已出廠的嵌入式系統(tǒng)進行軟件更新升級。
[0006]為達到上述目的,本發(fā)明的技術方案是,一種嵌入式系統(tǒng)在線刷新程序的方法,其特征在于:所述的方法是將啟動程序、應用程序和有效標志放入嵌入式系統(tǒng)的非易失性內(nèi)存中;在嵌入式系統(tǒng)復位后首先執(zhí)行啟動程序,啟動程序讀取有效標志的值,判斷當前應用程序是否有效,如果有效則進入應用程序并持續(xù)運行,如果判斷無效則進入刷新狀態(tài)與外部設備建立通信,從外部設備下載刷新子程序;將下載的刷新子程序存放到易失性內(nèi)存中,下載完成后再從外部設備下載需刷新的應用程序,循環(huán)調(diào)用刷新子程序,將下載的每塊需刷新的應用程序數(shù)據(jù)刷入指定的非易失性內(nèi)存地址。
[0007]所述的啟動程序、應用程序和有效標志在非易失性內(nèi)存中的存放地址空間是確定且相互獨立的。
[0008]所述的啟動程序包含通信功能和判斷應用程序是否有效的功能。
[0009]所述的應用程序包括嵌入式系統(tǒng)需要實現(xiàn)的各種業(yè)務邏輯功能的程序。
[0010]所述的有效標志由一個或數(shù)個字節(jié)組成,指定某個確定值作為判斷應用程序是否有效的標志。
[0011]所述的應用程序在運行時如果接到在線刷新的指令后清除有效標志并重啟系統(tǒng),重啟后由啟動程序重新判斷當前應用程序的有效標志是否有效,無效則進入刷新狀態(tài)。
[0012]所述的方法在數(shù)據(jù)下載完成后向有效標志位寫入有效值,并復位嵌入式系統(tǒng)。
[0013]一種嵌入式系統(tǒng)在線刷新程序的方法,由于采用上述的方法,本發(fā)明可以通過在線刷新的方式完成嵌入式系統(tǒng)的軟件更新,在軟件程序上進行改進無需增加生產(chǎn)成本并大大降低售后服務成本。
【附圖說明】
[0014]下面結合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明;
[0015]圖1為本發(fā)明一種嵌入式系統(tǒng)在線刷新程序的方法中程序存放劃分示意圖;
[0016]圖2為本發(fā)明一種嵌入式系統(tǒng)在線刷新程序的方法軟件流程圖。
【具體實施方式】
[0017]現(xiàn)有的嵌入式系統(tǒng)一般都會帶有通信功能模塊,如CAN總線通信、LIN總線通信、K線通信等,即使該產(chǎn)品的應用場合不需要通信功能,也可以自帶有備用的通信模塊。本發(fā)明正是利用這些通信模塊,實現(xiàn)一種對嵌入式系統(tǒng)的在線刷新程序的方法。
[0018]通過安徽高等學校省級自然科學研宄項目:KJ20112140以及安徽師范大學創(chuàng)新基金項目:2013cxjj05的研宄完成本發(fā)明,本發(fā)明的具體技術方案如下:
[0019](I)將存放在嵌入式系統(tǒng)的非易失性內(nèi)存的程序分為啟動程序、應用程序、有效標志3個部分。
[0020](2)啟動程序、應用程序、、有效標志這3個部分都存放在嵌入式系統(tǒng)的非易失性內(nèi)存中,且存放的地址空間是確定且互相獨立的。
[0021](3)啟動程序僅實現(xiàn)通信功能和判斷應用程序是否有效的功能。
[0022](3)應用程序?qū)崿F(xiàn)嵌入式系統(tǒng)需要實現(xiàn)的各種業(yè)務邏輯功能。
[0023](4)有效標志由一個或數(shù)個字節(jié)組成,指定某個確定值作為判斷應用程序是否有效的標志。
[0024](5)嵌入式系統(tǒng)復位后,首先執(zhí)行啟動程序,啟動程序讀取有效標志的值,判斷應用程序是否有效。
[0025](6)如果第(5)步判斷為應用程序有效,啟動程序跳轉到應用程序入口,執(zhí)行應用程序,嵌入式系統(tǒng)開始正常運行。
[0026](7)如果第(5)步判斷為應用程序無效,啟動程序停留在自己程序內(nèi),等待與外部設備通信進行應用程序刷新。
[0027](8)當執(zhí)行第(6)步嵌入式系統(tǒng)開始進行正常運行后,如果應用程序接收到在線刷新指令,則應用程序?qū)⒂行酥疚坏挠行е登宄⒂|發(fā)復位信號,使嵌入式系統(tǒng)復位,進入第(5)步。
[0028](9)當執(zhí)行第(7)步進入等待應用程序刷新狀態(tài)后,啟動程序本身沒有刷新功能,需要和外部設備進行通信,并從外部設備下載刷新子程序。
[0029](10)將第(9)步中下載的刷新子程序,存放于易失性內(nèi)存中,刷新子程序下載完畢后,開始從外部設備分塊下載需刷新的應用程序數(shù)據(jù)。
[0030](11)逐塊下載需刷新的應用程序數(shù)據(jù),并循環(huán)調(diào)用刷新子程序,將下載的每塊需刷新的應用程序數(shù)據(jù)刷入指定的非易失性內(nèi)存地址。
[0031](12)當所有需刷新的應用程序數(shù)據(jù)均已刷入相應的非易失性內(nèi)存且校驗無誤后,向有效標志位寫入有效值,并復位嵌入式系統(tǒng)。
[0032]本發(fā)明將存放在嵌入式系統(tǒng)的非易失性內(nèi)存的程序分為啟動程序、應用程序、有效標志3個部分,其中啟動程序在出廠時即刷入嵌入式系統(tǒng)中,這部分程序不能通過在線來刷新,但由于啟動程序僅包括通信和判斷有效標志是否有效,功能非常簡單,且這個功能一旦確定后期就不再需要升級,程序占用空間也很小,因此可以通過充分測試來保證啟動程序這部分內(nèi)容的可靠性。而涉及到嵌入式系統(tǒng)應用場景的業(yè)務邏輯一般比較復雜,產(chǎn)品推出市場后往往會發(fā)現(xiàn)控制邏輯存在缺陷或某些功能需要增加或修改,因此這部分的內(nèi)容放在應用程序中實現(xiàn),可以通過在線刷新。
[0033]本發(fā)明設計利用有效標志來判斷應用程序是否存在且有效。當系統(tǒng)在應用程序中運行的時候,如果需要進行在線刷新,應