嵌入式設備應用程式的自恢復方法與流程
2023-07-26 20:18:26 1
本發明屬於具體涉及一種嵌入式設備應用程式的自恢復方法。
背景技術:
隨著經濟技術的發展和人們生活水平的提高,嵌入式設備的應用越來越廣泛,嵌入式設備也在人們的生產和生活之中發揮了無以倫比的巨大作用。
嵌入式設備因為存在嵌入式晶片,因此一般都具有自控控制、智能算法等功能。而嵌入式晶片的控制功能的發揮,則完全依賴於嵌入式晶片的控制程序。目前嵌入式系統的應用程式是放在片外flash上,當對應用程式進行升級時,嵌入式晶片將採用flashboot模式。但是,由於意外的斷電或者其它故障,導致在燒錄flash時突然中斷,因而程序沒有燒錄完成。然而,目前的嵌入式晶片一般都不具備linux系統的u-boot自恢復功能,因此其後果是導致程序無法正常運行,需要返廠後用仿真器完成程序的燒錄。
技術實現要素:
本發明的目的在於提供一種能夠穩定提供備用程序和保證嵌入式晶片程序自動恢復的嵌入式設備應用程式的自恢復方法。
本發明提供的這種嵌入式設備應用程式的自恢復方法,包括如下步驟:
s1.根據控制晶片的指令集,開發控制晶片的二級bootload程序,所述二級bootload程序能夠對flash進行讀寫、boot模式切換和讀取控制晶片i/o引腳電平信號;
s2.根據控制晶片的指令集,開發嵌入式晶片的工廠程序,所述工廠程序能夠對flash進行讀寫、讀取嵌入式設備通信接口數據和對嵌入式晶片的應用程式進行升級;
s3.將步驟s1開發的二級bootload程序和步驟s2開發的工廠程序分別就進行編譯得到編譯文件,並分別燒錄到flash的不同區域;
s4.若控制晶片的應用程式無法正常啟動,則控制晶片自動重啟,此時控制晶片的一級bootload程序自動加載並從flash中完成二級bootload程序的加載;
s5.二級bootload程序控制控制晶片檢測i/o引腳電平信號,並在i/o引腳電平信號發生變化時從flash中加載工廠程序;
s6.工廠程序讀取嵌入式設備通信接口數據,完成應用程式的讀取並燒錄到flash中;
s7.控制晶片再次重啟,此時控制晶片的一級bootload程序自動加載並從flash中完成二級bootload程序的加載,二級bootload程序控制控制晶片檢測i/o引腳電平信號,並在i/o引腳電平信號未發生變化時從flash中加載步驟s6存儲的應用程式,完成嵌入式設備控制晶片程序的自恢復。
所述的控制晶片為固化了一級bootload的嵌入式晶片。
所述的控制晶片為dsp。
所述的flash為nandflash或norflash。
所述的嵌入式設備通信接口為乙太網通信接口或sd卡數據接口。
所述的二級bootload程序在flash中的存儲為二級bootload程序從flash中的第一個blocks開始進行存儲。
本發明提供的這種嵌入式設備應用程式的自恢復方法,通過二級bootload程序和工廠程序的兩級程序加載,使得嵌入式設備的控制晶片能夠在flash存儲的應用程式受損的情況下從設備外部獲取應用程式數據,從而使得嵌入式設備的控制晶片應用程式的自行恢復功能更加可靠和穩定;而且採用二級bootload程序代碼,代碼更為簡單可靠,因此啟動速度更快,響應更加迅速。
附圖說明
圖1為本發明的方法流程圖。
具體實施方式
如圖1所示為本發明的方法流程圖,以下以ti公司的dsp晶片為例,說明本發明的具體方法:
本發明提供的這種嵌入式設備應用程式的自恢復方法,包括如下步驟:
s1.根據控制晶片的指令集,開發控制晶片的二級bootload程序,所述二級bootload程序能夠對flash進行讀寫、boot模式切換和讀取控制晶片i/o引腳電平信號;
具體為開發一套二級bootload程序,該程序功能包括:通過gpio檢測按鍵狀態,來決定二級bootload程序是從flash的30blocks開始加載工廠程序,還是從flash的200blocks開始加載應用程式;讀取flash程序內容時,根據ti的ais格式說明,找到sectionload(0×58535901)標識,將數據導入指定的存儲空間(片內ram或者片外sdram)。同時找到jump(0×58535905)標識,通過彙編代碼完成跳轉到c入口c_int00的操作;
s2.根據控制晶片的指令集,開發嵌入式晶片的工廠程序,所述工廠程序能夠對flash進行讀寫、讀取嵌入式設備通信接口數據和對嵌入式晶片的應用程式進行升級;
具體為開發一套工廠程序,該程序功能包括:通過乙太網或者sd卡實現對應用程式的升級;對升級是否成功也液晶顯示的方式告知;flash的讀寫功能;
s3.將步驟s1開發的二級bootload程序和步驟s2開發的工廠程序分別就進行編譯得到編譯文件,並分別燒錄到控制晶片的flash的不同區域;
具體為將二級bootload程序、工廠程序、應用程式分別編譯,運用ti提供的aisgen.exe工具生成ais格式的bin文件,將二級bootload程序的bin文件通過仿真器從flash的第1blocks開始往後燒寫;將工廠程序的bin文件通過仿真器從flash的第30blocks開始往後燒寫;應用程式的bin文件通過仿真器從flash的第200blocks開始往後燒寫;
s4.若控制晶片的應用程式無法正常啟動,則控制晶片自動重啟,此時控制晶片的一級bootload程序自動加載並從flash中完成二級bootload程序的加載;
s5.二級bootload程序控制控制晶片檢測i/o引腳電平信號,並在i/o引腳電平信號發生變化時(比如按鍵按下,使得i/o引腳電平信號發生變化)從flash中的30blocks開始加載工廠程序,並完成工廠程序的c入口跳轉並運行;
s6.工廠程序讀取嵌入式設備通信接口數據(比如通過外部通過連接乙太網口的網絡傳輸應用程式數據,或者從sd卡通信接口傳輸數據),完成應用程式的讀取,並從flash中的第200blocks開始燒錄;
s7.控制晶片再次重啟,此時控制晶片的一級bootload程序自動加載並從flash中完成二級bootload程序的加載,二級bootload程序控制控制晶片檢測i/o引腳電平信號,並在i/o引腳電平信號未發生變化時從flash中的200blocks開始加載步驟s6存儲的應用程式,完成應用程式的c入口跳轉並運行,完成嵌入式設備控制晶片程序的自恢復。
技術特徵:
技術總結
本發明公開了一種嵌入式設備應用程式的自恢復方法,包括開發控制晶片的二級bootload程序和工廠程序,得到編譯文件,並燒錄到Flash中;若控制晶片的應用程式無法正常啟動,則控制晶片重啟,一級bootload程序自動加載並加載二級bootload程序;檢測I/O引腳電平信號變化,從Flash中加載工廠程序;工廠程序讀取嵌入式設備通信接口數據,完成應用程式的讀取並存儲到Flash中;控制晶片再次重啟,一級bootload程序自動加載並加載二級bootload程序,從Flash中加載存儲的應用程式,完成控制晶片程序的自恢復。本發明使得控制晶片應用程式的自行恢復功能更加可靠、穩定、速度快。
技術研發人員:田豐
受保護的技術使用者:湖南威勝信息技術有限公司
技術研發日:2017.04.14
技術公布日:2017.08.04