本申請涉及軟件升級,尤其涉及一種軟件在線升級方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、大多數(shù)系統(tǒng)設(shè)備中都需要支持軟件版本的及時(shí)更新和升級,軟件升級對于添加附加功能是必不可少的,能夠提高性能并修復(fù)軟件錯(cuò)誤/漏洞。傳統(tǒng)的升級方式往往在升級之后需要重啟或停機(jī)才能使新的應(yīng)用程序運(yùn)行起來。
2、但是,在服務(wù)器電源(psu)、計(jì)量等很多類似場景中,系統(tǒng)需要連續(xù)運(yùn)行以減少停機(jī)時(shí)間的需求。像服務(wù)器電源這樣的終端設(shè)備是高可用性系統(tǒng),需要具有最低的停機(jī)時(shí)間,現(xiàn)有技術(shù)中缺少相應(yīng)的不重啟或停機(jī)的在線升級的方法。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本申請實(shí)施例提供了一種軟件在線升級方法、裝置、電子設(shè)備及存儲介質(zhì),能夠在線對軟件進(jìn)行升級,消除升級過程中停機(jī)或重啟造成的中斷。
2、本申請實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
3、第一方面,本申請實(shí)施例提供一種軟件在線升級方法,包括以下步驟:
4、響應(yīng)于針對第一目標(biāo)軟件的升級命令,對位于第二分區(qū)中的第二目標(biāo)軟件進(jìn)行升級,其中,所述第一目標(biāo)軟件運(yùn)行于第一分區(qū),所述第一目標(biāo)軟件與所述第二目標(biāo)軟件的類型相同;
5、當(dāng)所述第二目標(biāo)軟件升級完成后,將當(dāng)前應(yīng)用程序由所述第一目標(biāo)軟件切換至所述第二目標(biāo)軟件。
6、在一種可能的實(shí)施方式中,所述軟件為dsp軟件,所述響應(yīng)于針對第一目標(biāo)軟件的升級命令,對位于第二分區(qū)中的第二目標(biāo)軟件進(jìn)行升級之前,所述方法還包括:
7、在緩存中建立第一flash分區(qū)和第二flash分區(qū);
8、在所述第一flash分區(qū)中內(nèi)置第一引導(dǎo)程序和所述第一目標(biāo)軟件,以及在所述第二flash分區(qū)中內(nèi)置第二引導(dǎo)程序和所述第二目標(biāo)軟件。
9、在一種可能的實(shí)施方式中,所述對位于第二分區(qū)中的第二目標(biāo)軟件進(jìn)行升級,包括:
10、識別所述升級命令,將控制權(quán)由所述第一引導(dǎo)程序切換至所述第二引導(dǎo)程序,并下載更新程序;
11、基于所述第二引導(dǎo)程序?qū)λ龈鲁绦蜻M(jìn)行編程處理,得到升級后的升級軟件。
12、在一種可能的實(shí)施方式中,所述第一分區(qū)和所述第二分區(qū)為單活工作模式。
13、在一種可能的實(shí)施方式中,所述將當(dāng)前應(yīng)用程序由所述第一目標(biāo)軟件切換至所述第二目標(biāo)軟件,包括:
14、將所述第二目標(biāo)軟件進(jìn)行編譯處理,得到第二可執(zhí)行應(yīng)用程序,其中,所述當(dāng)前應(yīng)用程序?yàn)樗龅谝荒繕?biāo)軟件經(jīng)編譯后得到的第一可執(zhí)行應(yīng)用程序;
15、將所述第一可執(zhí)行應(yīng)用程序的第一執(zhí)行地址重映射至所述第二可執(zhí)行應(yīng)用程序的第二執(zhí)行地址。
16、在一種可能的實(shí)施方式中,所述將所述第一可執(zhí)行應(yīng)用程序的第一執(zhí)行地址重映射至所述第二可執(zhí)行應(yīng)用程序的第二執(zhí)行地址,包括:
17、獲取所述第一可執(zhí)行應(yīng)用程序?qū)?yīng)的第一pie矢量和第一ram內(nèi)存塊以及所述第二可執(zhí)行應(yīng)用程序?qū)?yīng)的第二pie矢量和第二ram內(nèi)存塊;
18、基于dsp編譯器交換所述第一pie矢量和所述第二pie矢量的地址以及所述第一ram內(nèi)存塊和所述第二ram內(nèi)存塊的地址。
19、第二方面,本申請實(shí)施例還提供一種軟件在線升級方法,包括以下步驟:
20、對當(dāng)前應(yīng)用程序的版本進(jìn)行檢測處理,當(dāng)所述版本有更新時(shí),通過如本申請第一方面任一所述的軟件在線升級方法對所述當(dāng)前應(yīng)用程序進(jìn)行更新;
21、在人機(jī)交互界面中顯示更新后的所述當(dāng)前應(yīng)用程序,其中,在更新并顯示更新后的所述當(dāng)前應(yīng)用程序的過程中,系統(tǒng)不停機(jī)或重啟。
22、第三方面,本申請實(shí)施例還提供一種軟件在線升級裝置,所述裝置包括:
23、升級模塊,用于響應(yīng)于針對第一目標(biāo)軟件的升級命令,對位于第二分區(qū)中的第二目標(biāo)軟件進(jìn)行升級,其中,所述第一目標(biāo)軟件運(yùn)行于第一分區(qū),所述第一目標(biāo)軟件與所述第二目標(biāo)軟件的類型相同;
24、轉(zhuǎn)換模塊,用于當(dāng)所述第二目標(biāo)軟件升級完成后,將當(dāng)前應(yīng)用程序由所述第一目標(biāo)軟件切換至所述第二目標(biāo)軟件。
25、第四方面,本申請實(shí)施例還提供一種電子設(shè)備,包括:處理器、存儲介質(zhì)和總線,所述存儲介質(zhì)存儲有所述處理器可執(zhí)行的機(jī)器可讀指令,當(dāng)電子設(shè)備運(yùn)行時(shí),所述處理器與所述存儲介質(zhì)之間通過總線通信,所述處理器執(zhí)行所述機(jī)器可讀指令,以執(zhí)行第一方面任一項(xiàng)所述的軟件在線升級方法,或執(zhí)行第二方面所述的軟件在線升級方法。
26、第五方面,本申請實(shí)施例還提供一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行第一方面任一項(xiàng)所述的軟件在線升級方法,或執(zhí)行第二方面所述的軟件在線升級方法。
27、本申請實(shí)施例具有以下有益效果:
28、通過建立dsp?flash的雙分區(qū)表,在不同空間里同時(shí)內(nèi)置bootloader和用戶程序。允許用戶在程序運(yùn)行的同時(shí)完成用戶軟件的在線升級,升級完成后,用戶可以自由選擇復(fù)位或不復(fù)位系統(tǒng),切換到新的升級程序運(yùn)行。同時(shí)雙分區(qū)可以自定義代碼運(yùn)行空間和升級空間,程序升級完成后自動(dòng)切換代碼到運(yùn)行空間,非常方便軟件版本的更新和維護(hù),能夠在線對軟件進(jìn)行升級,消除升級過程中停機(jī)或重啟造成的中斷。
1.一種軟件在線升級方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述軟件為dsp軟件,所述響應(yīng)于針對第一目標(biāo)軟件的升級命令,對位于第二分區(qū)中的第二目標(biāo)軟件進(jìn)行升級之前,所述方法還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對位于第二分區(qū)中的第二目標(biāo)軟件進(jìn)行升級,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一分區(qū)和所述第二分區(qū)為單活工作模式。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將當(dāng)前應(yīng)用程序由所述第一目標(biāo)軟件切換至所述第二目標(biāo)軟件,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述第一可執(zhí)行應(yīng)用程序的第一執(zhí)行地址重映射至所述第二可執(zhí)行應(yīng)用程序的第二執(zhí)行地址,包括:
7.一種軟件在線升級方法,其特征在于,包括以下步驟:
8.一種軟件在線升級裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,其特征在于,包括:處理器、存儲介質(zhì)和總線,所述存儲介質(zhì)存儲有所述處理器可執(zhí)行的機(jī)器可讀指令,當(dāng)電子設(shè)備運(yùn)行時(shí),所述處理器與所述存儲介質(zhì)之間通過總線通信,所述處理器執(zhí)行所述機(jī)器可讀指令,以執(zhí)行如權(quán)利要求1至6任一項(xiàng)所述的軟件在線升級方法,或執(zhí)行如權(quán)利要求7所述的軟件在線升級方法。
10.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行如權(quán)利要求1至6任一項(xiàng)所述的軟件在線升級方法,或執(zhí)行如權(quán)利要求7所述的軟件在線升級方法。