本發(fā)明涉及應(yīng)用處理設(shè)備的內(nèi)部存儲來接收程序并保持程序的方法及裝置,尤其涉及一種具有校驗升級程序準(zhǔn)確性的從處理芯片升級的方法及裝置。
背景技術(shù):
在智能設(shè)備中,除了主系統(tǒng)級(SOC)芯片,還會有分擔(dān)主SOC芯片一部分職能的從處理芯片。從處理芯片通常由于升級的風(fēng)險性較大,以及升級失敗后不能主動恢復(fù)原有驅(qū)動軟件等原因,從處理芯片的升級一般不設(shè)置為可主動升級。為了避免控制混亂和系統(tǒng)風(fēng)險,主SOC芯片和從處理芯片一般都只能控制自己的周邊部件,而不能直接控制別人的周邊部件。由于主SOC芯片無法直接控制從處理芯片控制的從處理芯片軟件載體,從處理芯片無法直接控制主SOC芯片控制的網(wǎng)絡(luò)接口模塊,使得在現(xiàn)有電路結(jié)構(gòu)基礎(chǔ)上,附屬于主SOC的從處理芯片無法直接進(jìn)行OTA軟件升級。從處理芯片在升級的過程中,如出現(xiàn)數(shù)據(jù)傳輸失敗或者數(shù)據(jù)傳輸發(fā)生錯誤,導(dǎo)致升級失敗也是從處理芯片升級中的重點和難點。
以目前的智能電視機為例,當(dāng)前高端電視多數(shù)采用一顆主SOC處理芯片加上一顆專門用于后端畫質(zhì)處理的芯片,這種一加一的模式進(jìn)行設(shè)計。主SOC處理芯片和后端畫質(zhì)處理芯片的軟件是存儲在不同的存儲介質(zhì)里的。后端畫質(zhì)處理芯片,主要用于提升電視后端處理能力,提高液晶電視畫面的動態(tài)范圍、動態(tài)對比度、色域、清晰度和運動流暢性等,對于電視畫質(zhì)起著至關(guān)重要的作用。
電視出廠后將無法對后端畫質(zhì)處理芯片等進(jìn)行大規(guī)模的軟件升級或利用互聯(lián)網(wǎng)由用戶自己完成軟件升級,也就是說:一些畫質(zhì)效果的提升或者漏洞(BUG)的解決將無法通過軟件升級的方式讓已經(jīng)出廠的電視進(jìn)行改善。后端畫質(zhì)處理芯片由于其特殊性,一旦升級失敗,則需要售后維修人員拆電視后蓋進(jìn)行維修,這需要浪費大量的人力成本;而且OTA升級又是大規(guī)模的一種升級方式,一旦升級失敗將會導(dǎo)致大量的電視出現(xiàn)問題,這將導(dǎo)致災(zāi)難性的后果,所以對后 端畫質(zhì)處理芯片的OTA升級一定要有安全措施。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種具有校驗升級軟件包準(zhǔn)確性的從處理芯片升級的方法及裝置。
本發(fā)明提供了一種從處理芯片升級的方法,包括:
通過主系統(tǒng)級芯片獲取升級軟件包;
將所述升級軟件包載入從處理芯片載體第一啟動區(qū);
所述第一啟動區(qū)包含當(dāng)前使用的從處理芯片主程序;
對第一啟動區(qū)升級軟件包進(jìn)行校驗,生成第一校驗碼,判斷第一校驗碼是否正確;若第一校驗碼正確即進(jìn)行升級,若第一校驗碼不正確則不進(jìn)行升級。
本發(fā)明通過主系統(tǒng)級芯片獲取從處理芯片升級軟件包的方式,實現(xiàn)了從處理芯片在沒有網(wǎng)絡(luò)處理模塊的狀況下仍然能夠通過主系統(tǒng)級芯片進(jìn)行在線升級,不需要增加任何硬件,降低了人工安裝的時間成本。通過校驗碼校驗的方式判斷升級軟件包是否正確,如校驗失敗則不進(jìn)行升級,從而降低了因升級軟件包數(shù)據(jù)不正確導(dǎo)致的升級失敗,避免了不當(dāng)升級;經(jīng)過校驗成功的升級軟件包升級可以有效提高從處理芯片軟件升級的成功率。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并于說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)本發(fā)明所涉及的具體實施環(huán)境的系統(tǒng)架構(gòu)與連接示意圖;
圖2、圖3是圖1中兩種升級裝置的功能模塊示意圖;
圖4是第一實施例的電路原理示意圖;
圖5是應(yīng)用在圖4所示電路中的一種利用I2C總線對從處理芯片進(jìn)行升級的方法的流程示意圖;
圖6是第二實施例的電路原理示意圖;
圖7是應(yīng)用在圖6所示電路中的一種利用I2C總線對從處理芯片進(jìn)行升級的方法的流程示意圖;
圖8是圖5和7中從處理芯片啟動程序的軟件流程示意圖。
其中附圖標(biāo)記:11-升級裝置、12-授權(quán)客戶端、13-服務(wù)器、14-互聯(lián)網(wǎng)、22-下載模塊、23-燒寫模塊、24-升級包檢測模塊和25-重啟模塊。
具體實施方式
這里將詳細(xì)地對示例性實施例執(zhí)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
首先,說明本發(fā)明的基礎(chǔ):
1、I2C總線(I2C bus,Inter-IC bus)是一個雙向的兩線連續(xù)總線,提供集成電路之間的通信線路。I2C總線是一種串行擴(kuò)展技術(shù),接口線少,控制方式簡化,器件封裝形式小,通信速率較高等優(yōu)點,廣泛應(yīng)用于各種芯片間通信。本發(fā)明最大程度保持原有的電路結(jié)構(gòu)和體系,硬件上至多在電路板上合理布設(shè)增加的I2C總線,這是本領(lǐng)域技術(shù)人員很容易實現(xiàn)的,不額外增加其他硬件成本。
2、雙啟動技術(shù)是升級后當(dāng)?shù)谝粏訁^(qū)的軟件有數(shù)據(jù)錯誤時,會選擇從未遭到破壞的用于備份的第二啟動區(qū)進(jìn)行啟動。如果第一啟動區(qū)和第二啟動區(qū)采用在一個存儲器或模塊中劃分多個邏輯分區(qū)解決,就可以在不增加任何硬件成本的基礎(chǔ)上,解決OTA升級失敗導(dǎo)致的后端畫質(zhì)處理芯片無法啟動的技術(shù)問題。
3、本發(fā)明方法和裝置只用于具體產(chǎn)品中須要軟件升級的從處理芯片,比如:后端畫質(zhì)處理芯片。但是,并非所有的從處理芯片都須要軟件升級,如果從處理芯片軟件非常穩(wěn)定,變化可能性可以忽略,就沒必要提高電路與軟件復(fù)雜性,增加系統(tǒng)負(fù)擔(dān),降低系統(tǒng)整體可靠性。
4、主系統(tǒng)級芯片(主SOC)是在一塊芯片上實現(xiàn)多種電路,能夠自主地工作,這里的多種電路就是對信號進(jìn)行操作的各種電路。主SOC是一個有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部內(nèi)容。主SOC可以包括CPU、時鐘電路、定時器、中斷控制器、串并行接口、其它外圍設(shè)備、I/O端口以及用于各種IP核之間的粘合邏輯等邏輯核;各種易失、非易失以及Cache等存儲器;以及ADC、DAC、PLL以及一些高速電路中所用的模擬電路。
第二,說明本發(fā)明所涉及的具體實施環(huán)境及升級裝置:
圖1是根據(jù)本發(fā)明所涉及的具體實施環(huán)境的系統(tǒng)架構(gòu)與連接示意圖。
參照圖1,該具體實施環(huán)境包括:互聯(lián)網(wǎng)14以及接入互聯(lián)網(wǎng)14的授權(quán)客戶端12、服務(wù)器13和至少一個升級裝置11。
服務(wù)器13,用于存儲軟件升級包,并提供網(wǎng)絡(luò)下載;
授權(quán)客戶端12,通過互聯(lián)網(wǎng)與服務(wù)器13連接,用于將經(jīng)過測試沒有問題的待升級的軟件包發(fā)布至對應(yīng)的服務(wù)器13中;
至少一個升級裝置11,通過互聯(lián)網(wǎng)與服務(wù)器13連接,用于獲取軟件升級包對須要軟件升級的從處理芯片進(jìn)行升級,即主系統(tǒng)級芯片(以下簡稱“主SOC”)必須帶網(wǎng)絡(luò)接口模塊。
其中:服務(wù)器13可以是嚴(yán)格遵循OTA規(guī)范和要求的OTA服務(wù)器,也可以是其他類似服務(wù)器,比如:蘋果系統(tǒng)的升級服務(wù)器。同樣,軟件升級包可以是OTA軟件升級包,也可以是其他類似軟件升級包。
授權(quán)客戶端12可以是聯(lián)網(wǎng)的計算機,須要有授權(quán)才能發(fā)布新的軟件。一般來說,相同廠家的同一種產(chǎn)品使用同一服務(wù)器13,不同廠家的服務(wù)器13是不同的。
圖2、圖3是圖1中兩種升級裝置的功能模塊示意圖。例如,升級裝置11可以是電視機、機頂盒、平板電腦、手機、路由器等。
參照圖2,在一個示例性實施例中,升級裝置11可以包括以下組件:一個下載模塊22、一個燒寫模塊23、一個升級包檢驗?zāi)K24和一個重啟模塊25;參照圖3,在另一個示例性實施例中,升級裝置11可以包括以下組件:一個下載模塊22、一個燒寫模塊23和一個升級包檢驗?zāi)K24。
下載模塊22,與版本檢測模塊連接,用于從服務(wù)器上下載高于當(dāng)前從處理芯片的軟件版本的升級軟件包;下載模塊22包括主SOC和與其連接的網(wǎng)絡(luò)接口模塊。
燒寫模塊23,與所述下載模塊連接,包括主SOC、從處理芯片、從處理芯片軟件載體和I2C總線,與所述下載模塊連接,用于將下載的從處理芯片的升級軟件包寫入從處理芯片軟件載體中;具體的,用于將下載的從處理芯片的升級軟件包由主SOC通過I2C總線直接寫入從處理芯片軟件載體中或經(jīng)由從處理 芯片中轉(zhuǎn)后、由從處理芯片寫入從處理芯片軟件載體中;
主系統(tǒng)級芯片(主SOC)通過自身網(wǎng)絡(luò)接口模塊從服務(wù)器上下載升級軟件包。網(wǎng)絡(luò)接口模塊用于將升級軟件包從服務(wù)器下載到本地,包括但不限制于無線局域網(wǎng)(WIFI)、第3代移動通訊(3G)、第4代移動通訊(4G)等。
從處理芯片包括但不限制于液晶屏?xí)r序控制(TCON)芯片、電視背光驅(qū)動芯片和后端畫質(zhì)處理芯片。
從處理芯片軟件載體是獨立的固態(tài)存儲器或與其他電路集成在一起的存儲模塊,比如:從處理芯片中的存儲模塊,獨立的固態(tài)存儲器包括:電可擦除程序存儲器(EEPROM)、非易失閃存(NORFlash)等。
升級包檢驗?zāi)K24,與所述燒寫模塊連接,用于對下載的升級軟件包判斷數(shù)據(jù)是否正確;
重啟模塊25,與所述燒寫模塊連接,用于軟件重啟從處理芯片。
還可包括版本檢測模塊,用于檢測網(wǎng)絡(luò)服務(wù)器中從處理芯片的升級軟件包的版本號是否高于當(dāng)前從處理芯片的軟件版本;版本檢測模塊包括主SOC和與其連接的網(wǎng)絡(luò)接口模塊。
在這一個示例性實施例中,升級裝置11中的從處理芯片和須要升級的從處理芯片都只有一個。
在另一個示例性實施例中,升級裝置11中的從處理芯片是多個,但須要升級的從處理芯片只有一個。
在另一個示例性實施例中,升級裝置11中的從處理芯片是多個,須要升級的從處理芯片也不只一個。
該升級裝置11與傳統(tǒng)只升級主SOC軟件的升級裝置主要不同在于:1、升級包檢驗?zāi)K24用于對下載的升級軟件包判斷數(shù)據(jù)是否正確;2、燒寫模塊23包括主SOC、從處理芯片、從處理芯片軟件載體和I2C總線。
第三,下面結(jié)合二個具體的實施例詳細(xì)說明本發(fā)明的具體實現(xiàn):
第一實施例
圖4是第一實施例的電路原理示意圖。它對從處理芯片軟件載體沒有要求,這樣適用范圍廣。
參照圖4,升級裝置11的具體電路可以包括:一個主SOC、一個或多個主 SOC的網(wǎng)絡(luò)接口模塊、一個或多個從處理芯片及其軟件載體。
主SOC和需要軟件升級的從處理芯片都包括I2C接口,它們通過電路板上布設(shè)的I2C總線連接。
從處理芯片軟件載體采用不帶I2C接口的NORFlash,從處理芯片與對應(yīng)NORFlash通過SPI接口連接。每個從處理芯片只有一塊NORFlash。在本實施例中僅有一塊從處理芯片需要升級:后端畫質(zhì)處理芯片。
SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫。SPI,是一種高速的,全雙工,同步的通信總線,處理芯片與NORFlash存儲器多采用這種接口。NORFlash存儲器設(shè)有寫保護(hù),處理芯片讀NORFlash存儲器中數(shù)據(jù)無須驅(qū)動,燒寫數(shù)據(jù)時須要驅(qū)動。
圖5是應(yīng)用在圖4所示電路中的一種利用I2C總線對從處理芯片進(jìn)行升級的方法的流程示意圖。它仍然由從處理芯片將從I2C總線中轉(zhuǎn)的主SOC傳的軟件升級包寫入從處理芯片軟件載體,主要包括主SOC端處理步驟和從處理芯片端處理步驟,在處理上相對復(fù)雜。
如圖5所示,該進(jìn)行升級的方法中從處理芯片是后端畫質(zhì)處理芯片,具體包括以下步驟:
500)開始;
501)將從處理芯片OTA升級包發(fā)布或上傳至OTA服務(wù)器;
502)各在線聯(lián)網(wǎng)電視中主SOC獲取OTA服務(wù)器中從處理芯片的OTA升級包版本,并根據(jù)服務(wù)器上的從處理芯片軟件版本比自身高檢測到須要OTA升級;
503)通過人機界面提示用戶是否升級?用戶選擇升級,進(jìn)入下一步;否則不進(jìn)行OTA升級,進(jìn)入步驟509);
504)主SOC從OTA服務(wù)器下載OTA升級包;
505)主SOC通過I2C向從處理芯片傳輸OTA升級包;
506)從處理芯片接收OTA升級包;
507)從處理芯片將接收完畢的OTA升級包燒寫到NORFlash的正常啟動分區(qū);若燒寫成功,則直接結(jié)束;若燒寫不成功,進(jìn)入步驟508);
508)從處理芯片軟件復(fù)位,調(diào)用圖8所示的采用雙啟動技術(shù)的從處理芯片啟動程序,該程序與第二實施例中的從處理芯片啟動程序相同,其具體實現(xiàn)步驟在后面統(tǒng)一描述;
509)結(jié)束。
其中:步驟501由授權(quán)客戶端12執(zhí)行,步驟502-505由主SOC控制執(zhí)行,步驟506-508由從處理芯片控制執(zhí)行。
在步驟501中,當(dāng)后端畫質(zhì)處理芯片軟件需要進(jìn)行OTA升級時,首先將經(jīng)過測試沒有問題的待升級的軟件包通過授權(quán)客戶端12發(fā)布至公司的OTA升級服務(wù)器。
在步驟502中,用戶家里對應(yīng)型號的電視在連接在網(wǎng)絡(luò)上時,主SOC芯片的OTA升級功能軟件通過網(wǎng)絡(luò)檢測到服務(wù)器端有對本型號電視的后端畫質(zhì)處理芯片進(jìn)行OTA升級的需求;即:在傳統(tǒng)OTA升級功能軟件中增加從處理芯片軟件版本檢測代碼;
在步驟503中,在電視的人機(UI)界面上,彈出相應(yīng)的提示,請用戶確認(rèn)是否同意進(jìn)行后端畫質(zhì)芯片的OTA軟件升級;
在步驟504中,如果用戶選擇同意,那么通過網(wǎng)絡(luò)將服務(wù)器端的OTA升級軟件包下載到電視的存儲介質(zhì)上;
在步驟505中,OTA升級軟件包下載完成之后,通過I2C總線和相應(yīng)的協(xié)議,通知后端畫質(zhì)處理芯片進(jìn)行OTA軟件升級,并通過I2C總線將OTA升級數(shù)據(jù)包傳輸至后端畫質(zhì)處理芯片;
在步驟506中,后端畫質(zhì)處理芯片接受到主SOC芯片的OTA升級命令后,在內(nèi)存中開辟一塊緩沖區(qū),將I2C傳輸過來的數(shù)據(jù)保存至緩沖區(qū)中;
在步驟507中,傳輸完成后,后端畫質(zhì)處理芯片將緩沖區(qū)中的OTA升級包燒寫至NORFlash存儲器的正常啟動分區(qū)中升級;
在步驟508中,從處理芯片重新啟動即可完成后端畫質(zhì)處理芯片的OTA升級功能。
在第一實施例中,從處理芯片軟件載體可以采用帶I2C接口的NORFlash,替代不帶I2C接口的NORFlash。
在第一實施例中,從處理芯片軟件載體可以采用其他固態(tài)存儲器和與從處理芯片的對應(yīng)接口,替代不帶I2C接口的NORFlash和SPI接口。
在第一實施例中,從處理芯片軟件載體可以采用從處理芯片中固態(tài)存儲模塊替代不帶I2C接口的NORFlash和SPI接口。
在第一實施例中,從處理芯片可以是液晶屏?xí)r序控制(TCON)芯片或電視背 光驅(qū)動芯片,替代后端畫質(zhì)處理芯片,但由于對應(yīng)軟件穩(wěn)定、無須升級,一般不采用。
在第一實施例中,如果須要,從處理芯片可以是多個。
在第一實施例步驟506中,可以采用從處理芯片的物理緩沖模塊,替代內(nèi)存中開辟的緩沖區(qū)。
在第一實施例,步驟508中從處理芯片啟動程序可以不采用雙啟動,這樣步驟507中,可以將接收完畢的OTA升級包燒寫到NORFlash,替代燒寫到NORFlash的正常啟動分區(qū),但這樣沒有備份啟動分區(qū),一旦升級失敗就會無法啟動,因此無法保障升級安全與可靠。
第二實施例
圖6是第二實施例的電路原理示意圖。它要求從處理芯片軟件載體必須帶I2C接口,這樣適用范圍窄但控制簡單、效率高。
參照圖6,升級裝置11的具體電路可以包括:一個主SOC、一個或多個主SOC的網(wǎng)絡(luò)接口模塊、一個或多個從處理芯片及其軟件載體。
主SOC、需要軟件升級的從處理芯片和對應(yīng)從處理芯片軟件載體都包括I2C接口,它們通過電路板上布設(shè)的I2C總線連接。
從處理芯片軟件載體采用帶I2C接口的NORFlash,從處理芯片與對應(yīng)NORFlash仍通過SPI接口連接。每個從處理芯片只有一塊NORFlash。在本實施例中僅有一塊需要升級的從處理芯片:后端畫質(zhì)處理芯片。
圖7是應(yīng)用在圖4所示電路中的一種利用I2C總線對從處理芯片進(jìn)行升級的方法的流程示意圖。它直接由從處理芯片發(fā)出請求主SOC將軟件升級包從I2C總線直接寫入從處理芯片軟件載體,主要只包括主SOC端處理步驟,處理簡單。
如圖7所示,該進(jìn)行升級的方法中從處理芯片是后端畫質(zhì)處理芯片,具體包括以下步驟:
700)開始;
701)將從處理芯片OTA升級包發(fā)布或上傳至OTA服務(wù)器;
702)各在線聯(lián)網(wǎng)電視中主SOC獲取OTA服務(wù)器中從處理芯片的OTA升級包版本,并根據(jù)服務(wù)器上的從處理芯片軟件版本比自身高檢測到須要OTA升級;
703)通過人機界面提示用戶是否升級?用戶選擇升級,進(jìn)入下一步;否則 不進(jìn)行OTA升級,進(jìn)入步驟708);
704)從處理芯片請求主SOC從OTA服務(wù)器下載OTA升級包;
705)從處理芯片請求主SOC通過I2C總線將下載完畢的OTA升級包直接燒寫從處理芯片的NORFLASH的正常啟動區(qū);
706)燒寫完畢后,從處理芯片通過I2C總線通知主SOC;
707)從處理芯片軟件復(fù)位,,調(diào)用圖8所示的采用雙啟動技術(shù)的從處理芯片啟動程序,該程序與第一實施例中的從處理芯片啟動程序相同,其具體實現(xiàn)步驟在后面統(tǒng)一描述;
708)結(jié)束。
其中:步驟701由授權(quán)客戶端12執(zhí)行,步驟702-706由從處理芯片請求主SOC控制執(zhí)行,步驟707由從處理芯片控制執(zhí)行。
在步驟701中,當(dāng)后端畫質(zhì)處理芯片軟件需要進(jìn)行OTA升級時,首先將經(jīng)過測試沒有問題的待升級的軟件包發(fā)布至公司的OTA升級服務(wù)器。
在步驟702中,用戶家里對應(yīng)型號的電視在連接在網(wǎng)絡(luò)上時,從處理芯片請求主SOC芯片的OTA升級功能軟件通過網(wǎng)絡(luò)檢測到服務(wù)器端有對本型號電視的后端畫質(zhì)處理芯片進(jìn)行OTA升級的需求;
在步驟703中,在電視的人機(UI)界面上,彈出相應(yīng)的提示,請用戶確認(rèn)是否同意進(jìn)行后端畫質(zhì)芯片的OTA軟件升級;
在步驟704中,如果用戶選擇同意,那么通過網(wǎng)絡(luò)將服務(wù)器端的OTA升級軟件包下載到電視的存儲介質(zhì)上;
在步驟705中,OTA升級軟件包下載完成之后,通過I2C總線和相應(yīng)的協(xié)議,從處理芯片請求主SOC將OTA升級數(shù)據(jù)包直接寫入從處理芯片的NORFLASH;
在步驟707中,從處理芯片根據(jù)燒寫完畢的通知再軟件啟動,從處理芯片重新啟動即可完成后端畫質(zhì)處理芯片的OTA升級功能。
在第二實施例中,從處理芯片軟件載體采用帶I2C接口的NORFlash,這樣可以由從處理芯片請求主SOC寫入。
在第二實施例中,從處理芯片軟件載體可以采用帶I2C接口的其他固態(tài)存儲器,替代帶I2C接口的NORFlash。
在第二實施例中,從處理芯片可以是液晶屏?xí)r序控制(TCON)芯片或電視背 光驅(qū)動芯片,替代后端畫質(zhì)處理芯片,但由于對應(yīng)軟件穩(wěn)定、無須升級,一般不采用。
在第二實施例中,如果須要,從處理芯片可以是多個。
在第二實施例步驟705中從處理芯片啟動程序可以不采用雙啟動,這樣步驟706中,可以將接收完畢的OTA升級包燒寫到NORFlash,替代燒寫到NORFlash的正常啟動分區(qū)。
第一和第二實施例中的從處理芯片啟動程序
該啟動程序采用雙啟動技術(shù),由從處理芯片加載并控制執(zhí)行,具體如圖8所示,包括以下步驟:
800)開始;
801)系統(tǒng)引導(dǎo);
802)對正常啟動區(qū)升級軟件包進(jìn)行CRC校驗并判斷升級軟件包數(shù)據(jù)是否正確?否,進(jìn)入步驟803);是,則進(jìn)入步驟805);
803)從備份啟動區(qū)啟動;
804)向主SOC發(fā)送從處理芯片軟件升級失敗通知,進(jìn)入步驟806);
805)從正常啟動區(qū)啟動;
806)結(jié)束。
在步驟801中,系統(tǒng)引導(dǎo)俗稱BOOT,比如:電腦操作系統(tǒng)中引導(dǎo)文件,在系統(tǒng)啟動時須要在操作系統(tǒng)之前加載。
在步驟802中,正常啟動區(qū)又稱第一啟動區(qū),第一啟動區(qū)用于存放當(dāng)前使用的主程序。
在步驟803中,備份啟動區(qū)又稱第二啟動區(qū),第二啟動區(qū)用于存放當(dāng)前使用的主程序的備份;從處理芯片升級失敗仍然可以從備份啟動區(qū)啟動,由于備份啟動區(qū)在升級過程未被破壞,這樣充分保障了升級安全和可靠性。第一啟動區(qū)和第二啟動區(qū)是二個不同的物理存儲空間或者一個物理存儲空間中的不同邏輯分區(qū)。
在步驟804中,從處理芯片升級失敗后通知主SOC重新升級,由于通知及時,這樣能避免了前一次升級失敗后被無限推遲。
在步驟805中,還包括檢查備份啟動區(qū)主程序版本是否與正常啟動區(qū)一致, 不一致,重新備份正常啟動區(qū)的升級后的主程序。
在第一和第二實施例步驟802中,系統(tǒng)引導(dǎo)區(qū)中存儲原始校驗碼,原始校驗碼與升級軟件包經(jīng)主系統(tǒng)級芯片獲取并傳送至系統(tǒng)引導(dǎo)區(qū)。原始校驗碼與升級軟件包可以采取同步或異步的方式進(jìn)行傳送。
在第一和第二實施例步驟802中,都可以采用奇偶校驗、海明威校驗或用戶自定義的算法,替代CRC校驗。采用上述任一種校驗方式獲得第一校驗碼,并與從處理芯片載體引導(dǎo)分區(qū)的原始校驗碼進(jìn)行比較,如第一校驗碼與原始校驗碼不相同,則校驗不通過并不進(jìn)行軟件升級,提示用戶升級未進(jìn)行。如第一校驗碼與原始校驗碼相同,則通過校驗并進(jìn)行升級,第一啟動區(qū)中存放的當(dāng)前使用的主程序替換為升級軟件包中的主程序;升級過程中如升級失敗,采用從第二啟動區(qū)進(jìn)行啟動的方法避免無法從第一啟動區(qū)啟動,第二啟動區(qū)存放有當(dāng)前使用的主程序的備份,由于第二啟動區(qū)中當(dāng)前使用的主程序的備份在升級過程未被破壞,這樣充分保障了升級安全和可靠性。
在第一和第二實施例中,雙啟動技術(shù)的基本原理是將閃存NORFlash存儲器分成三個邏輯分區(qū):系統(tǒng)引導(dǎo)“zloader”分區(qū)、正常啟動分區(qū)和備份分區(qū)。系統(tǒng)引導(dǎo)“zloader”分區(qū)中存放著循環(huán)(CRC)校驗的代碼,它首先通過CRC校驗的方式確定正常啟動分區(qū)的主程序是否有數(shù)據(jù)錯誤,如果沒有錯誤則正常啟動;當(dāng)發(fā)現(xiàn)數(shù)據(jù)錯誤時,軟件會選擇從存儲器件的備份分區(qū)進(jìn)行啟動,從而在不增加任何硬件成本的基礎(chǔ)上,解決了OTA升級失敗導(dǎo)致后端畫質(zhì)處理芯片無法啟動的技術(shù)問題。
在上面實施例中,系統(tǒng)引導(dǎo)“zloader”分區(qū)可以存放奇偶校驗代碼、海明威校驗代碼或用戶自定義的算法代碼,替代存放CRC校驗代碼。
在上面實施例中,雙啟動技術(shù)也可以將閃存NORFlash存儲器分成二個邏輯分區(qū):正常啟動分區(qū)和備份分區(qū)(系統(tǒng)引導(dǎo)和CRC代碼都位于正常啟動分區(qū),不可更改),替代上述將一個NORFlash存儲器分成三個邏輯分區(qū),但這樣增加了系統(tǒng)引導(dǎo)和CRC代碼被改動風(fēng)險。
在上面實施例中,雙啟動技術(shù)也可以采用二個或三個NORFlash存儲器,替代將一個NORFlash存儲器分成二個或三個邏輯分區(qū)。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍執(zhí)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。