本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種基于嵌入式芯片的數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
1、對于嵌入式芯片的在線升級,常通過移除或物理更換芯片的方式,以在寫入新的程序代碼以對嵌入式芯片中的固件或軟件進(jìn)行更新和升級。由于需要移動嵌入式芯片,且嵌入式芯片易受外部壞境的影響,從而導(dǎo)致嵌入式芯片出現(xiàn)損壞的情況。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供一種基于嵌入式芯片的數(shù)據(jù)處理方法及系統(tǒng),以解決嵌入式芯片出現(xiàn)損壞的情況。
2、為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
3、本發(fā)明實(shí)施例第一方面示了一種基于嵌入式芯片的數(shù)據(jù)處理方法,應(yīng)用于基于嵌入式芯片的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括第一分區(qū)處理器、引導(dǎo)加載處理器、芯片處理器、第一分區(qū)、第二分區(qū)和引導(dǎo)裝載程序分區(qū),所述方法包括:
4、所述第一分區(qū)處理器接收程序升級指令,若確定當(dāng)前所述第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài),將所述程序升級指令中攜帶的待升級應(yīng)用的新程序代碼寫入所述第二分區(qū),并將寫入完成的信息發(fā)送給所述芯片處理器;
5、所述引導(dǎo)加載處理器接收到所述芯片處理器發(fā)送給寫入完成的信息時,基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行所述第二分區(qū)內(nèi)新程序代碼。
6、可選的,所述第一分區(qū)處理器確定當(dāng)前第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài),包括:
7、遍歷所述第一分區(qū)中所有正在運(yùn)行的應(yīng)用,確定是否存在所述程序升級指令中待升級應(yīng)用的標(biāo)識相同的應(yīng)用;
8、若存在,確定當(dāng)前所述第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài)。
9、可選的,所述引導(dǎo)加載處理器基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行所述第二分區(qū)內(nèi)新程序代碼,包括:
10、所述引導(dǎo)加載處理器停止所述程序升級指令中待升級應(yīng)用的程序代碼的運(yùn)行;
11、在第一時間內(nèi)引導(dǎo)第一引導(dǎo)程序執(zhí)行所述第二分區(qū)的新程序代碼。
12、可選的,在第一時間內(nèi)引導(dǎo)第一引導(dǎo)程序執(zhí)行所述第二分區(qū)的新程序代碼之后,還包括:
13、所述引導(dǎo)加載處理器判斷第一時間段內(nèi)所述新程序代碼的運(yùn)行是否存在異常;
14、若存在,則切換執(zhí)行所述第一分區(qū)內(nèi)所述待升級應(yīng)用的程序代碼;
15、若不存在,繼續(xù)執(zhí)行第二分區(qū)內(nèi)新程序代碼;
16、在第一時間段后刪除所述第一分區(qū)內(nèi)待升級應(yīng)用的程序代碼。
17、可選的,還包括:
18、所述第一分區(qū)處理器接收程序升級指令之后,對接收到的所述程序升級指令中攜帶的待升級應(yīng)用的新程序代碼進(jìn)行校驗,得到校準(zhǔn)結(jié)果;
19、基于校準(zhǔn)結(jié)果指示數(shù)據(jù)校準(zhǔn)是否通過;
20、若是,將所述程序升級指令中攜帶的新程序代碼寫入所述第二分區(qū),并將寫入完成的信息和所述校準(zhǔn)結(jié)果發(fā)送給所述芯片處理器;
21、所述引導(dǎo)加載處理器接收到所述芯片處理器發(fā)送給寫入完成的信息和所述校準(zhǔn)結(jié)果時,控制執(zhí)行引導(dǎo)裝載程序分區(qū)中的第一引導(dǎo)程序,以對所述第二分區(qū)內(nèi)寫入的所述新程序代碼進(jìn)行數(shù)據(jù)校驗值第二計算,得到第二校驗值;基于所述校準(zhǔn)結(jié)果中的第一校驗值和所述第二校驗值確定是否驗證通過;
22、若是,則執(zhí)行基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行第二分區(qū)內(nèi)新程序代碼的步驟。
23、可選的,對接收到的所述程序升級指令中攜帶的待升級應(yīng)用的新程序代碼進(jìn)行校驗,得到校準(zhǔn)結(jié)果,包括:
24、判斷接收到的所述程序升級指令中攜帶的待升級應(yīng)用的新程序代碼是否完整;
25、若是,生成數(shù)據(jù)校準(zhǔn)通過的信息;
26、若否,生成數(shù)據(jù)校準(zhǔn)失敗的信息;
27、基于所述新程序代碼進(jìn)行數(shù)據(jù)校驗值第一計算,得到第一校驗值;
28、將所述數(shù)據(jù)校準(zhǔn)通過的信息或數(shù)據(jù)校準(zhǔn)失敗的信息,以及第一校驗值生成校準(zhǔn)結(jié)果。
29、可選的,所述引導(dǎo)裝載程序分區(qū)還包括第二引導(dǎo)程序,所述方法還包括:
30、所述引導(dǎo)加載處理器接收到程序升級指令時,將所述第一引導(dǎo)程序切換至第二引導(dǎo)程序;
31、基于所述程序升級指令對所述第一引導(dǎo)程序執(zhí)行升級;
32、在確定升級后的第一引導(dǎo)程序校驗通過時,切換至第一引導(dǎo)程序。
33、本發(fā)明實(shí)施例第二方面示出了一種基于嵌入式芯片的數(shù)據(jù)處理系統(tǒng),包括第一分區(qū)處理器、引導(dǎo)加載處理器、芯片處理器、第一分區(qū)、第二分區(qū)和引導(dǎo)裝載程序分區(qū);
34、所述第一分區(qū)處理器,用于接收程序升級指令,若確定當(dāng)前所述第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài),將所述程序升級指令中攜帶的待升級應(yīng)用的新程序代碼寫入所述第二分區(qū),并將寫入完成的信息發(fā)送給所述芯片處理器;
35、所述引導(dǎo)加載處理器,用于接收到所述芯片處理器發(fā)送給寫入完成的信息時,基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行所述第二分區(qū)內(nèi)新程序代碼。
36、可選的,確定當(dāng)前第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài)的第一分區(qū)處理器,具體用于:
37、遍歷所述第一分區(qū)中所有正在運(yùn)行的應(yīng)用,確定是否存在所述程序升級指令中待升級應(yīng)用的標(biāo)識相同的應(yīng)用;
38、若存在,確定當(dāng)前所述第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài)。
39、可選的,基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行第二分區(qū)內(nèi)新程序代碼的所述引導(dǎo)加載處理器,具體用于:
40、停止所述程序升級指令中待升級應(yīng)用的程序代碼的運(yùn)行;
41、在第一時間內(nèi)引導(dǎo)第一引導(dǎo)程序執(zhí)行所述第二分區(qū)的新程序代碼。
42、基于上述本發(fā)明實(shí)施例提供的一種基于嵌入式芯片的數(shù)據(jù)處理方法及系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括第一分區(qū)處理器、引導(dǎo)加載處理器、芯片處理器、第一分區(qū)、第二分區(qū)和引導(dǎo)裝載程序分區(qū),所述方法包括:第一分區(qū)處理器接收程序升級指令,若確定當(dāng)前第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài),將所述程序升級指令中攜帶的待升級應(yīng)用的新程序代碼寫入第二分區(qū),并將寫入完成的信息發(fā)送給所述芯片處理器;所述引導(dǎo)加載處理器接收到所述芯片處理器發(fā)送給寫入完成的信息時,基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行第二分區(qū)內(nèi)新程序代碼。本發(fā)明嵌入式芯片的應(yīng)用進(jìn)行在線升級時,在不移除或物理更換芯片的情況下,第一分區(qū)處理器接收程序升級指令,若確定當(dāng)前第一分區(qū)內(nèi)與所述程序升級指令中待升級應(yīng)用的程序代碼處于執(zhí)行狀態(tài),將所述程序升級指令中攜帶的新程序代碼寫入第二分區(qū),并將寫入完成的信息發(fā)送給所述芯片處理器;引導(dǎo)加載處理器接收到所述芯片處理器發(fā)送給寫入完成的信息時,基于所述第一分區(qū)內(nèi)的程序代碼和所述第二分區(qū)內(nèi)新程序代碼進(jìn)行分區(qū)跳轉(zhuǎn),以執(zhí)行第二分區(qū)內(nèi)新程序代碼;通過外部設(shè)備寫入的方式進(jìn)行芯片上的固件或軟件,即應(yīng)用進(jìn)行更新和升級,不僅保證了在線升級的高效性,進(jìn)而提升了應(yīng)用的可靠性和安全性。