多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,更具體地說,本發(fā)明涉及一種多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法。
【背景技術(shù)】
[0002]在超級(jí)計(jì)算機(jī)、服務(wù)器等大型系統(tǒng)的多處理器主板上,通常具有各路不同電源,需要電源管理芯片對(duì)其進(jìn)行啟停、調(diào)節(jié)、檢測(cè)等管理操作,并且通過I2C等總線與維護(hù)系統(tǒng)進(jìn)行通訊。對(duì)于這些大型系統(tǒng)來說,管理程序的遠(yuǎn)程更新是其一個(gè)必要功能,以避免產(chǎn)生停機(jī)更換主板燒寫固件帶來的時(shí)間、人力成本問題。
[0003]考慮到這些大型系統(tǒng)的運(yùn)行特點(diǎn),具體到電源管理程序的遠(yuǎn)程更新,則要求在更新過程中各路電源仍穩(wěn)定工作,不影響系統(tǒng)運(yùn)行,即實(shí)現(xiàn)“靜默升級(jí)”。而在現(xiàn)有技術(shù)中,對(duì)于多處理器主板電源管理程序,還沒有一種有效的升級(jí)方法,能夠在更新過程中保持各路電源仍穩(wěn)定工作從而不影響系統(tǒng)運(yùn)行。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)中存在上述缺陷,提供一種能夠在更新過程中保持各路電源仍穩(wěn)定工作從而不影響系統(tǒng)運(yùn)行的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法。
[0005]為了實(shí)現(xiàn)上述技術(shù)目的,根據(jù)本發(fā)明,提供了一種多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,包括:
[0006]第一步驟:采用具有閃存程序存儲(chǔ)器的電源管理芯片作為多處理器主板電源的電源管理芯片;
[0007]第二步驟:在電源管理芯片的閃存程序存儲(chǔ)器中寫入用戶程序和Bootloader程序;
[0008]第三步驟:在電源管理芯片收到升級(jí)命令后,保存當(dāng)前狀態(tài);
[0009]第四步驟:在保存當(dāng)前狀態(tài)之后,啟動(dòng)Bootloader程序以通過Bootloader程序來擦除閃存程序存儲(chǔ)器中的升級(jí)命令指示的當(dāng)前的用戶程序并燒寫升級(jí)命令指示的新的用戶程序;
[0010]第五步驟:在燒寫新的用戶程序完成之后跳出Bootloader程序,并且恢復(fù)第三步驟中保存的當(dāng)前狀態(tài)。
[0011]優(yōu)選地,BootLoader程序與用戶程序分別占用閃存程序存儲(chǔ)器的不同閃存空間。
[0012]優(yōu)選地,BootLoader程序與用戶程序以合并的方式寫入閃存程序存儲(chǔ)器中。
[0013]優(yōu)選地,閃存程序存儲(chǔ)器包括BootLoader程序代碼存儲(chǔ)映射堆棧、組合代碼存儲(chǔ)映射堆棧、以及用戶程序代碼存儲(chǔ)映射堆棧。
[0014]優(yōu)選地,通過BootLoader程序與用戶程序以合并的方式寫入閃存程序存儲(chǔ)器中,使得BootLoader程序代碼存儲(chǔ)映射堆棧在頂部存儲(chǔ)了BootLoader程序重啟代碼和BootLoader程序主代碼;使得組合代碼存儲(chǔ)映射堆桟從頂部往下依次存儲(chǔ)了 BootLoader程序重啟代碼、BootLoader程序主代碼、用戶程序中斷代碼和用戶程序主代碼;使得用戶程序代碼存儲(chǔ)映射堆棧從底部往上依次存儲(chǔ)了用戶程序主代碼和用戶程序中斷代碼。
【附圖說明】
[0015]結(jié)合附圖,并通過參考下面的詳細(xì)描述,將會(huì)更容易地對(duì)本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中:
[0016]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法的流程圖。
[0017]圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的BootLoader程序與用戶程序所占的閃存空間示意圖。
[0018]需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標(biāo)有相同或者類似的標(biāo)號(hào)。
【具體實(shí)施方式】
[0019]為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明的內(nèi)容進(jìn)行詳細(xì)描述。
[0020]舉例來說,采用Microchip公司生產(chǎn)的8位單片機(jī)PIC18F44K22作為電源管理芯片,該單片機(jī)芯片內(nèi)有16KX 14位閃存(FLASH)程序存儲(chǔ)器,768字節(jié)的隨機(jī)存取存儲(chǔ)器(RAM)和256字節(jié)的電可擦除只讀存儲(chǔ)器(EEPROM),支持在應(yīng)用編程(In-App Ii cat 1nProgrammiung,IAP)。
[0021]為了實(shí)現(xiàn)單片機(jī)程序的遠(yuǎn)程升級(jí),在單片機(jī)里預(yù)置Bootloader程序(啟動(dòng)加載器,也稱引導(dǎo)程序)ο具體地,BootLoader程序是一段引導(dǎo)程序,其功能是在收到升級(jí)命令后,接收來自維護(hù)系統(tǒng)的新用戶程序,擦除閃存中舊的程序,燒寫新用戶程序。BootLoader程序的預(yù)置方法是與用戶程序合并,一同燒至單片機(jī)的閃存中,而且BootLoader程序與用戶程序分別占用不同的閃存空間。
[0022]為了實(shí)現(xiàn)單片機(jī)程序的靜默升級(jí),應(yīng)該保證單片機(jī)各個(gè)引腳的輸出在升級(jí)過程中保持不變,從而保證供電電路的正常工作。
[0023]進(jìn)行升級(jí)操作時(shí),首先要保存當(dāng)前狀態(tài),隨后進(jìn)入Bootloader程序中燒寫新的用戶程序,更新完成跳出Bootloader后再恢復(fù)保存的狀態(tài)。其中,為了實(shí)現(xiàn)靜默升級(jí),很重要的一個(gè)手段是在進(jìn)入BootLoader后正確判斷當(dāng)前狀態(tài)從而保存當(dāng)前狀態(tài),由此確保端口不被初始化改變,而是可以在后續(xù)恢復(fù)保存的當(dāng)前狀態(tài)。
[0024]具體地,圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法的流程圖。
[0025]如圖1所示,根據(jù)本發(fā)明優(yōu)選實(shí)施例的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法包括:
[0026]第一步驟S1:采用具有閃存程序存儲(chǔ)器的電源管理芯片作為多處理器主板電源的電源管理芯片;
[0027]第二步驟S2:在電源管理芯片的閃存程序存儲(chǔ)器中寫入用戶程序和Bootloader程序;其中,BootLoader程序與用戶程序分別占用閃存程序存儲(chǔ)器的不同閃存空間;
[0028]第三步驟S3:在電源管理芯片收到升級(jí)命令后,保存當(dāng)前狀態(tài);
[0029]第四步驟S4:在保存當(dāng)前狀態(tài)之后,啟動(dòng)Bootloader程序以通過Bootloader程序來擦除閃存程序存儲(chǔ)器中的升級(jí)命令指示的當(dāng)前的用戶程序并燒寫(寫入)升級(jí)命令指示的新的用戶程序;
[0030]第五步驟S5:在燒寫新的用戶程序完成之后跳出Bootloader程序,并且恢復(fù)第三步驟S3中保存的當(dāng)前狀態(tài)。
[0031]由此,本發(fā)明提供了一種能夠在更新過程中保持各路電源仍穩(wěn)定工作從而不影響系統(tǒng)運(yùn)行的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法。
[0032]此外,對(duì)于優(yōu)選實(shí)施方式,圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的BootLoader程序與用戶程序所占的閃存空間示意圖。如圖2所示,優(yōu)選地,BootLoader程序與用戶程序以合并的方式寫入閃存程序存儲(chǔ)器中。
[0033]例如,如圖2所示,閃存程序存儲(chǔ)器包括BootLoader程序代碼存儲(chǔ)映射堆棧、組合代碼存儲(chǔ)映射堆棧、以及用戶程序代碼存儲(chǔ)映射堆棧(例如地址都是從0x000至0x3FFF)。
[0034]其中,通過BootLoader程序與用戶程序以合并的方式寫入閃存程序存儲(chǔ)器中,使得BootLoader程序代碼存儲(chǔ)映射堆棧在頂部存儲(chǔ)了 BootLoader程序重啟代碼和BootLoader程序主代碼;使得組合代碼存儲(chǔ)映射堆桟從頂部往下依次存儲(chǔ)了 BootLoader程序重啟代碼、BootLoader程序主代碼、用戶程序中斷代碼和用戶程序主代碼;使得用戶程序代碼存儲(chǔ)映射堆棧從底部往上依次存儲(chǔ)了用戶程序主代碼和用戶程序中斷代碼。
[0035]由此可以形成如圖2中的箭頭線所示的程序調(diào)用關(guān)系,使得這種合并寫入的方式有利于以Boo 11 oader程序利用在應(yīng)用編程執(zhí)行用戶程序的升級(jí)。
[0036]此外,需要說明的是,除非特別說明或者指出,否則說明書中的術(shù)語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個(gè)組件、元素、步驟等,而不是用于表示各個(gè)組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等。
[0037]可以理解的是,雖然本發(fā)明已以較佳實(shí)施例披露如上,然而上述實(shí)施例并非用以限定本發(fā)明。對(duì)于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案作出許多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,其特征在于包括: 第一步驟:采用具有閃存程序存儲(chǔ)器的電源管理芯片作為多處理器主板電源的電源管理芯片; 第二步驟:在電源管理芯片的閃存程序存儲(chǔ)器中寫入用戶程序和Bootloader程序; 第三步驟:在電源管理芯片收到升級(jí)命令后,保存當(dāng)前狀態(tài); 第四步驟:在保存當(dāng)前狀態(tài)之后,啟動(dòng)Bootloader程序以通過Bootloader程序來擦除閃存程序存儲(chǔ)器中的升級(jí)命令指示的當(dāng)前的用戶程序并燒寫升級(jí)命令指示的新的用戶程序; 第五步驟:在燒寫新的用戶程序完成之后跳出Bootloader程序,并且恢復(fù)第三步驟中保存的當(dāng)前狀態(tài)。2.根據(jù)權(quán)利要求1所述的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,其特征在于,BootLoader程序與用戶程序分別占用閃存程序存儲(chǔ)器的不同閃存空間。3.根據(jù)權(quán)利要求1或2所述的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,其特征在于,BootLoader程序與用戶程序以合并的方式寫入閃存程序存儲(chǔ)器中。4.根據(jù)權(quán)利要求1或2所述的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,其特征在于,閃存程序存儲(chǔ)器包括BootLoader程序代碼存儲(chǔ)映射堆棧、組合代碼存儲(chǔ)映射堆棧、以及用戶程序代碼存儲(chǔ)映射堆棧。5.根據(jù)權(quán)利要求1或2所述的多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,其特征在于,通過BootLoader程序與用戶程序以合并的方式寫入閃存程序存儲(chǔ)器中,使得BootLoader程序代碼存儲(chǔ)映射堆棧在頂部存儲(chǔ)了BootLoader程序重啟代碼和BootLoader程序主代碼;使得組合代碼存儲(chǔ)映射堆桟從頂部往下依次存儲(chǔ)了BootLoader程序重啟代碼、BootLoader程序主代碼、用戶程序中斷代碼和用戶程序主代碼;使得用戶程序代碼存儲(chǔ)映射堆棧從底部往上依次存儲(chǔ)了用戶程序主代碼和用戶程序中斷代碼。
【專利摘要】本發(fā)明提供了一種多處理器主板電源管理程序遠(yuǎn)程升級(jí)方法,包括:采用具有閃存程序存儲(chǔ)器的電源管理芯片作為多處理器主板電源的電源管理芯片;在電源管理芯片的閃存程序存儲(chǔ)器中寫入用戶程序和Bootloader程序;在電源管理芯片收到升級(jí)命令后,保存當(dāng)前狀態(tài);在保存當(dāng)前狀態(tài)之后,啟動(dòng)Bootloader程序以通過Bootloader程序來擦除閃存程序存儲(chǔ)器中的升級(jí)命令指示的當(dāng)前的用戶程序并燒寫升級(jí)命令指示的新的用戶程序;在燒寫新的用戶程序完成之后跳出Bootloader程序,并且恢復(fù)第三步驟中保存的當(dāng)前狀態(tài)。
【IPC分類】G06F9/445
【公開號(hào)】CN105573802
【申請(qǐng)?zhí)枴緾N201510977263
【發(fā)明人】何寧, 曹清, 秦駿, 袁博, 吳福永, 楊培和, 關(guān)通, 劉國(guó)慶
【申請(qǐng)人】無錫江南計(jì)算技術(shù)研究所
【公開日】2016年5月11日
【申請(qǐng)日】2015年12月23日