System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及在線升級(jí),尤其涉及一種在線升級(jí)方法及電子設(shè)備。
技術(shù)介紹
1、在線升級(jí)是現(xiàn)在許多產(chǎn)品必帶的一個(gè)功能,根據(jù)編程接口的不同,有jtag,uart,can等多種方式。盡管編程接口有所不同,但是其在線升級(jí)的原理是類似的,都是通過外部觸發(fā)條件,使芯片脫離常規(guī)應(yīng)用程序的執(zhí)行流程,接收升級(jí)包文件并將其寫入到芯片內(nèi)部的flash中。
2、然而,在設(shè)備進(jìn)行在線升級(jí)的過程中,可能存在設(shè)備突發(fā)掉電的情況,導(dǎo)致設(shè)備在線升級(jí)失敗,且在設(shè)備重新上電后,程序無法正常運(yùn)行。
技術(shù)實(shí)現(xiàn)思路
1、本專利技術(shù)實(shí)施例提供了一種在線升級(jí)方法及電子設(shè)備,以解決現(xiàn)有技術(shù)由于設(shè)備突發(fā)掉電情況,導(dǎo)致設(shè)備在線升級(jí)失敗,程序無法正常運(yùn)行的問題。
2、第一方面,本專利技術(shù)實(shí)施例提供了一種在線升級(jí)方法,待升級(jí)設(shè)備包括片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器,片外存儲(chǔ)器包括主區(qū)和備區(qū),主區(qū)用于存儲(chǔ)本次升級(jí)文件,備區(qū)用于存儲(chǔ)上次升級(jí)文件;上述在線升級(jí)方法包括:
3、接收本次升級(jí)文件,并將本次升級(jí)文件寫入主區(qū);
4、對(duì)待升級(jí)設(shè)備進(jìn)行在線升級(jí)預(yù)處理;
5、將主區(qū)的本次升級(jí)文件寫入片內(nèi)存儲(chǔ)器,以進(jìn)行在線升級(jí);
6、若在在線升級(jí)的過程中,待升級(jí)設(shè)備掉電,則在待升級(jí)設(shè)備重新上電后,進(jìn)入引導(dǎo)加載程序,并基于備區(qū)存儲(chǔ)的文件或主區(qū)存儲(chǔ)的文件,完成本次升級(jí)。
7、在一種可能的實(shí)現(xiàn)方式中,在將本次升級(jí)文件寫入主區(qū)之后,還包括:
8、更新主區(qū)的標(biāo)志位;
9、基于
10、讀取備區(qū)的當(dāng)前標(biāo)志位;
11、若備區(qū)的當(dāng)前標(biāo)志位不正確,則讀取主區(qū)的當(dāng)前標(biāo)志位;
12、若主區(qū)的當(dāng)前標(biāo)志位正確,則將主區(qū)存儲(chǔ)的文件寫入片內(nèi)存儲(chǔ)器,完成本次升級(jí)。
13、在一種可能的實(shí)現(xiàn)方式中,在讀取備區(qū)的當(dāng)前標(biāo)志位之后,基于備區(qū)存儲(chǔ)的文件或主區(qū)存儲(chǔ)的文件,完成本次升級(jí),還包括:
14、若備區(qū)的當(dāng)前標(biāo)志位正確,則將主區(qū)存儲(chǔ)的文件擦除,并將備區(qū)存儲(chǔ)的文件寫入片內(nèi)存儲(chǔ)器,完成本次升級(jí)。
15、在一種可能的實(shí)現(xiàn)方式中,在接收本次升級(jí)文件之前,在線升級(jí)方法還包括:
16、接收固件關(guān)鍵字;固件關(guān)鍵字包括與本次升級(jí)文件關(guān)聯(lián)的需升級(jí)設(shè)備的信息;固件關(guān)鍵字存儲(chǔ)于本次升級(jí)文件的文件頭中;
17、判斷待升級(jí)設(shè)備的信息與需升級(jí)設(shè)備的信息是否匹配;
18、接收本次升級(jí)文件,包括:
19、若待升級(jí)設(shè)備的信息與需升級(jí)設(shè)備的信息匹配,則接收本次升級(jí)文件。
20、在一種可能的實(shí)現(xiàn)方式中,接收本次升級(jí)文件,并將本次升級(jí)文件寫入主區(qū),包括:
21、分幀接收本次升級(jí)文件;
22、對(duì)接收到的每幀升級(jí)數(shù)據(jù)進(jìn)行crc校驗(yàn)和幀索引號(hào)校驗(yàn),并將crc校驗(yàn)和幀索引號(hào)校驗(yàn)通過后的升級(jí)數(shù)據(jù)寫入主區(qū);
23、對(duì)接收到的整個(gè)本次升級(jí)文件進(jìn)行md5校驗(yàn);
24、若md5校驗(yàn)通過,則成功完成將本次升級(jí)文件寫入主區(qū)的操作。
25、在一種可能的實(shí)現(xiàn)方式中,在將主區(qū)的本次升級(jí)文件寫入片內(nèi)存儲(chǔ)器,以進(jìn)行在線升級(jí)的過程中,在線升級(jí)方法還包括:
26、若在將主區(qū)的本次升級(jí)文件寫入片內(nèi)存儲(chǔ)器的過程中,檢測(cè)到數(shù)據(jù)寫入錯(cuò)誤,則跳轉(zhuǎn)至對(duì)待升級(jí)設(shè)備進(jìn)行在線升級(jí)預(yù)處理的步驟繼續(xù)執(zhí)行。
27、在一種可能的實(shí)現(xiàn)方式中,在將主區(qū)的本次升級(jí)文件成功寫入片內(nèi)存儲(chǔ)器之后,在線升級(jí)方法還包括:
28、基于主備區(qū)搬運(yùn)總狀態(tài)機(jī)和主備區(qū)讀寫狀態(tài)機(jī),將主區(qū)存儲(chǔ)的本次升級(jí)文件搬運(yùn)至備區(qū)。
29、在一種可能的實(shí)現(xiàn)方式中,主備區(qū)搬運(yùn)總狀態(tài)機(jī)包括主區(qū)標(biāo)志位讀取狀態(tài)、備區(qū)擦除狀態(tài)、主區(qū)數(shù)據(jù)讀取狀態(tài)、備區(qū)數(shù)據(jù)寫入狀態(tài)、備區(qū)標(biāo)志位寫入狀態(tài)和第一空閑狀態(tài);
30、在主備區(qū)搬運(yùn)總狀態(tài)機(jī)處于主區(qū)標(biāo)志位讀取狀態(tài)時(shí),若讀取標(biāo)志位為復(fù)位狀態(tài)且讀取的主區(qū)的標(biāo)志位正確,則跳轉(zhuǎn)至備區(qū)擦除狀態(tài),并置位擦除標(biāo)志位,執(zhí)行備區(qū)擦除操作;
31、在主備區(qū)搬運(yùn)總狀態(tài)機(jī)處于備區(qū)擦除狀態(tài)時(shí),若擦除標(biāo)志位為復(fù)位狀態(tài)且正確完成備區(qū)擦除操作,則跳轉(zhuǎn)至主區(qū)數(shù)據(jù)讀取狀態(tài),并置位讀取標(biāo)志位,執(zhí)行主區(qū)數(shù)據(jù)讀取操作;
32、在主備區(qū)搬運(yùn)總狀態(tài)機(jī)處于主區(qū)數(shù)據(jù)讀取狀態(tài)時(shí),若讀取標(biāo)志位為復(fù)位狀態(tài),且正確完成主區(qū)數(shù)據(jù)讀取操作,則跳轉(zhuǎn)至備區(qū)數(shù)據(jù)寫入狀態(tài),并置位寫入標(biāo)志位,將從主區(qū)讀取的數(shù)據(jù)寫入備區(qū),記錄主區(qū)操作地址,更新備區(qū)操作地址,以及復(fù)制寫入備區(qū)的數(shù)據(jù);
33、在主備區(qū)搬運(yùn)總狀態(tài)機(jī)處于備區(qū)數(shù)據(jù)寫入狀態(tài)時(shí),若寫入標(biāo)志位為復(fù)位狀態(tài)、正確完成備區(qū)數(shù)據(jù)寫入操作且本次升級(jí)文件還未全部寫入備區(qū),則跳轉(zhuǎn)至主區(qū)數(shù)據(jù)讀取狀態(tài),并置位讀取標(biāo)志位,繼續(xù)執(zhí)行主區(qū)數(shù)據(jù)讀取操作,以及記錄備區(qū)操作地址和更新主區(qū)操作地址;若寫入標(biāo)志位為復(fù)位狀態(tài)、正確完成備區(qū)數(shù)據(jù)寫入操作且本次升級(jí)文件全部寫入備區(qū),則跳轉(zhuǎn)至備區(qū)標(biāo)志位寫入狀態(tài),并置位寫入標(biāo)志位,寫入備區(qū)的標(biāo)志位,以及將寫入備區(qū)的所有數(shù)據(jù)打包;
34、在主備區(qū)搬運(yùn)總狀態(tài)機(jī)處于備區(qū)標(biāo)志位寫入狀態(tài)時(shí),若寫入標(biāo)志位為復(fù)位狀態(tài)且正確完成備區(qū)標(biāo)志位寫入操作,則跳轉(zhuǎn)至第一空閑狀態(tài)。
35、在一種可能的實(shí)現(xiàn)方式中,主備區(qū)讀寫狀態(tài)機(jī)包括數(shù)據(jù)寫入狀態(tài)、數(shù)據(jù)讀取狀態(tài)、數(shù)據(jù)校驗(yàn)狀態(tài)、擦除狀態(tài)和第二空閑狀態(tài);
36、在主備區(qū)讀寫狀態(tài)機(jī)處于第二空閑狀態(tài)時(shí),若擦除標(biāo)志位處于置位狀態(tài),則跳轉(zhuǎn)至擦除狀態(tài);若寫入標(biāo)志位處于置位狀態(tài),則跳轉(zhuǎn)至數(shù)據(jù)寫入狀態(tài);若讀取標(biāo)志位處于置位狀態(tài),則跳轉(zhuǎn)至數(shù)據(jù)讀取狀態(tài);
37、在主備區(qū)讀寫狀態(tài)機(jī)處于擦除狀態(tài)時(shí),若擦除操作結(jié)束,則跳轉(zhuǎn)至第二空閑狀態(tài),并復(fù)位擦除標(biāo)志位;
38、在主備區(qū)讀寫狀態(tài)機(jī)處于數(shù)據(jù)寫入狀態(tài)時(shí),若數(shù)據(jù)寫入操作結(jié)束,則跳轉(zhuǎn)至數(shù)據(jù)讀取狀態(tài),并置位寫入標(biāo)志位;
39、在主備區(qū)讀寫狀態(tài)機(jī)處于數(shù)據(jù)讀取狀態(tài)時(shí),若數(shù)據(jù)讀取操作結(jié)束,則跳轉(zhuǎn)至數(shù)據(jù)校驗(yàn)狀態(tài);
40、在主備區(qū)讀寫狀態(tài)機(jī)處于數(shù)據(jù)校驗(yàn)狀態(tài)時(shí),若數(shù)據(jù)校驗(yàn)結(jié)果正常,則跳轉(zhuǎn)至第二空閑狀態(tài),并復(fù)位讀取標(biāo)志位和寫入標(biāo)志位;若數(shù)據(jù)校驗(yàn)結(jié)果異常,則重新進(jìn)行數(shù)據(jù)讀取或者數(shù)據(jù)寫入,并重新進(jìn)行數(shù)據(jù)校驗(yàn),直至數(shù)據(jù)校驗(yàn)結(jié)果正?;驍?shù)據(jù)校驗(yàn)次數(shù)達(dá)到預(yù)設(shè)次數(shù)。
41、第二方面,本專利技術(shù)實(shí)施例提供了一種在線升級(jí)裝置,待升級(jí)設(shè)備包括片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器,片外存儲(chǔ)器包括主區(qū)和備區(qū),主區(qū)用于存儲(chǔ)本次升級(jí)文件,備區(qū)用于存儲(chǔ)上次升級(jí)文件;上述在線升級(jí)裝置包括:
42、接收模塊,用于接收本次升級(jí)文件,并將本次升級(jí)文件寫入主區(qū);
43、預(yù)處理模塊,用于對(duì)待升級(jí)設(shè)備進(jìn)行在線升級(jí)預(yù)處理;
44、在線升級(jí)模塊,用于將主區(qū)的本次升級(jí)文件寫入片內(nèi)存儲(chǔ)器,以進(jìn)行在線升級(jí);
45、掉電處理模塊,用于若在在線升級(jí)的過程中,待升級(jí)設(shè)備掉電,則在待升級(jí)設(shè)備重新上電后,進(jìn)入引導(dǎo)加載程序,并基于備區(qū)存儲(chǔ)的文件或主區(qū)存儲(chǔ)的文件,完成本次升本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種在線升級(jí)方法,其特征在于,待升級(jí)設(shè)備包括片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器,所述片外存儲(chǔ)器包括主區(qū)和備區(qū),所述主區(qū)用于存儲(chǔ)本次升級(jí)文件,所述備區(qū)用于存儲(chǔ)上次升級(jí)文件;所述在線升級(jí)方法包括:
2.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,在所述將本次升級(jí)文件寫入所述主區(qū)之后,還包括:
3.根據(jù)權(quán)利要求2所述的在線升級(jí)方法,其特征在于,在所述讀取所述備區(qū)的當(dāng)前標(biāo)志位之后,所述基于所述備區(qū)存儲(chǔ)的文件或所述主區(qū)存儲(chǔ)的文件,完成本次升級(jí),還包括:
4.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,在所述接收本次升級(jí)文件之前,所述在線升級(jí)方法還包括:
5.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,所述接收本次升級(jí)文件,并將本次升級(jí)文件寫入所述主區(qū),包括:
6.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,在所述將所述主區(qū)的本次升級(jí)文件寫入所述片內(nèi)存儲(chǔ)器,以進(jìn)行在線升級(jí)的過程中,所述在線升級(jí)方法還包括:
7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的在線升級(jí)方法,其特征在于,在將所述主區(qū)的本次升級(jí)文件成功寫入所述片內(nèi)存儲(chǔ)器之后,所
8.根據(jù)權(quán)利要求7所述的在線升級(jí)方法,其特征在于,所述主備區(qū)搬運(yùn)總狀態(tài)機(jī)包括主區(qū)標(biāo)志位讀取狀態(tài)、備區(qū)擦除狀態(tài)、主區(qū)數(shù)據(jù)讀取狀態(tài)、備區(qū)數(shù)據(jù)寫入狀態(tài)、備區(qū)標(biāo)志位寫入狀態(tài)和第一空閑狀態(tài);
9.根據(jù)權(quán)利要求7所述的在線升級(jí)方法,其特征在于,所述主備區(qū)讀寫狀態(tài)機(jī)包括數(shù)據(jù)寫入狀態(tài)、數(shù)據(jù)讀取狀態(tài)、數(shù)據(jù)校驗(yàn)狀態(tài)、擦除狀態(tài)和第二空閑狀態(tài);
10.一種電子設(shè)備,其特征在于,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序,所述處理器用于調(diào)用并運(yùn)行所述存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,執(zhí)行如權(quán)利要求1至9中任一項(xiàng)所述的在線升級(jí)方法。
...【技術(shù)特征摘要】
1.一種在線升級(jí)方法,其特征在于,待升級(jí)設(shè)備包括片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器,所述片外存儲(chǔ)器包括主區(qū)和備區(qū),所述主區(qū)用于存儲(chǔ)本次升級(jí)文件,所述備區(qū)用于存儲(chǔ)上次升級(jí)文件;所述在線升級(jí)方法包括:
2.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,在所述將本次升級(jí)文件寫入所述主區(qū)之后,還包括:
3.根據(jù)權(quán)利要求2所述的在線升級(jí)方法,其特征在于,在所述讀取所述備區(qū)的當(dāng)前標(biāo)志位之后,所述基于所述備區(qū)存儲(chǔ)的文件或所述主區(qū)存儲(chǔ)的文件,完成本次升級(jí),還包括:
4.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,在所述接收本次升級(jí)文件之前,所述在線升級(jí)方法還包括:
5.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,所述接收本次升級(jí)文件,并將本次升級(jí)文件寫入所述主區(qū),包括:
6.根據(jù)權(quán)利要求1所述的在線升級(jí)方法,其特征在于,在所述將所述主區(qū)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:劉雄航,姜宇程,賴貴亮,王勇,
申請(qǐng)(專利權(quán))人:科華數(shù)據(jù)股份有限公司,
類型:發(fā)明
國(guó)別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。