專利名稱:一種遠(yuǎn)程升級(jí)方法及嵌入式系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體涉及一種遠(yuǎn)程升級(jí)方法及一種嵌入式系統(tǒng)。
背景技術(shù):
現(xiàn)有的嵌入式終端設(shè)備為了便于設(shè)備遠(yuǎn)程維護(hù)管理,都設(shè)有遠(yuǎn)程程序在線升級(jí)功能,可通過(guò)網(wǎng)絡(luò)對(duì)設(shè)備程序進(jìn)行定期或不定期的升級(jí)。現(xiàn)有的嵌入式終端的操作系統(tǒng)和程序是編譯在一起的,在遠(yuǎn)程升級(jí)過(guò)程中,升級(jí)程序通過(guò)網(wǎng)絡(luò)下載到終端設(shè)備,并覆蓋現(xiàn)有程序,升級(jí)完成后遠(yuǎn)程重啟終端,終端重啟后即可運(yùn)行升級(jí)后的程序,完成設(shè)備程序更新。遠(yuǎn)程升級(jí)方式具有很大的風(fēng)險(xiǎn),如果在升級(jí)過(guò)程中終端斷電或者升級(jí)網(wǎng)絡(luò)出現(xiàn)錯(cuò)誤斷開(kāi),會(huì)導(dǎo)致程序升級(jí)中斷而失敗,而原有的程序又在升級(jí)過(guò)程中被未升級(jí)完整的程序覆蓋,而操作系統(tǒng)和程序是編譯在一起的,導(dǎo)致終端無(wú)法運(yùn)行,而程序的遠(yuǎn)程升級(jí)維護(hù)功能作為程序自身的一部分也遭到了破壞,自然也無(wú)法再繼續(xù)使用,最終只能去現(xiàn)場(chǎng)修復(fù),耗時(shí)耗力,升級(jí)成本和維護(hù)成本高。
為了解決上述問(wèn)題,現(xiàn)有嵌入式終端的軟件都是采取雙備份方式,在遠(yuǎn)程升級(jí)時(shí)先將升級(jí)之前的編譯在一起的操作系統(tǒng)和程序進(jìn)行備份,在升級(jí)過(guò)程中即使出錯(cuò)也不會(huì)破壞備份的原有程序,保證了遠(yuǎn)程升級(jí)的安全性,即使在升級(jí)過(guò)程中遇到終端斷電或者升級(jí)網(wǎng)絡(luò)出現(xiàn)錯(cuò)誤導(dǎo)致程序升級(jí)中斷,終端可以啟動(dòng)備份的操作系統(tǒng)加載運(yùn)行備份的程序,且在系統(tǒng)恢復(fù)后可以繼續(xù)進(jìn)行遠(yuǎn)程終端維護(hù)。但由于每次升級(jí)時(shí),都需要將編譯在一起的操作系統(tǒng)和程序進(jìn)行備份,而編譯在一起的操作系統(tǒng)和程序所占用的存儲(chǔ)空間較大,因此現(xiàn)有的嵌入式終端需額外設(shè)置一個(gè)較大的存儲(chǔ)空間用于存儲(chǔ)備份的操作系統(tǒng)和程序,造成了存儲(chǔ)資源浪費(fèi),導(dǎo)致嵌入式終端的制造成本上升,也增加了嵌入式終端的升級(jí)成本。發(fā)明內(nèi)容
本發(fā)明要解決的主要技術(shù)問(wèn)題是,提供一種遠(yuǎn)程升級(jí)方法及一種嵌入式系統(tǒng),避免程序升級(jí)時(shí)將整個(gè)操作系統(tǒng)和原有程序進(jìn)行整體備份,減少嵌入式系統(tǒng)所需的備份存儲(chǔ)空間,進(jìn)而降低嵌入式系統(tǒng)的成產(chǎn)和升級(jí)的成本。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種遠(yuǎn)程升級(jí)方法,包括
系統(tǒng)啟動(dòng),系統(tǒng)啟動(dòng)模塊初始化系統(tǒng)啟動(dòng)所需的最小系統(tǒng),判斷程序是否升級(jí)成功;
如經(jīng)判斷升級(jí)成功,系統(tǒng)啟動(dòng)模塊啟動(dòng)程序加載模塊進(jìn)行程序的加載,完成此次系統(tǒng)的啟動(dòng);
如經(jīng)判斷升級(jí)失敗,系統(tǒng)啟動(dòng)模塊根據(jù)程序升級(jí)之前的網(wǎng)絡(luò)啟動(dòng)參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊實(shí)現(xiàn)程序的遠(yuǎn)程升級(jí)維護(hù),并啟動(dòng)程序加載模塊對(duì)升級(jí)前的程序進(jìn)行加載,完成此次系統(tǒng)的啟動(dòng)。
在本發(fā)明的一種實(shí)施例中,所述程序升級(jí)維護(hù)模塊完成程序的升級(jí)后,在下一次系統(tǒng)啟動(dòng)時(shí)加載升級(jí)后的程序。
在本發(fā)明的一種實(shí)施例中,所述方法還包括將所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊設(shè)置于同一啟動(dòng)模塊BootRom上。
在本發(fā)明的一種實(shí)施例中,所述方法還包括將所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊分別設(shè)置于不同的啟動(dòng)模塊BootRom上。
本發(fā)明還提供了一種嵌入式系統(tǒng),包括
系統(tǒng)啟動(dòng)模塊用于初始化最小系統(tǒng);還用于判斷程序升級(jí)是否成功;如成功,則啟動(dòng)程序加載模塊;否則,啟動(dòng)程序升級(jí)維護(hù)模塊,并啟動(dòng)程序加載模塊;
程序升級(jí)維護(hù)模塊用于實(shí)現(xiàn)程序的遠(yuǎn)程升級(jí)維護(hù);
程序加載模塊用于加載程序。
在本發(fā)明的一種實(shí)施例中,所述系統(tǒng)啟動(dòng)模塊在啟動(dòng)所述啟動(dòng)程序升級(jí)維護(hù)模塊和程序加載模塊之前,還用于收集網(wǎng)路啟動(dòng)參數(shù),所述系統(tǒng)啟動(dòng)模塊根據(jù)收集到的網(wǎng)路啟動(dòng)參數(shù)啟動(dòng)所述程序升級(jí)維護(hù)模塊和程序加載模塊。
在本發(fā)明的一種實(shí)施例中,當(dāng)判斷為升級(jí)成功時(shí),系統(tǒng)啟動(dòng)模塊用于收集升級(jí)成功后新的網(wǎng)絡(luò)參數(shù),當(dāng)判斷升級(jí)失敗時(shí),系統(tǒng)啟動(dòng)模塊用于收集升級(jí)之前的網(wǎng)絡(luò)參數(shù),
在本發(fā)明的一種實(shí)施例中,所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊設(shè)置于同一啟動(dòng)模塊BootRom上。
在本發(fā)明的一種實(shí)施例中,所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊分別設(shè)置于不同的啟動(dòng)模塊BootRom上。
本發(fā)明的有益效果是在本發(fā)明中,系統(tǒng)啟動(dòng)時(shí),嵌入式系統(tǒng)的系統(tǒng)啟動(dòng)模塊完成系統(tǒng)啟動(dòng)所需的最小系統(tǒng)的初始化,判斷程序是否升級(jí)成功;如經(jīng)判斷升級(jí)成功,系統(tǒng)啟動(dòng)模塊啟動(dòng)程序加載模塊進(jìn)行程序的加載,完成此次系統(tǒng)的啟動(dòng);否則,系統(tǒng)啟動(dòng)模塊根據(jù)程序升級(jí)之前的網(wǎng)絡(luò)啟動(dòng)參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊繼續(xù)相關(guān)程序的升級(jí),并根據(jù)程序升級(jí)之前的網(wǎng)絡(luò)啟動(dòng)參數(shù)啟動(dòng)程序加載模塊進(jìn)行程序的加載,完成此次系統(tǒng)的啟動(dòng)。即本發(fā)明通過(guò)將程序的遠(yuǎn)程升級(jí)維護(hù)功能模塊簡(jiǎn)化獨(dú)立出來(lái)由程序升級(jí)維護(hù)模塊單獨(dú)控制實(shí)現(xiàn),并不將其與程序編譯在一起,避免在程序的升級(jí)過(guò)程中將其覆蓋;同時(shí)將操作系統(tǒng)也獨(dú)立出來(lái)由系統(tǒng)啟動(dòng)模塊控制,而并不將其與程序編譯在一起,保證了操作系統(tǒng)的獨(dú)立性,因而保證了系統(tǒng)啟動(dòng)時(shí)所需要的最小系統(tǒng)在程序升級(jí)過(guò)程中不會(huì)因?yàn)樯?jí)失敗而被破壞。因此, 在程序遠(yuǎn)程升級(jí)過(guò)程中,即使由于斷電或網(wǎng)絡(luò)錯(cuò)誤導(dǎo)致升級(jí)失敗,也不會(huì)對(duì)系統(tǒng)啟動(dòng)時(shí)所需要的最小系統(tǒng)和遠(yuǎn)程升級(jí)維護(hù)功能模塊造成破壞,保證了程序遠(yuǎn)程升級(jí)的可靠性和安全性,同時(shí)在升級(jí)過(guò)程中也不需要將整個(gè)操作系統(tǒng)和原有程序進(jìn)行整體備份,減少了嵌入式系統(tǒng)所需的備份存儲(chǔ)空間,進(jìn)而降低了嵌入式系統(tǒng)的成產(chǎn)和升級(jí)的成本。
圖I為本發(fā)明一種實(shí)施例的嵌入式系統(tǒng)的系統(tǒng)框圖2為本發(fā)明一種實(shí)施例的升級(jí)方法流程示意圖3為本發(fā)明另一種實(shí)施例的嵌入式系統(tǒng)平臺(tái)的結(jié)構(gòu)框圖4為本發(fā)明另一種實(shí)施例的嵌入式系統(tǒng)平臺(tái)的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面通過(guò)具體實(shí)施方式
結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例一
請(qǐng)參見(jiàn)圖1,本例中的嵌入式系統(tǒng)包括系統(tǒng)啟動(dòng)模塊、程序升級(jí)維護(hù)模塊、以及程序加載模塊,其中
系統(tǒng)啟動(dòng)模塊用于啟動(dòng)系統(tǒng)時(shí),對(duì)系統(tǒng)所需要的最小系統(tǒng)進(jìn)行初始化;還用于判斷程序升級(jí)是否成功;如經(jīng)判斷程序升級(jí)成功,則啟動(dòng)程序加載模塊加載程序;否則,啟動(dòng)程序升級(jí)維護(hù)模塊,對(duì)程序的遠(yuǎn)程升級(jí)進(jìn)行維護(hù),并啟動(dòng)程序加載模塊,以加載升級(jí)前的程序,完成系統(tǒng)的啟動(dòng);
本例中的啟動(dòng)程序升級(jí)維護(hù)模塊則用于實(shí)現(xiàn)程序的遠(yuǎn)程升級(jí)維護(hù);
本例中的程序加載模塊則用于加載程序。
即本例中程序的遠(yuǎn)程升級(jí)維護(hù)功能模塊簡(jiǎn)化獨(dú)立出來(lái)由程序升級(jí)維護(hù)模塊單獨(dú)控制實(shí)現(xiàn),并不將其與程序編譯在一起,避免在程序的升級(jí)過(guò)程中將其覆蓋;同時(shí)將操作系統(tǒng)也獨(dú)立出來(lái)由系統(tǒng)啟動(dòng)模塊控制,而并不將其與程序編譯在一起,保證了操作系統(tǒng)的獨(dú)立性,因進(jìn)而保證了系統(tǒng)啟動(dòng)時(shí)所需要的最小系統(tǒng)在程序升級(jí)過(guò)程中不會(huì)因?yàn)樯?jí)失敗而被破壞。因此,在程序遠(yuǎn)程升級(jí)過(guò)程中,即使由于斷電或網(wǎng)絡(luò)錯(cuò)誤導(dǎo)致升級(jí)失敗,也不會(huì)對(duì)系統(tǒng)啟動(dòng)時(shí)所需要的最小系統(tǒng)和遠(yuǎn)程升級(jí)維護(hù)功能模塊造成破壞,保證了程序遠(yuǎn)程升級(jí)的可靠性和安全性,同時(shí)在升級(jí)過(guò)程中也不需要將整個(gè)操作系統(tǒng)和原有程序進(jìn)行整體備份, 減少了嵌入式系統(tǒng)所需的備份存儲(chǔ)空間,進(jìn)而降低了嵌入式系統(tǒng)的成產(chǎn)和升級(jí)的成本。
本例中的嵌入式系統(tǒng)可為一般意義上的嵌入式終端,也可為包括一般意義上的嵌入式終端的其他裝置。
本例中判斷程序升級(jí)是否成功的方法可由多種,例如,可通過(guò)設(shè)置升級(jí)標(biāo)志來(lái)標(biāo)識(shí)升級(jí)是否成功,然后讀取該標(biāo)志即可;或者直接判斷程序是否存在,如果存在,則表示該程序升級(jí)成功,直接加載該程序;否則,表明該程序在上一次升級(jí)過(guò)程中未升級(jí)成功而遭到破壞,此時(shí)則加載未升級(jí)之前的程序,并啟動(dòng)啟動(dòng)程序升級(jí)維護(hù)模塊對(duì)該程序的遠(yuǎn)程升級(jí)進(jìn)行維護(hù)。本例中的程序可為嵌入式系統(tǒng)中的主程序。
本例中的系統(tǒng)啟動(dòng)模塊在啟動(dòng)程序升級(jí)維護(hù)模塊和程序加載模塊之前,還用于收集網(wǎng)路啟動(dòng)參數(shù),然后根據(jù)收集到的網(wǎng)路啟動(dòng)參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊和程序加載模塊,具體為當(dāng)判斷程序遠(yuǎn)程升級(jí)成功時(shí),系統(tǒng)啟動(dòng)模塊用于收集升級(jí)成功后新的網(wǎng)絡(luò)參數(shù),根據(jù)收集的新的網(wǎng)絡(luò)參數(shù)啟動(dòng)程序加載模塊加載升級(jí)后的程序,完成該程序的整個(gè)啟動(dòng);當(dāng)判斷程序遠(yuǎn)程升級(jí)失敗時(shí),系統(tǒng)啟動(dòng)模塊用于收集升級(jí)之前的網(wǎng)絡(luò)參數(shù),根據(jù)收集的升級(jí)之前的網(wǎng)絡(luò)參數(shù)啟動(dòng)程序加載模塊加載原有的程序,完成該程序的整個(gè)啟動(dòng)。
值得注意的是,本例中的獨(dú)立于程序之外的系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊可設(shè)置于同一啟動(dòng)模塊BootRom上,也可分別設(shè)置于不同的啟動(dòng)模塊BootRom上。例如,可將系統(tǒng)啟動(dòng)模塊的操作系統(tǒng)和程序升級(jí)維護(hù)模塊的遠(yuǎn)程升級(jí)維護(hù)功能燒寫(xiě)到一個(gè)Flash中, 且此Flash具有寫(xiě)保護(hù),因此燒寫(xiě)在里面的操作系統(tǒng)和遠(yuǎn)程升級(jí)維護(hù)功能在程序的遠(yuǎn)程升級(jí)過(guò)程中不會(huì)被遭到破壞,而在系統(tǒng)啟動(dòng)時(shí),該Flash中的系統(tǒng)啟動(dòng)模正常啟動(dòng)操作即可, 而將遠(yuǎn)程升級(jí)維護(hù)功能合并到與操作系統(tǒng)相同的BootRom中,是對(duì)原有BootRom的改進(jìn)和補(bǔ)充,升級(jí)維護(hù)功能作為一個(gè)獨(dú)立的系統(tǒng)任務(wù)由BootRom啟動(dòng),對(duì)原有的BootRom中的系統(tǒng)啟動(dòng)模塊啟動(dòng)系統(tǒng)的過(guò)程沒(méi)有任何影響。
因此,本例中改造后的B00tR0m(即將操作系統(tǒng)和遠(yuǎn)程升級(jí)維護(hù)功能燒寫(xiě)到一個(gè) Flash中)和原有的BootRom(即操作系統(tǒng)單獨(dú)燒寫(xiě)到一個(gè)Flash中)一樣,依然負(fù)責(zé)對(duì)系統(tǒng)的初始化和主程序的加載,只是在主程序受到破壞或由于上次升級(jí)維護(hù)失敗導(dǎo)致的加載不成功時(shí),自動(dòng)啟動(dòng)遠(yuǎn)程升級(jí)維護(hù)功能,將其作為一個(gè)單獨(dú)任務(wù)運(yùn)行,等待遠(yuǎn)端用戶的升級(jí)維護(hù)。BootRom原有的功能和遠(yuǎn)程升級(jí)維護(hù)功能并列運(yùn)行,不受任何影響,依然可以通過(guò)本地串口對(duì)嵌入式系統(tǒng)進(jìn)行控制和一些簡(jiǎn)單的系統(tǒng)功能調(diào)試。
當(dāng)然,本例中也可將操作系統(tǒng)和遠(yuǎn)程升級(jí)維護(hù)功能分別燒寫(xiě)到一個(gè)具有寫(xiě)保護(hù)功能的Flash中,避免在程序的遠(yuǎn)程升級(jí)過(guò)程中遭到破壞。在系統(tǒng)啟動(dòng)時(shí),燒寫(xiě)有操作系統(tǒng)的 BootRom依然負(fù)責(zé)對(duì)系統(tǒng)的初始化和主程序的加載,只是在主程序受到破壞或由于上次升級(jí)維護(hù)失敗導(dǎo)致的加載不成功時(shí),自動(dòng)燒寫(xiě)啟動(dòng)遠(yuǎn)程升級(jí)維護(hù)功能的BootRom,將其作為一個(gè)單獨(dú)任務(wù)運(yùn)行,等待遠(yuǎn)端用戶的升級(jí)維護(hù),此時(shí)二則并列運(yùn)行,不受任何影響。
下面結(jié)合上述系統(tǒng)對(duì)本發(fā)明中的遠(yuǎn)程升級(jí)方法做進(jìn)一步說(shuō)明,請(qǐng)參見(jiàn)圖2,本例中的遠(yuǎn)程升級(jí)方法包括以下步驟
系統(tǒng)啟動(dòng),系統(tǒng)啟動(dòng)模塊初始化系統(tǒng)啟動(dòng)所需的最小系統(tǒng)后,判斷程序是否升級(jí)成功;
如經(jīng)判斷升級(jí)成功,系統(tǒng)啟動(dòng)模塊啟動(dòng)程序加載模塊對(duì)升級(jí)后的程序進(jìn)行加載, 完成此次系統(tǒng)的啟動(dòng);
如經(jīng)判斷升級(jí)失敗,系統(tǒng)啟動(dòng)模塊根據(jù)程序升級(jí)之前的網(wǎng)絡(luò)啟動(dòng)參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊實(shí)現(xiàn)程序的遠(yuǎn)程升級(jí)維護(hù),并啟動(dòng)程序加載模塊對(duì)升級(jí)前的程序進(jìn)行加載,完成此次系統(tǒng)的啟動(dòng)。
本例中本例中系統(tǒng)啟動(dòng)模塊根據(jù)程序升級(jí)之前的網(wǎng)絡(luò)啟動(dòng)參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊和啟動(dòng)程序加載模塊并無(wú)嚴(yán)格的時(shí)間順序。程序升級(jí)維護(hù)模塊提醒遠(yuǎn)程終端用戶實(shí)現(xiàn)程序的升級(jí)后,在下一次系統(tǒng)啟動(dòng)時(shí)加載升級(jí)后的程序。
實(shí)施例二
為了更好的理解本發(fā)明,下面對(duì)結(jié)合一個(gè)具體的嵌入式系統(tǒng)平臺(tái)和一個(gè)完整的系統(tǒng)啟動(dòng)、記載流程對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
請(qǐng)參見(jiàn)圖3,圖3中的系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊可設(shè)置于同一啟動(dòng)模塊BootRom上,稱之為具有網(wǎng)絡(luò)在線升級(jí)維護(hù)功能的獨(dú)立BootRom啟動(dòng)模塊(下面簡(jiǎn)稱 BootRom),主程序則存儲(chǔ)在另一單獨(dú)的Flash中。系統(tǒng)上電啟動(dòng)復(fù)位,BootRom初始化最小系統(tǒng)后,判斷程序是否升級(jí)成功,具體可通過(guò)判斷主程序是否存在來(lái)判斷是否升級(jí)成功,如升級(jí)成功,則啟動(dòng)程序加載模塊將程序加載到RAM內(nèi)存中進(jìn)行運(yùn)行,否則,啟動(dòng)程序升級(jí)維護(hù)模塊實(shí)現(xiàn)對(duì)主程序的遠(yuǎn)程升級(jí)維護(hù),并啟動(dòng)程序加載模塊加載升級(jí)之前的原有程序到內(nèi)存中運(yùn)行,具體如下,請(qǐng)參見(jiàn)圖4
401 :系統(tǒng)上電,開(kāi)始啟動(dòng);
402 =CPU執(zhí)行指令跳轉(zhuǎn)到啟動(dòng)BootRom ;
403 =BootRom啟動(dòng)模塊進(jìn)行CPU啟動(dòng)所需要的最小系統(tǒng)的初始化;
404 =BootRom判斷主程序升級(jí)是否成功,具體為通過(guò)判斷主程序存在標(biāo)志是否存在,如是,轉(zhuǎn)至步驟405,否者,轉(zhuǎn)至步驟412 ;
405 =BootRom收集主程序升級(jí)后的網(wǎng)絡(luò)啟動(dòng)參數(shù),并根據(jù)收集的參數(shù)啟動(dòng)程序加載模塊,將主程序加載到內(nèi)存中,然后跳轉(zhuǎn)至主程序入口 ;
406 :主程序啟動(dòng),讀取升級(jí)后的網(wǎng)絡(luò)啟動(dòng)參數(shù),按讀取的網(wǎng)絡(luò)啟動(dòng)參數(shù)初始化自己,保證與BootRom的網(wǎng)絡(luò)配置一致;
407 :主程序啟動(dòng)自身的在線升級(jí)模塊;
408 :主程序判斷自身所需的子模塊是否存在,如存在,則轉(zhuǎn)至步驟410,否則,轉(zhuǎn)至步驟409 ;
409 :提示用戶對(duì)所需的模塊進(jìn)行在線升級(jí),然后轉(zhuǎn)至步驟408 ;
410 :主程序繼續(xù)加載啟動(dòng)所需的各個(gè)子模塊;
411 :系統(tǒng)啟動(dòng)完畢,開(kāi)始運(yùn)行,并在運(yùn)行過(guò)程中檢測(cè)是否有程序需要更新。
412 =BootRom收集主程序升級(jí)前的網(wǎng)絡(luò)啟動(dòng)參數(shù),根據(jù)收集的參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊實(shí)現(xiàn)對(duì)主程序的遠(yuǎn)程升級(jí)維護(hù),提示、等待遠(yuǎn)程用戶終端升級(jí)該主程序;
413 :遠(yuǎn)程終端升級(jí)該主程序。
414 =BootRom根據(jù)步驟412收集的參數(shù)啟動(dòng)程序加載模塊,將升級(jí)之前的原有主程序加載到內(nèi)存中,完成此處系統(tǒng)的啟動(dòng)。
以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種遠(yuǎn)程升級(jí)方法,其特征在于包括系統(tǒng)啟動(dòng),系統(tǒng)啟動(dòng)模塊初始化系統(tǒng)啟動(dòng)所需的最小系統(tǒng),判斷程序是否升級(jí)成功;如經(jīng)判斷升級(jí)成功,系統(tǒng)啟動(dòng)模塊啟動(dòng)程序加載模塊進(jìn)行程序的加載,完成此次系統(tǒng)的啟動(dòng);如經(jīng)判斷升級(jí)失敗,系統(tǒng)啟動(dòng)模塊根據(jù)程序升級(jí)之前的網(wǎng)絡(luò)啟動(dòng)參數(shù)啟動(dòng)程序升級(jí)維護(hù)模塊實(shí)現(xiàn)程序的遠(yuǎn)程升級(jí)維護(hù),并啟動(dòng)程序加載模塊對(duì)升級(jí)前的程序進(jìn)行加載,完成此次系統(tǒng)的啟動(dòng)。
2.如權(quán)利要求I所述的方法,其特征在于,所述程序升級(jí)維護(hù)模塊完成程序的升級(jí)后, 在下一次系統(tǒng)啟動(dòng)時(shí)加載升級(jí)后的程序。
3.如權(quán)利要求I或2所述的方法,其特征在于,所述方法還包括將所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊設(shè)置于同一啟動(dòng)模塊BootRom上。
4.如權(quán)利要求I或2所述的方法,其特征在于,所述方法還包括將所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊分別設(shè)置于不同的啟動(dòng)模塊BootRom上。
5.一種嵌入式系統(tǒng),其特征在于包括系統(tǒng)啟動(dòng)模塊用于初始化最小系統(tǒng);還用于判斷程序升級(jí)是否成功;如成功,則啟動(dòng)程序加載模塊;否則,啟動(dòng)程序升級(jí)維護(hù)模塊,并啟動(dòng)程序加載模塊;程序升級(jí)維護(hù)模塊用于實(shí)現(xiàn)程序的遠(yuǎn)程升級(jí)維護(hù);程序加載模塊用于加載程序。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述系統(tǒng)啟動(dòng)模塊在啟動(dòng)所述啟動(dòng)程序升級(jí)維護(hù)模塊和程序加載模塊之前,還用于收集網(wǎng)路啟動(dòng)參數(shù),所述系統(tǒng)啟動(dòng)模塊根據(jù)收集到的網(wǎng)路啟動(dòng)參數(shù)啟動(dòng)所述程序升級(jí)維護(hù)模塊和程序加載模塊。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,當(dāng)判斷為升級(jí)成功時(shí),系統(tǒng)啟動(dòng)模塊用于收集升級(jí)成功后新的網(wǎng)絡(luò)參數(shù),當(dāng)判斷升級(jí)失敗時(shí),系統(tǒng)啟動(dòng)模塊用于收集升級(jí)之前的網(wǎng)絡(luò)參數(shù)。
8.如權(quán)利要求5-7任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊設(shè)置于同一啟動(dòng)模塊BootRom上。
9.如權(quán)利要求5-7任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)啟動(dòng)模塊和程序升級(jí)維護(hù)模塊分別設(shè)置于不同的啟動(dòng)模塊BootRom上。
全文摘要
本發(fā)明公開(kāi)了一種遠(yuǎn)程升級(jí)方法及嵌入式系統(tǒng),通過(guò)將程序的遠(yuǎn)程升級(jí)維護(hù)功能模塊簡(jiǎn)化獨(dú)立出來(lái)由程序升級(jí)維護(hù)模塊單獨(dú)控制實(shí)現(xiàn),而不將其與程序編譯在一起,避免在程序的升級(jí)過(guò)程中將其覆蓋;同時(shí)將操作系統(tǒng)也獨(dú)立出來(lái)由系統(tǒng)啟動(dòng)模塊控制,而并不將其與程序編譯在一起,保證了操作系統(tǒng)的獨(dú)立性。因此,在程序遠(yuǎn)程升級(jí)過(guò)程中,即使由于斷電或網(wǎng)絡(luò)錯(cuò)誤導(dǎo)致升級(jí)失敗,也不會(huì)對(duì)系統(tǒng)啟動(dòng)時(shí)所需要的最小系統(tǒng)和遠(yuǎn)程升級(jí)維護(hù)功能模塊造成破壞,保證了程序遠(yuǎn)程升級(jí)的可靠性和安全性,同時(shí)在升級(jí)過(guò)程中也不需要將整個(gè)操作系統(tǒng)和原有程序進(jìn)行整體備份,減少了嵌入式系統(tǒng)所需的備份存儲(chǔ)空間,進(jìn)而降低了嵌入式系統(tǒng)的成產(chǎn)和升級(jí)的成本。
文檔編號(hào)G06F9/445GK102541585SQ20111035767
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年11月11日 優(yōu)先權(quán)日2011年11月11日
發(fā)明者魯銳 申請(qǐng)人:深圳市迪威新軟件技術(shù)有限公司