本申請(qǐng)涉及計(jì)算機(jī),特別涉及一種固件升級(jí)方法、裝置、電子設(shè)備及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、有些芯片產(chǎn)品不支持芯片固件升級(jí),比如使用現(xiàn)場(chǎng)可編程門陣列(fieldprogrammable?gate?array,fpga)作為主控,cpu提供算力的片上系統(tǒng),存儲(chǔ)在片上系統(tǒng)中的固件不支持更新。如果這些產(chǎn)品在用戶使用過(guò)程中存在固件升級(jí)需求,這時(shí)會(huì)由于系統(tǒng)固件不支持升級(jí)而影響用戶正常使用。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)?zhí)峁┮环N固件升級(jí)方法、裝置、電子設(shè)備及計(jì)算機(jī)程序產(chǎn)品,以解決存儲(chǔ)在芯片上系統(tǒng)中的固件不支持更新升級(jí),影響用戶使用等問(wèn)題。
2、本申請(qǐng)第一方面實(shí)施例提供一種固件升級(jí)方法,固件升級(jí)方法應(yīng)用于固件升級(jí)系統(tǒng),所述固件升級(jí)系統(tǒng)包括處理器、現(xiàn)場(chǎng)可編程門陣列單元和第一存儲(chǔ)器,所述第一存儲(chǔ)器包括第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū),所述第一存儲(chǔ)區(qū)用于存儲(chǔ)固件,所述方法包括以下步驟:接收所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送的升級(jí)指令;基于所述升級(jí)指令,將所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到所述第二存儲(chǔ)區(qū),獲取固件升級(jí)數(shù)據(jù)并存儲(chǔ)至所述第一存儲(chǔ)區(qū);對(duì)所述第一存儲(chǔ)區(qū)中存儲(chǔ)的所述固件升級(jí)數(shù)據(jù)進(jìn)行校驗(yàn),若所述固件升級(jí)數(shù)據(jù)校驗(yàn)成功,則運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí),否則,停止升級(jí)所述第一存儲(chǔ)區(qū)的固件。
3、可選地,所述運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí),包括:向所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送校驗(yàn)成功消息;在接收到所述現(xiàn)場(chǎng)可編程門陣列單元基于所述校驗(yàn)成功通知消息發(fā)送的升級(jí)指令后,基于所述升級(jí)指令運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí)。
4、可選地,在基于所述升級(jí)指令運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí)時(shí),包括:判斷所述第一存儲(chǔ)區(qū)的固件是否在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)升級(jí)成功;若所述第一存儲(chǔ)區(qū)的固件在所述預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未升級(jí)成功,則向所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送升級(jí)失敗消息,并觸發(fā)所述現(xiàn)場(chǎng)可編程門陣列單元將所述第二存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到所述第一存儲(chǔ)區(qū)。
5、可選地,所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件被劃分為多個(gè)固件數(shù)據(jù)塊,所述固件升級(jí)數(shù)據(jù)包括對(duì)所述多個(gè)固件數(shù)據(jù)塊中的第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù),將所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到所述第二存儲(chǔ)區(qū),獲取固件升級(jí)數(shù)據(jù)并存儲(chǔ)至所述第一存儲(chǔ)區(qū),還包括:將所述第一存儲(chǔ)區(qū)中的所述第一固件數(shù)據(jù)塊搬移至所述第二存儲(chǔ)區(qū);獲取所述第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù),并將所述第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù)的存儲(chǔ)地址存儲(chǔ)至所述第一存儲(chǔ)區(qū)的第一存儲(chǔ)地址。
6、可選地,所述固件升級(jí)系統(tǒng)還包括第二存儲(chǔ)器和第三存儲(chǔ)器,所述第二存儲(chǔ)器和所述第三存儲(chǔ)器分別用于存儲(chǔ)固件,所述現(xiàn)場(chǎng)可編程門陣列單元通過(guò)三取二表決的方式從所述第一存儲(chǔ)器、所述第二存儲(chǔ)器和所述第三存儲(chǔ)器中讀取固件,還包括:若所述第一存儲(chǔ)區(qū)的固件在所述預(yù)設(shè)時(shí)長(zhǎng)內(nèi)升級(jí)成功,則向所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送升級(jí)成功消息,并觸發(fā)所述現(xiàn)場(chǎng)可編程門陣列單元將所述第一存儲(chǔ)區(qū)中的固件分別復(fù)制到所述第二存儲(chǔ)器和所述第三存儲(chǔ)器。
7、本申請(qǐng)第二方面實(shí)施例提供一種固件升級(jí)裝置,固件升級(jí)裝置應(yīng)用于固件升級(jí)系統(tǒng),所述固件升級(jí)系統(tǒng)包括處理器、現(xiàn)場(chǎng)可編程門陣列單元和第一存儲(chǔ)器,所述第一存儲(chǔ)器包括第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū),所述第一存儲(chǔ)區(qū)用于存儲(chǔ)固件,所述裝置包括:接收模塊,用于接收所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送的升級(jí)指令;存儲(chǔ)模塊,用于基于所述升級(jí)指令,將所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到所述第二存儲(chǔ)區(qū),獲取固件升級(jí)數(shù)據(jù)并存儲(chǔ)至所述第一存儲(chǔ)區(qū);升級(jí)模塊,用于對(duì)所述第一存儲(chǔ)區(qū)中存儲(chǔ)的所述固件升級(jí)數(shù)據(jù)進(jìn)行校驗(yàn),若對(duì)所述第一存儲(chǔ)區(qū)中存儲(chǔ)的所述固件升級(jí)數(shù)據(jù)校驗(yàn)成功,則運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí),否則,停止升級(jí)所述第一存儲(chǔ)區(qū)的固件。
8、可選地,所述升級(jí)模塊,還用于:向所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送校驗(yàn)成功消息;在接收到所述現(xiàn)場(chǎng)可編程門陣列單元基于所述校驗(yàn)成功通知消息發(fā)送的升級(jí)指令后,基于所述升級(jí)指令運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí)。
9、可選地,所述升級(jí)模塊,還用于:判斷所述第一存儲(chǔ)區(qū)的固件是否在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)升級(jí)成功;若所述第一存儲(chǔ)區(qū)的固件在所述預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未升級(jí)成功,則向所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送升級(jí)失敗消息,并觸發(fā)所述現(xiàn)場(chǎng)可編程門陣列單元將所述第二存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到所述第一存儲(chǔ)區(qū)。
10、可選地,所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件被劃分為多個(gè)固件數(shù)據(jù)塊,所述固件升級(jí)數(shù)據(jù)包括對(duì)所述多個(gè)固件數(shù)據(jù)塊中的第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù),所述存儲(chǔ)模塊,還用于:將所述第一存儲(chǔ)區(qū)中的所述第一固件數(shù)據(jù)塊搬移至所述第二存儲(chǔ)區(qū);獲取所述第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù),并將所述第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù)的存儲(chǔ)地址存儲(chǔ)至所述第一存儲(chǔ)區(qū)的第一存儲(chǔ)地址。
11、可選地,所述固件升級(jí)系統(tǒng)還包括第二存儲(chǔ)器和第三存儲(chǔ)器,所述第二存儲(chǔ)器和所述第三存儲(chǔ)器分別用于存儲(chǔ)固件,所述現(xiàn)場(chǎng)可編程門陣列單元通過(guò)三取二表決的方式從所述第一存儲(chǔ)器、所述第二存儲(chǔ)器和所述第三存儲(chǔ)器中讀取固件,上述的固件升級(jí)裝置,還包括:復(fù)制模塊,用于若所述第一存儲(chǔ)區(qū)的固件在所述預(yù)設(shè)時(shí)長(zhǎng)內(nèi)升級(jí)成功,則向所述現(xiàn)場(chǎng)可編程門陣列單元發(fā)送升級(jí)成功消息,并觸發(fā)所述現(xiàn)場(chǎng)可編程門陣列單元將所述第一存儲(chǔ)區(qū)中的固件分別復(fù)制到所述第二存儲(chǔ)器和所述第三存儲(chǔ)器。
12、本申請(qǐng)第三方面實(shí)施例提供一種電子設(shè)備,包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序,以實(shí)現(xiàn)如上述實(shí)施例所述的固件升級(jí)方法。
13、本申請(qǐng)第四方面實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行,以用于實(shí)現(xiàn)如上述實(shí)施例所述的固件升級(jí)方法。
14、上述實(shí)施方式中,接收現(xiàn)場(chǎng)可編程門陣列單元發(fā)送的升級(jí)指令,基于升級(jí)指令,將第一存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到第二存儲(chǔ)區(qū),獲取固件升級(jí)數(shù)據(jù)并存儲(chǔ)至第一存儲(chǔ)區(qū),對(duì)第一存儲(chǔ)區(qū)中存儲(chǔ)的固件升級(jí)數(shù)據(jù)進(jìn)行校驗(yàn),若固件升級(jí)數(shù)據(jù)校驗(yàn)成功,則運(yùn)行第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí),否則,停止升級(jí)第一存儲(chǔ)區(qū)的固件。由此,解決了存儲(chǔ)在芯片上系統(tǒng)中的固件不支持更新升級(jí),影響用戶使用等問(wèn)題,實(shí)現(xiàn)了對(duì)系統(tǒng)固件的升級(jí)。
15、本申請(qǐng)附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本申請(qǐng)的實(shí)踐了解到。
16、附圖說(shuō)明
17、本申請(qǐng)上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
18、圖1為根據(jù)本申請(qǐng)實(shí)施例提供的一種固件升級(jí)方法的流程圖;
19、圖2為根據(jù)本申請(qǐng)一個(gè)實(shí)施例的一種固件升級(jí)系統(tǒng)的結(jié)構(gòu)示意圖;
20、圖3為根據(jù)本申請(qǐng)一個(gè)實(shí)施例的另一種固件升級(jí)系統(tǒng)的結(jié)構(gòu)示意圖;
21、圖4為根據(jù)本申請(qǐng)實(shí)施例的固件升級(jí)裝置的示例圖;
22、圖5為根據(jù)本申請(qǐng)實(shí)施例的電子設(shè)備結(jié)構(gòu)的示意圖。
1.一種固件升級(jí)方法,其特征在于,固件升級(jí)方法應(yīng)用于固件升級(jí)系統(tǒng),所述固件升級(jí)系統(tǒng)包括處理器、現(xiàn)場(chǎng)可編程門陣列單元和第一存儲(chǔ)器,所述第一存儲(chǔ)器包括第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū),所述第一存儲(chǔ)區(qū)用于存儲(chǔ)固件,所述方法包括以下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在基于所述升級(jí)指令運(yùn)行所述第一存儲(chǔ)區(qū)的固件進(jìn)行升級(jí)時(shí),包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件被劃分為多個(gè)固件數(shù)據(jù)塊,所述固件升級(jí)數(shù)據(jù)包括對(duì)所述多個(gè)固件數(shù)據(jù)塊中的第一固件數(shù)據(jù)塊的升級(jí)數(shù)據(jù),將所述第一存儲(chǔ)區(qū)中存儲(chǔ)的固件搬移到所述第二存儲(chǔ)區(qū),獲取固件升級(jí)數(shù)據(jù)并存儲(chǔ)至所述第一存儲(chǔ)區(qū),還包括:
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述固件升級(jí)系統(tǒng)還包括第二存儲(chǔ)器和第三存儲(chǔ)器,所述第二存儲(chǔ)器和所述第三存儲(chǔ)器分別用于存儲(chǔ)固件,所述現(xiàn)場(chǎng)可編程門陣列單元通過(guò)三取二表決的方式從所述第一存儲(chǔ)器、所述第二存儲(chǔ)器和所述第三存儲(chǔ)器中讀取固件,還包括:
6.一種固件升級(jí)裝置,其特征在于,固件升級(jí)裝置應(yīng)用于固件升級(jí)系統(tǒng),所述固件升級(jí)系統(tǒng)包括處理器、現(xiàn)場(chǎng)可編程門陣列單元和第一存儲(chǔ)器,所述第一存儲(chǔ)器包括第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū),所述第一存儲(chǔ)區(qū)用于存儲(chǔ)固件,所述裝置包括:
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述升級(jí)模塊,還用于:
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述升級(jí)模塊,還用于:
9.一種電子設(shè)備,其特征在于,包括存儲(chǔ)器、處理器;
10.一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-5中任一所述的固件升級(jí)方法。