新四季網

一種晶片固件的升級方法和系統的製作方法

2023-07-09 10:30:16 1

一種晶片固件的升級方法和系統的製作方法
【專利摘要】本發明公開了一種晶片固件的升級方法和升級系統,通過在進入固件升級過程中將升級失敗標誌位置位以及根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。據此,當發生斷電、數據傳輸錯誤等狀況導致固件升級失敗後,基於所述升級失敗標誌位的作用,晶片重啟後不運行應用程式,進而充分避免了固件程序跑飛的問題。
【專利說明】一種晶片固件的升級方法和系統
【技術領域】
[0001]本發明屬於晶片領域,具體涉及一種晶片固件的升級方法和系統。
【背景技術】
[0002]消費類電子產品中,晶片作為控制晶片被廣泛利用。在實際使用過程中,運行在晶片中的程序需要最終用戶可以方便地升級,升級的方法大都通過固件升級方法(也即DFU,其英文全名為Device Firmware Upgrade)來實現。隨著消費類電子產品的功能越來越強大,傳統的8位/16位晶片日益無法滿足應用的需求,因此,32位的ARM-Cortex-MO晶片也越來越廣泛地被使用。各大晶片製造商也紛紛推出自己的MO晶片。且,USB接口是當前應用非常廣泛的接口,其具有速度快、穩定性高、通用性好等諸多優點。
[0003]但是,對於基於USB通信的ARM-Cortex-MO晶片,如果採用上述的傳統固件升級方法,在固件升級過程中,不可避免的發生斷電、數據傳輸錯誤等狀況,進而導致估計固件升級失敗,並進一步導致了,ARM-Cortex-MO晶片重啟後直接啟動讀取不完整或者錯誤數據而發生固件程序跑飛。
[0004]基於此,本發明提供了一種晶片固件的升級方法以系統。

【發明內容】

