一種dect手機(jī)的固件無(wú)線(xiàn)升級(jí)方法
【專(zhuān)利摘要】本發(fā)明一種DECT手機(jī)的固件無(wú)線(xiàn)升級(jí)方法,其固件升級(jí)數(shù)據(jù)包通過(guò)無(wú)線(xiàn)通信方式經(jīng)由主機(jī)發(fā)送給手柄,升級(jí)過(guò)程完全放棄傳統(tǒng)數(shù)據(jù)線(xiàn);在升級(jí)失敗,或者人為中斷升級(jí)的時(shí)候?qū)⒅貑⑦M(jìn)入安全模式,放棄對(duì)FFS數(shù)據(jù)的依賴(lài),而使得被升級(jí)端能夠滿(mǎn)足最低啟動(dòng)要求然后繼續(xù)升級(jí);手柄接收完數(shù)據(jù)后,僅返回校驗(yàn)碼給主機(jī),而不是返回所有的接收數(shù)據(jù)給主機(jī)進(jìn)行核對(duì),數(shù)據(jù)傳輸量大大減少,縮短了傳輸時(shí)間;本發(fā)明的固件升級(jí)分兩部分,可以分開(kāi)進(jìn)行升級(jí),在普通情況下如果只是更新程序而沒(méi)有更新資源的情況下,升級(jí)其中的第一部分,可以大幅度減少升級(jí)時(shí)間,提高升級(jí)效率。
【專(zhuān)利說(shuō)明】 一種DECT手機(jī)的固件無(wú)線(xiàn)升級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種DECT手機(jī)的固件無(wú)線(xiàn)升級(jí)方法。
【背景技術(shù)】
[0002]對(duì)于數(shù)字增強(qiáng)無(wú)繩通信(DECT)手機(jī)來(lái)說(shuō),因?yàn)榫哂袩o(wú)線(xiàn)通訊的特征而非常具有競(jìng)爭(zhēng)力,但是傳統(tǒng)對(duì)于其固件升級(jí)仍然依賴(lài)數(shù)據(jù)線(xiàn),并且受限于無(wú)線(xiàn)傳輸速率、空間不夠等問(wèn)題,導(dǎo)致開(kāi)發(fā)困難。DECT手機(jī)包含兩種數(shù)據(jù),一種為APP,為可執(zhí)行程序數(shù)據(jù),一種為FFS,為存儲(chǔ)普通數(shù)據(jù)的文件系統(tǒng)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種不依賴(lài)數(shù)據(jù)線(xiàn)且低硬件消耗的DECT的固件無(wú)線(xiàn)升級(jí)方法。
[0004]一種DECT手機(jī)的固件無(wú)線(xiàn)升級(jí)方法,包括如下步驟:
步驟I、設(shè)定手柄的SPI Flash前面一部分為文件系統(tǒng)區(qū)域,后面一部分為APP副本區(qū)域,更新完文件系統(tǒng)后再更新APP副本;
步驟2、由主機(jī)或者手柄發(fā)起升級(jí)請(qǐng)求,主機(jī)和手柄開(kāi)啟無(wú)線(xiàn)升級(jí)協(xié)議棧,主機(jī)根據(jù)配置信息去遠(yuǎn)程服務(wù)器下載數(shù)據(jù)包,并將下載好的數(shù)據(jù)包存放于開(kāi)辟好的內(nèi)存中;
步驟3、主機(jī)對(duì)手柄運(yùn)行軟件版本進(jìn)行獲取,如果版本一樣或者已更新則跳過(guò)升級(jí),升級(jí)結(jié)束,否則進(jìn)入步驟4;
步驟4、升級(jí)開(kāi)始,手柄先擦除SPI Flash,手柄接收主機(jī)發(fā)送過(guò)來(lái)的壓縮數(shù)據(jù),在整個(gè)壓縮數(shù)據(jù)接收過(guò)程中,該壓縮數(shù)據(jù)對(duì)齊到1K,手柄對(duì)壓縮數(shù)據(jù)進(jìn)行校驗(yàn)并且解壓,寫(xiě)入到SPI Flash前面的文件系統(tǒng)區(qū)域中,所述的壓縮數(shù)據(jù)先解壓后全部存入文件系統(tǒng)區(qū)域中還原成一個(gè)完整的原始數(shù)據(jù)塊后再更新到APP副本區(qū)域,如果在擦除或者寫(xiě)入過(guò)程中被中斷,則會(huì)啟動(dòng)進(jìn)入安全模式,并回到步驟2 ;
步驟5、手柄接收完數(shù)據(jù)后進(jìn)行CRC校驗(yàn),在對(duì)所有的數(shù)據(jù)完成CRC校驗(yàn)的時(shí)候,自動(dòng)生產(chǎn)一個(gè)校驗(yàn)碼,并將該校驗(yàn)碼發(fā)送給主機(jī),主機(jī)對(duì)該校驗(yàn)碼確認(rèn)準(zhǔn)確無(wú)誤后向手柄發(fā)送命令使之重啟;
步驟6、手柄重啟后馬上進(jìn)入Bootloader讀取文件系統(tǒng)查看是否有升級(jí)APP的需要,如果有,進(jìn)入本地升級(jí)模式,轉(zhuǎn)步驟7,否則升級(jí)完成;
步驟7、手柄進(jìn)入本地升級(jí)模式,對(duì)需要拷貝的APP副本數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)正確則對(duì)可執(zhí)行程序區(qū)域擦除,然后進(jìn)行數(shù)據(jù)搬運(yùn),由將文件自APP副本區(qū)域往APP區(qū)域拷貝,當(dāng)所有的數(shù)據(jù)都寫(xiě)進(jìn)APP區(qū)域的時(shí)候進(jìn)行數(shù)據(jù)對(duì)比,對(duì)比正確后擦除待升級(jí)標(biāo)志位,將手柄中的原始數(shù)據(jù)清空,下一次重啟則可以正常進(jìn)入系統(tǒng),升級(jí)完成。
[0005]本發(fā)明的固件升級(jí)數(shù)據(jù)包通過(guò)無(wú)線(xiàn)通信方式經(jīng)由主機(jī)發(fā)送給手柄,升級(jí)過(guò)程完全放棄傳統(tǒng)數(shù)據(jù)線(xiàn);在升級(jí)失敗,或者人為中斷升級(jí)的時(shí)候?qū)⒅貑⑦M(jìn)入安全模式,放棄對(duì)FFS數(shù)據(jù)的依賴(lài),而使得被升級(jí)端能夠滿(mǎn)足最低啟動(dòng)要求然后繼續(xù)升級(jí);手柄接收完數(shù)據(jù)后,僅返回校驗(yàn)碼給主機(jī),而不是返回所有的接收數(shù)據(jù)給主機(jī)進(jìn)行核對(duì),數(shù)據(jù)傳輸量大大減少,縮短了傳輸時(shí)間;本發(fā)明的固件升級(jí)分兩部分,可以分開(kāi)進(jìn)行升級(jí),在普通情況下如果只是更新程序而沒(méi)有更新資源的情況下,升級(jí)其中的第一部分,可大幅度減少升級(jí)時(shí)間,提高升級(jí)效率。
【具體實(shí)施方式】
[0006]本發(fā)明一種DECT手機(jī)的固件無(wú)線(xiàn)升級(jí)方法,具體包括如下步驟:
步驟I、設(shè)定手柄的SPI Flash前面一部分為文件系統(tǒng)區(qū)域,后面一部分為APP副本區(qū)域,更新完文件系統(tǒng)后再更新APP副本;
步驟2、由主機(jī)或者手柄發(fā)起升級(jí)請(qǐng)求,主機(jī)和手柄開(kāi)啟無(wú)線(xiàn)升級(jí)協(xié)議棧,主機(jī)根據(jù)配置信息去遠(yuǎn)程服務(wù)器下載數(shù)據(jù)包,并將下載好的數(shù)據(jù)包存放于開(kāi)辟好的內(nèi)存中;
步驟3、主機(jī)對(duì)手柄運(yùn)行軟件版本進(jìn)行獲取,如果版本一樣或者已更新則跳過(guò)升級(jí),升級(jí)結(jié)束,否則進(jìn)入步驟4;
步驟4、升級(jí)開(kāi)始,手柄先擦除SPI Flash,手柄接收主機(jī)發(fā)送過(guò)來(lái)的壓縮數(shù)據(jù),在整個(gè)壓縮數(shù)據(jù)接收過(guò)程中,該壓縮數(shù)據(jù)是對(duì)齊到IK的,這樣每次發(fā)送的真實(shí)寫(xiě)入地址都是可以被很簡(jiǎn)單記錄,可以避免手機(jī)接收到數(shù)據(jù)后寫(xiě)入位置出錯(cuò),手柄對(duì)壓縮數(shù)據(jù)進(jìn)行校驗(yàn),并且解壓,寫(xiě)入到SPI Flash前面的文件系統(tǒng)區(qū)域中,所述的壓縮數(shù)據(jù)先解壓后全部存入文件系統(tǒng)區(qū)域中還原成一個(gè)完整的原始數(shù)據(jù)塊后再更新到APP副本區(qū)域,如果在擦除或者寫(xiě)入過(guò)程中被中斷,則會(huì)啟動(dòng)進(jìn)入安全模式,并回到步驟2 ;
步驟5、手柄接收完數(shù)據(jù)后進(jìn)行CRC校驗(yàn),在對(duì)所有的數(shù)據(jù)完成CRC校驗(yàn)的時(shí)候,自動(dòng)生產(chǎn)一個(gè)三十二位長(zhǎng)度的校驗(yàn)碼,并將該校驗(yàn)碼發(fā)送給主機(jī),主機(jī)對(duì)該校驗(yàn)碼確認(rèn)準(zhǔn)確無(wú)誤后向手柄發(fā)送命令使之重啟;
步驟6、手柄重啟后馬上進(jìn)入Bootloader讀取文件系統(tǒng)查看是否有升級(jí)APP的需要,如果有,進(jìn)入本地升級(jí)模式,轉(zhuǎn)步驟7,否則升級(jí)完成;
步驟7、手柄進(jìn)入本地升級(jí)模式,對(duì)需要拷貝的APP副本數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)正確則對(duì)可執(zhí)行程序區(qū)域擦除,然后進(jìn)行數(shù)據(jù)搬運(yùn),由將文件自APP副本區(qū)域往APP區(qū)域拷貝,當(dāng)所有的數(shù)據(jù)都寫(xiě)進(jìn)APP區(qū)域的時(shí)候進(jìn)行數(shù)據(jù)對(duì)比,對(duì)比正確后擦除待升級(jí)標(biāo)志位,將手柄中的原始數(shù)據(jù)清空,下一次重啟則可以正常進(jìn)入系統(tǒng),升級(jí)完成。
[0007]以上只有第五步是具有原子性,第六步不會(huì)影響升級(jí)過(guò)程,只要未執(zhí)行完第五步都不算升級(jí)成功,但是可以無(wú)限制的重啟并重新開(kāi)始升級(jí)(只要APP副本數(shù)據(jù)未損壞)。該種做法可以在任何情況下完全保證升級(jí)成功(包含非常低的概率重復(fù)事件)。
[0008]以上所述,僅是本發(fā)明較佳實(shí)施例而已,并非對(duì)本發(fā)明的技術(shù)范圍作任何限制,故凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何細(xì)微修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【權(quán)利要求】
1. 一種DECT手機(jī)的固件無(wú)線(xiàn)升級(jí)方法,其特征在于包括如下步驟: 步驟I、設(shè)定手柄的SPI Flash前面一部分為文件系統(tǒng)區(qū)域,后面一部分為APP副本區(qū)域,更新完文件系統(tǒng)后再更新APP副本; 步驟2、由主機(jī)或者手柄發(fā)起升級(jí)請(qǐng)求,主機(jī)和手柄開(kāi)啟無(wú)線(xiàn)升級(jí)協(xié)議棧,主機(jī)根據(jù)配置信息去遠(yuǎn)程服務(wù)器下載數(shù)據(jù)包,并將下載好的數(shù)據(jù)包存放于開(kāi)辟好的內(nèi)存中; 步驟3、主機(jī)對(duì)手柄運(yùn)行軟件版本進(jìn)行獲取,如果版本一樣或者已更新則跳過(guò)升級(jí),升級(jí)結(jié)束,否則進(jìn)入步驟4; 步驟4、升級(jí)開(kāi)始,手柄先擦除SPI Flash,手柄接收主機(jī)發(fā)送過(guò)來(lái)的壓縮數(shù)據(jù),在整個(gè)壓縮數(shù)據(jù)接收過(guò)程中,該壓縮數(shù)據(jù)對(duì)齊到1K,手柄對(duì)壓縮數(shù)據(jù)進(jìn)行校驗(yàn)并且解壓,寫(xiě)入到SPI Flash前面的文件系統(tǒng)區(qū)域中,所述的壓縮數(shù)據(jù)先解壓后全部存入文件系統(tǒng)區(qū)域中還原成一個(gè)完整的原始數(shù)據(jù)塊后再更新到APP副本區(qū)域,如果在擦除或者寫(xiě)入過(guò)程中被中斷,則會(huì)啟動(dòng)進(jìn)入安全模式,并回到步驟2 ; 步驟5、手柄接收完數(shù)據(jù)后進(jìn)行CRC校驗(yàn),在對(duì)所有的數(shù)據(jù)完成CRC校驗(yàn)的時(shí)候,自動(dòng)生產(chǎn)一個(gè)校驗(yàn)碼,并將該校驗(yàn)碼發(fā)送給主機(jī),主機(jī)對(duì)該校驗(yàn)碼確認(rèn)準(zhǔn)確無(wú)誤后向手柄發(fā)送命令使之重啟; 步驟6、手柄重啟后馬上進(jìn)入Bootloader讀取文件系統(tǒng)查看是否有升級(jí)APP的需要,如果有,進(jìn)入本地升級(jí)模式,轉(zhuǎn)步驟7,否則升級(jí)完成; 步驟7、手柄進(jìn)入本地升級(jí)模式,對(duì)需要拷貝的APP副本數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)正確則對(duì)可執(zhí)行程序區(qū)域擦除,然后進(jìn)行數(shù)據(jù)搬運(yùn),由將文件自APP副本區(qū)域往APP區(qū)域拷貝,當(dāng)所有的數(shù)據(jù)都寫(xiě)進(jìn)APP區(qū)域的時(shí)候進(jìn)行數(shù)據(jù)對(duì)比,對(duì)比正確后擦除待升級(jí)標(biāo)志位,將手柄中的原始數(shù)據(jù)清空,下一次重啟則可以正常進(jìn)入系統(tǒng),升級(jí)完成。
【文檔編號(hào)】G06F9/445GK103533534SQ201310481001
【公開(kāi)日】2014年1月22日 申請(qǐng)日期:2013年10月15日 優(yōu)先權(quán)日:2013年10月15日
【發(fā)明者】曾炳陽(yáng), 黃志堅(jiān) 申請(qǐng)人:廈門(mén)億聯(lián)網(wǎng)絡(luò)技術(shù)股份有限公司