[0005]本發明的目的在於提供一種晶片固件的升級方法,用於解決上述的固件升級失敗所導致的固件程序跑飛的問題。
[0006]本發明的目的還在於提供一種基於晶片固件的升級系統,用於防止晶片固件的升級失敗而導致重啟後固件程序跑飛。
[0007]基於上述的第一目的,本發明提供了一種晶片固件的升級方法,該方法包括:
[0008]步驟1,判斷是否要進行一晶片固件的升級,是則執行步驟2,否則正常運行所述固件;
[0009]步驟2,獲取固件升級數據,並將升級失敗標誌位置位;
[0010]步驟3,根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。
[0011]可選的,所述的方法還包括:設置升級組合按鍵,用於在按照步驟I至3正確執行所述固件的升級後出現異常情況而導致所述固件的升級失敗後,觸發升級組合按鍵,重新進行固件升級。
[0012]可選的,步驟I中,通過運行中的所述晶片固件實時監控其升級標誌位是否被置位來判斷是否要進行升級,若所述升級標誌位被置位,則開始升級過程;和/或,
[0013]步驟2中,從與晶片通信的上位機或者網際網路上獲取固件升級數據,獲取的固件升級數據以及升級失敗標誌位均保存在非易失性存儲器的程序管理區;所述固件運行在所述非易失性存儲器的用戶程序存儲區;[0014]其中,所述升級標誌位通過所述與晶片通信的上位機或者網際網路或者所述升級組合按鍵進行置位。
[0015]可選的,步驟3中,根據所述固件升級數據進行所述固件升級,包括:
[0016]按順序從所述程序管理區中讀取所述固件升級數據的數據包並寫入所述用戶程序存儲區中,讀取的每個數據包攜帶相應的單校驗碼,所述固件升級數據攜帶一總校驗碼;
[0017]每完成一個數據包的讀取和寫入,讀取所述用戶程序存儲區並生成一個單數據包校驗碼;比對所生成的單數據包校驗碼與所述數據包所攜帶的單校驗碼,如果不相等則重新進行該數據包的讀取和寫入,如果相等則進行下一個數據包的讀取和寫入;
[0018]完成全部所述數據包的讀取和寫入後,讀取所述用戶程序存儲區並生成一個總數據包校驗碼;比對所生成的總數據包校驗碼與所述固件升級數據所攜帶的總校驗碼,如果不相等則重新根據所述固件升級數據進行所述固件升級。
[0019]可選的,所述的方法還包括:
[0020]保留所述升級失敗標誌位的置位狀態並結束本次升級之後,更新所述固件的固件升級數據,以重新發起所述固件的升級,循環步驟I至3進入所述固件的下次升級。
[0021]本發明還提供一種晶片固件升級系統,包括:
[0022]判斷單元,用於判斷是否要進行一晶片固件的升級,並在確定要進行所述晶片固件的升級時啟動所述晶片固件的升級過程;
[0023]固件升級數據加載單元,用於獲取固件升級數據,並將升級失敗標誌位置位;以及
[0024]固件升級單元,用於根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。
[0025]可選的,所述的系統還包括:升級組合按鍵,用於在判斷單元、固件升級數據加載單元以及固件升級單元正確執行所述固件的升級後出現異常情況而導致所述固件的升級失敗後,觸發而使得判斷單元、固件升級數據加載單元以及固件升級單元重新對所述晶片固件進行固件升級。
[0026]可選的,所述系統還包括:非易失性存儲器;
[0027]所述固件運行在所述非易失性存儲器的用戶程序存儲區,所述判斷單元通過運行中的所述晶片固件實時監控其升級標誌位是否被置位來判斷是否要進行升級,若所述升級標誌位被置位,則開始升級過程;和/或,
[0028]獲取的固件升級數據以及升級失敗標誌位均保存在非易失性存儲器的程序管理區,所述固件升級數據加載單元從與晶片通信的上位機或者網際網路上獲取固件升級數據;
[0029]其中,所述升級標誌位通過所述與晶片通信的上位機或者網際網路或者所述升級組合按鍵進行置位。
[0030]可選的,所述固件升級單元還用於:
[0031]按順序從所述程序管理區中讀取所述固件升級數據的數據包並寫入所述用戶程序存儲區中,讀取的每個數據包攜帶相應的單校驗碼,所述固件升級數據攜帶一總校驗碼;
[0032]每完成一個數據包的讀取和寫入,讀取所述用戶程序存儲區並生成一個單數據包校驗碼;比對所生成的單數據包校驗碼與所述數據包所攜帶的單校驗碼,如果不相等則重新進行該數據包的讀取和寫入,如果相等則進行下一個數據包的讀取和寫入;
[0033]完成全部所述數據包的讀取和寫入後,讀取所述用戶程序存儲區並生成一個總數據包校驗碼;比對所生成的總數據包校驗碼與所述固件升級數據所攜帶的總校驗碼,如果不相等則重新根據所述固件升級數據進行所述固件升級。
[0034]可選的,所述系統還包括位於固件升級數據發布端的刷機單元,用於在所述固件升級單元保留所述升級失敗標誌位的置位狀態並結束本次升級之後,更新所述固件的固件升級數據,以重新發起所述固件的升級,進入所述固件的下次升級。
[0035]本發明所提供的晶片固件的升級方法和升級系統,通過在進入固件升級過程中將升級失敗標誌位置位以及根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。據此,當發生斷電、數據傳輸錯誤等狀況導致固件升級失敗後,基於所述升級失敗標誌位的作用,晶片重啟後不運行應用程式,進而充分避免了固件程序跑飛的問題。
【專利附圖】

【附圖說明】
[0036]圖1為本發明的晶片固件的升級方法的實施例的流程圖;
[0037]圖2是本發明的晶片固件的升級系統的架構圖;
[0038]圖3為本發明的晶片固件的升級系統的應用實施例圖。
【具體實施方式】
[0039]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0040]方法的實施例
[0041]圖1為本發明晶片的固件升級方法的實施例的流程圖,圖1中的晶片的固件升級方法,其能夠充分避免因固件升級失敗而導致固件程序跑飛的問題,因此,能夠有效的適用於基於USB通信的晶片,尤其是基於USB通信的ARM-Cortex-MO晶片。
[0042]該方法包括如下步驟:
[0043]步驟1,判斷是否要進行一晶片固件的升級,是則執行步驟2,否則正常運行所述固件;
[0044]步驟2,獲取固件升級數據,並將升級失敗標誌位(Dirty Flag)置位;
[0045]步驟3,根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。
[0046]所述的方法還包括:步驟4,設置升級組合按鍵,用於在按照步驟I至3正確執行所述固件的升級後出現異常情況而導致所述固件的升級失敗後,觸發升級組合按鍵,重新進行固件升級。設置升級組合按鍵為了防止出現因其他各種異常原因而導致固件程序被篡改等而無法正常進入DFU的情況(即所述固件的升級失敗),升級組合按鍵啟動升級的機制保證了只要能夠獲取正確的固件升級數據以及正確的將升級失敗標誌位置位就可以對固件進行正常升級操作,可實現強制開啟固件升級模式進行升級。
[0047]本實施例的步驟I中,通過運行中的所述晶片固件實時監控其升級標誌位(DFUFlag)是否被置位來判斷是否要進行升級,若所述升級標誌位被置位(即被有效置位,例如預設的有效置位為I,則所述升級標誌位被置位為I),則開始升級過程。即在晶片正常運行程序時,接收到固件更新指令,將所述升級標誌位DFU Flag置位,未接收到固件更新指令時,所述升級標誌位DFUFlag為清空狀態。
[0048]本實施例的晶片(MCU)具有通過Uart/USB等與上位機通信的功能,例如USB通信接口。因此在步驟2中,從與晶片通信的上位機或者網際網路上獲取固件升級數據,獲取的固件升級數據以及升級失敗標誌位均保存在非易失性存儲器(例如是FLASH)的程序管理區LDROM ;所述固件運行在所述非易失性存儲器的用戶程序存儲區APROM ;APROM和LDROM是兩個邏輯獨立的用來存儲程序的ROM區;本發明的升級方法可以設置從上述兩個區域的任何一個啟動,並方便的通過軟體進行配置和切換,包括:從LDROM啟動並可以擦寫/燒寫APROM區域(ISP功能)來實現DFU功能;以及從APROM啟動來實現Application (固件程序運行)的功能。
[0049]本實施例中,所述升級標誌位(DFU FLAG)通過所述與晶片通信的上位機或者網際網路或者所述升級組合按鍵進行置位。所述非易失性存儲器具有斷電保護功能,升級標誌位(DFU Flag)和升級失敗標誌位(Dirty Flag)的信息都保存在非易失性存儲器的獨立的DataFlash區域,實現掉電不丟失數據。
[0050]步驟2中獲取的固件升級數據分成至少一個數據包,升級時依次被讀取和寫入。由此,本實施例的步驟3中,根據所述固件升級數據進行所述固件升級,包括:
[0051]按順序從所述程序管理區中讀取所述固件升級數據的數據包並寫入所述用戶程序存儲區中,讀取的每個數據包攜帶相應的單校驗碼(所述校驗碼即為checksuml,所述固件升級數據攜帶一總校驗碼(所述校驗碼即為checksum2 ;
[0052]每完成一個數據包的讀取和寫入,讀取所述用戶程序存儲區並生成一個單數據包校驗碼;比對所生成的單數據包校驗碼與所述數據包所攜帶的單校驗碼,如果不相等則重新進行該數據包的讀取和寫入,如果相等則進行下一個數據包的讀取和寫入,該步驟對每一個數據包的讀取和寫入的準確性進行監測,用於確保所讀取和寫入的每一個數據包的準確性;
[0053]完成全部所述數據包的讀取和寫入後,讀取所述用戶程序存儲區並生成一個總數據包校驗碼;比對所生成的總數據包校驗碼與所述固件升級數據所攜帶的總校驗碼,如果不相等則重新根據所述固件升級數據進行所述固件升級,該步驟用於進一步確定,全包固件升級數據的整體校核,以確保固件升級的準確性。
[0054]在本發明的一個實施例中,根據所述固件升級數據進行所述固件升級包括:為每一個數據包的讀取和寫入設置一個限定時間;如果超過所述限定時間,則重新進行該數據包的讀取和寫入。該步驟主要用於防止因某個數據包的讀取或者寫入發生意外而導致固件升級中斷,一旦某個數據包的讀取或者寫入發生意外並超過所述限定時間,則該數據包被重新讀取和寫入。
[0055]在本發明的另一個實施例中,所根據所述固件升級數據進行所述固件升級還進一步包括:每完成一個數據包的讀取和寫入,將該數據包中的次序碼加I;獲取對應於加I後的所述次序碼的數據包,並寫入到用戶程序存儲區中。所述次序碼例如可以是數據包中的Package-No。該步驟主要用於確保所述至少一個數據包按照次序逐個被讀取和寫入,以及用於確保斷電重啟後,能夠直接讀取固件升級數據的讀取和寫入的進度,實現斷點續傳。
[0056]該步驟在具體實施時,例如可以是:當完成一個數據包的讀取和寫入後,將該數據包中的次序碼加1,即次序碼由I變為2 ;上位機如果沒有接收到次序碼為2的反饋信息,則重新發送次序碼為I的數據包,直至上位機接收到次序碼為2的反饋信息後,選擇對應於次序碼2的數據包進行發送。該實施方式中,各數據包的次序碼編排為I開始的連續自然數。
[0057]該步驟在具體實施時,例如還可以是:當完成一個數據包的讀取和寫入後,將該數據包中的次序碼加1,即次序碼由2變為3 ;上位機如果沒有接收到次序碼為3的反饋信息,則重新發送次序碼為2的數據包,直至上位機接收到次序碼為3的反饋信息後,選擇對應於次序碼4的數據包進行發送。該實施方式中,各數據包的次序碼編排為2開始的連續偶數。
[0058]本實施例中,在步驟3的保留所述升級失敗標誌位的置位狀態並結束本次升級之後,上位機更新所述固件的固件升級數據,以重新發出所述固件的升級的指令,循環步驟I至3進入所述固件的下次升級。
[0059]本發明所述的晶片(MCU)可以是8位/16位的傳統晶片,也可以是32位的ARM-Cortex-MO晶片,該實施例以32位的ARM-Cortex-MO晶片進行描述。為實現通過本發明的固件升級方法對所述晶片固件進行升級,所以適用於本發明的晶片至少具有如下特點:
[0060]1、至少具有APROM和LDROM兩個邏輯獨立的ROM區,分別用於存儲程序。
[0061]2、能夠設置從APROM和LDROM的任何一個啟動,並能夠通過軟體進行配置和切換。例如,從LDROM啟動實現DFU功能;從APROM啟動來實現Application (運行程序)的功能。
[0062]5、具有至少一個獨立的DataFlash區域,所述DataFlash區域具有斷電保護功能,掉電不丟失數據,用於存儲升級失敗標誌位(Dirty Flag)。
[0063]6、具有ISP功能,也即程序燒錄功能,用於實現通過LDROM擦寫/燒寫APROM區域。
[0064]7、具有Uart/USB等與上位機通信的功能,通過USB通信方式實現更快速、更穩定傳輸固件升級數據。
[0065]晶片固件升級系統的實施例
[0066]圖2是本發明晶片固件升級系統的實施例的架構圖。該實施例所公開的晶片固件升級系統是基於實施例一所描述的固件升級方法的系統,實施例一所描述的技術方案也屬於該實施例,實施例一已經公開的技術方案不再重複描述。
[0067]本實施例中,升級標誌的置位通過上位機I和升級組合按鍵205。本實施例的晶片固件升級系統2包括:
[0068]判斷單元201,用於判斷是否要進行一晶片固件的升級,並在確定要進行所述晶片固件的升級時啟動所述晶片固件的升級過程;
[0069]固件升級數據加載單元202,用於獲取固件升級數據,並將升級失敗標誌位置位;以及
[0070]固件升級單元203,用於根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。
[0071]本實施例中,所述的系統還包括:升級組合按鍵204,用於在判斷單元201、固件升級數據加載單元202以及固件升級單元203正確執行所述固件的升級後出現異常情況而導致所述固件的升級失敗後,觸發而使得判斷單元201、固件升級數據加載單元202以及固件升級單元203重新對所述晶片固件進行固件升級。
[0072]本實施例中,所述系統還包括:非易失性存儲器205,所述固件運行在所述非易失性存儲器的用戶程序存儲區,獲取的固件升級數據以及升級失敗標誌位均保存在非易失性存儲器的程序管理區;所述判斷單元201通過運行中的所述晶片固件實時監控其升級標誌位是否被置位來判斷是否要進行升級,若所述升級標誌位被置位,則開始升級過程;所述固件升級數據加載單元202從與晶片通信的上位機或者網際網路上獲取固件升級數據;其中,所述升級標誌位通過所述與晶片通信的上位機或者網際網路或者所述升級組合按鍵進行置位。
[0073]因此,本實施例中,所述固件升級單元還用於:
[0074]按順序從所述程序管理區中讀取所述固件升級數據的數據包並寫入所述用戶程序存儲區中,讀取的每個數據包攜帶相應的單校驗碼,所述固件升級數據攜帶一總校驗碼;
[0075]每完成一個數據包的讀取和寫入,讀取所述用戶程序存儲區並生成一個單數據包校驗碼;比對所生成的單數據包校驗碼與所述數據包所攜帶的單校驗碼,如果不相等則重新進行該數據包的讀取和寫入,如果相等則進行下一個數據包的讀取和寫入;
[0076]完成全部所述數據包的讀取和寫入後,讀取所述用戶程序存儲區並生成一個總數據包校驗碼;比對所生成的總數據包校驗碼與所述固件升級數據所攜帶的總校驗碼,如果不相等則重新根據所述固件升級數據進行所述固件升級。
[0077]本實施例中,所述系統還包括位於固件升級數據發布端的刷機單元206,用於在所述固件升級單元203保留所述升級失敗標誌位的置位狀態並結束本次升級之後,更新所述固件的固件升級數據,以重新發起所述固件的升級,進入所述固件的下次升級。
[0078]晶片固件的升級系統的應用實施例
[0079]圖3是本發明晶片的固件升級方法的應用實施例的流程圖,該實施例是實施例一所描述的方法的一個具體應用,實施例一所描述的技術方案也屬於該實施例,實施例一已經公開的技術方案不再重複描述。該實施例中,升級標誌位是通過與晶片通信的上位機實現的。
[0080]為使圖中的流程更清晰,圖中未標示各步驟的序號。
[0081 ] 該應用實施例的方法包括:
[0082]步驟S301,系統上電:啟動晶片的非易失性存儲器205,即LDR0M。
[0083]步驟S302,判斷單元201確定是否要進行升級:是則執行步驟S310,否則執行步驟S303。與實施例一描述的技術方案相同,該判斷依據包括查看升級標誌位是否被置位,以及判斷升級組合按鍵是否被觸發。
[0084]步驟S303,正常運行固件:即發出運行固件的指令至APR0M。
[0085]步驟S304,運行固件:非易失性存儲器205即APROM收到指令後,運行固件。
[0086]步驟S305,清空DFU Flag:即清空所述升級標誌位,確保在未接收到固件更新指令時,所述升級標誌位DFU Flag為清空狀態。
[0087]步驟S306,固件3正常工作:即循環運行固件。[0088]步驟S307,是否有升級命令:即監測接收到固件更新指令,是則執行步驟S308,否則執行步驟S306。
[0089]步驟S308,DFU Flag置位:即被有效置位,例如預設的有效置位為1,則所述升級標誌位被置位為I。
[0090]步驟S309,進入升級過程:即開始進行固件升級。
[0091]步驟S310,與上位機通信:即通過USB通信的HID協議,與上位機I進行對話。
[0092]步驟S311,固件升級數據加載單元202對Dirty Flag置位:所述Dirty Flag存儲在非易失性存儲器205中,即存儲在LDROM中,防止斷電丟失數據。
[0093]步驟S312,固件升級數據加載單元202獲取固件升級數據:即,通過HID協議與上位機I進行升級數據的傳輸,獲取升級數據。
[0094]步驟S313,固件升級單元202將固件升級數據寫入APROM:通過晶片的ISP功能將固件升級數據寫入到APROM中,進行固件升級。
[0095]步驟S314,固件升級單元203校驗寫入是否正確:與實施例一所描述的技術方案相同,通過單校驗碼和總校驗碼分別比對來確定寫入的固件是否正確,是則執行步驟S315,否則執行步驟S316。
[0096]步驟S315,固件升級單元203清空Dirty Flag:即固件升級成功,執行步驟S303。
[0097]步驟S316,固件升級失敗:退出本次升級,不執行步驟S303,等待重新升級。
[0098]上述應用實施例`中有以下幾個特點
[0099]UDFU Flag:
[0100]該標誌位位於DataFlash中;該標誌位由APROM程序置位/清空,LDROM程序讀,並判斷狀態;
[0101]2、如何進入DFU:
[0102]APROM程序啟動時,將DFU Flag清空,並正常運行Application ;上位機通過發送USB命令來控制MO晶片是否進入DFU ;M0晶片收到該命令後,將DFU Flag置位,並重啟進入DFU狀態;
[0103]3、DFU 判斷:
[0104]MO晶片總是從LDROM啟動,通過讀取DFU Flag以及其他判斷條件,確定是否進入DFU ;如果不滿足DFU的條件,直接重啟進入APR0M,MO晶片正常啟動Application ;
[0105]4、DFU 過程:
[0106]同步:在發送APROM數據之前,上位機會發若干次同步命令給晶片;得到晶片的回覆之後。進入數據傳輸階段;
[0107]數據傳輸:通過HID協議,上位機將APROM的數據發送給晶片;晶片收到數據後,更新相應的APROM區域;並完成校驗等操作。
[0108]5、DFU 結束:
[0109]上位機計算DFU文件的checksum並發送給晶片;晶片收到後,計算APROM有效區域的checksum ;如果兩者相等,晶片重啟進入APR0M, MO晶片正常啟動,運行Application ;否則,通過Led等外圍設備指示DFU失敗;這裡的checksum包括每個數據包的單校驗碼(所述校驗碼即為checksuml和總數據的總校驗碼checksum〗。
[0110]6、異常處理:[0111]I) HID數據包錯誤以及APROM寫錯誤:
[0112]晶片收到每一個數據包之後,燒寫相應位置的APROM ;寫操作結束後,會讀相應的區域並計算checksum,將checksum返回給上位機;由上位機判斷該checksum是否正確。如果不正確,該數據包會被重發;直到上位機收到正確的checksum ;
[0113]2) HID數據包丟失:
[0114]上位機設計了超時機制,在規定時間內沒有收到晶片的checksum返回值,上位機
將自動重發;
[0115]3) HID 數據包的 Package No:
[0116]上位機發送的數據中,有一個字節用來標識包的Package No;晶片回復時,會將這個 Package No 加 I。
[0117]4) Dirty Flag:
[0118]為了防止DFU失敗之後,APROM寫入錯誤數據後,重啟晶片而導致程序跑飛,設計Dirty Flag標誌位。DFU數據傳輸開始時,將Dirty Flag置位,DFU正常退出時,將DirtyFlag清空;
[0119]Dirty Flag存儲在DataFlash中,不會因掉電而丟失;
[0120]5 )按升級組合按鍵上電進入DFU:
[0121]為了防止因其他各種異常原因而導致APROM程序被篡改等,從而無法正常進入DFU的情況,設計了此機制。該機制保證只要LDROM程序可以正常啟動/運行,就可以對APROM實施DFU操作。
[0122]以上所述僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護範圍內。
【權利要求】
1.一種晶片固件升級方法,其特徵在於,該方法包括: 步驟1,判斷是否要進行一晶片固件的升級,是則執行步驟2,否則正常運行所述固件; 步驟2,獲取固件升級數據,並將升級失敗標誌位置位; 步驟3,根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。
2.根據權利要求1所述的方法,其特徵在於,還包括:設置升級組合按鍵,用於在按照步驟I至3正確執行所述固件的升級後出現異常情況而導致所述固件的升級失敗後,觸發升級組合按鍵,重新進行固件升級。
3.根據權利要求2所述的方法,其特徵在於,步驟I中,通過運行中的所述晶片固件實時監控其升級標誌位是否被置位來判斷是否要進行升級,若所述升級標誌位被置位,則開始升級過程;和/或, 步驟2中,從與晶片通信的上位機或者網際網路上獲取固件升級數據,獲取的固件升級數據以及升級失敗標誌位 均保存在非易失性存儲器的程序管理區;所述固件運行在所述非易失性存儲器的用戶程序存儲區; 其中,所述升級標誌位通過所述與晶片通信的上位機或者網際網路或者所述升級組合按鍵進行置位。
4.根據權利要求3所述的方法,其特徵在於,步驟3中,根據所述固件升級數據進行所述固件升級,包括: 按順序從所述程序管理區中讀取所述固件升級數據的數據包並寫入所述用戶程序存儲區中,讀取的每個數據包攜帶相應的單校驗碼,所述固件升級數據攜帶一總校驗碼; 每完成一個數據包的讀取和寫入,讀取所述用戶程序存儲區並生成一個單數據包校驗碼;比對所生成的單數據包校驗碼與所述數據包所攜帶的單校驗碼,如果不相等則重新進行該數據包的讀取和寫入,如果相等則進行下一個數據包的讀取和寫入; 完成全部所述數據包的讀取和寫入後,讀取所述用戶程序存儲區並生成一個總數據包校驗碼;比對所生成的總數據包校驗碼與所述固件升級數據所攜帶的總校驗碼,如果不相等則重新根據所述固件升級數據進行所述固件升級。
5.根據權利要求1至4中任一項所述的方法,其特徵在於,還包括: 保留所述升級失敗標誌位的置位狀態並結束本次升級之後,更新所述固件的固件升級數據,以重新發起所述固件的升級,循環步驟I至3進入所述固件的下次升級。
6.一種晶片固件升級系統,其特徵在於,包括: 判斷單元,用於判斷是否要進行一晶片固件的升級,並在確定要進行所述晶片固件的升級時啟動所述晶片固件的升級過程; 固件升級數據加載單元,用於獲取固件升級數據,並將升級失敗標誌位置位;以及 固件升級單元,用於根據所述固件升級數據進行所述固件升級,若升級成功,則清空所述升級失敗標誌位,開始運行升級後的固件;如果升級失敗,則保留所述升級失敗標誌位的置位狀態並結束本次升級。
7.根據權利要求6所述的系統,其特徵在於,還包括:升級組合按鍵,用於在判斷單元、固件升級數據加載單元以及固件升級單元正確執行所述固件的升級後出現異常情況而導致所述固件的升級失敗後,觸發而使得判斷單元、固件升級數據加載單元以及固件升級單元重新對所述晶片固件進行固件升級。
8.根據權利要求7所述的系統,其特徵在於,所述系統還包括非易失性存儲器; 所述固件運行在所述非易失性存儲器的用戶程序存儲區,所述判斷單元通過運行中的所述晶片固件實時監控其升級標誌位是否被置位來判斷是否要進行升級,若所述升級標誌位被置位,則開始升級過程;和/或, 獲取的固件升級數據以及升級失敗標誌位均保存在非易失性存儲器的程序管理區,所述固件升級數據加載單元從與晶片通信的上位機或者網際網路上獲取固件升級數據; 其中,所述升級標誌位通過所述與晶片通信的上位機或者網際網路或者所述升級組合按鍵進行置位。
9.根據權利要求8所述的系統,其特徵在於,所述固件升級單元還用於: 按順序從所述程序管理區中讀取所述固件升級數據的數據包並寫入所述用戶程序存儲區中,讀取的每個數據包攜帶相應的單校驗碼,所述固件升級數據攜帶一總校驗碼; 每完成一個數據包的讀取和寫入,讀取所述用戶程序存儲區並生成一個單數據包校驗碼;比對所生成的單數據包校驗碼與所述數據包所攜帶的單校驗碼,如果不相等則重新進行該數據包的讀取和寫入,如果相等則進行下一個數據包的讀取和寫入; 完成全部所述數據包的讀取和寫入後,讀取所述用戶程序存儲區並生成一個總數據包校驗碼;比對所生成的總數據包校驗碼與所述固件升級數據所攜帶的總校驗碼,如果不相等則重新根據所述固件 升級數據進行所述固件升級。
10.根據權利要求6至9中任一項所述的系統,其特徵在於,所述系統還包括位於固件升級數據發布端的刷機單元,用於在所述固件升級單元保留所述升級失敗標誌位的置位狀態並結束本次升級之後,更新所述固件的固件升級數據,以重新發起所述固件的升級,進入所述固件的下次升級。
【文檔編號】G06F9/445GK103761122SQ201310754001
【公開日】2014年4月30日 申請日期:2013年12月31日 優先權日:2013年12月31日
【發明者】徐建軍, 孔慶磊, 牛錫亮 申請人:青島歌爾聲學科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