單片機及其在線升級方法和在線升級裝置制造方法
【專利摘要】本發明涉及一種單片機及其在線升級方法和在線升級裝置。在線升級方法包括:步驟一:在單片機的flash存儲器預先劃分的第二存儲區中寫入臨時升級程序;步驟二:運行臨時升級程序得到需要升級的第二用戶程序的升級程序部分;步驟三:將第二用戶程序的升級程序部分寫到單片機的flash存儲器預先劃分的第一存儲區;步驟四:運行第二用戶程序的升級程序部分得到第二用戶程序的非升級程序部分;步驟五:在單片機的flash存儲器的第二存儲區擦除臨時升級程序,并將第二用戶程序的非升級程序部分寫到單片機的flash存儲器的第一存儲區和/或第二存儲區。采用本發明的單片機及其在線升級方法和在線升級裝置,可充分利用單片機內的存儲器,避免存儲空間的浪費。
【專利說明】單片機及其在線升級方法和在線升級裝置
【技術領域】
[0001]本發明涉及一種單片機在線升級技術,特別是一種單片機及其在線升級方法和在線升級裝置。
【背景技術】
[0002]單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、多種I/O 口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域的廣泛應用。
[0003]單片機程序一般在出廠前進行程序燒寫,程序到了用戶手中不能再次更改。為了解決該問題,中國專利申請03154290.5提出了一種單片機在線升級方法和裝置,其把單片機flash程序分成兩部分A程序和B程序,然后用A程序來升級B部分程序。其中A為升級程序,固化在flash中,不變。B為用戶程序,由A來升級及寫入,可變。然而,該技術方案的缺點是:
[0004]第一,A部分是固定不變的,如果A有問題,不能進行A程序的升級;
[0005]第二,A部分占用了單片機的固定一部分空間,對于單片機這種資料比較有限的MCU來說是一種極大的浪費。
【發明內容】
[0006]在下文中給出關于本發明的簡要概述,以便提供關于本發明的某些方面的基本理解。應當理解,這個概述并不是關于本發明的窮舉性概述。它并不是意圖確定本發明的關鍵或重要部分,也不是意圖限定本發明的范圍。其目的僅僅是以簡化的形式給出某些概念,以此作為稍后論述的更詳細描述的前序。
[0007]本發明的一個主要目的在于提供一種單片機及其在線升級方法在線升級裝置,其可充分利用單片機內的存儲器,避免存儲空間的浪費。
[0008]根據本發明的一方面,一種單片機的在線升級方法,包括:
[0009]步驟一:在單片機的flash存儲器預先劃分的第二存儲區中寫入臨時升級程序;
[0010]步驟二:運行所述臨時升級程序得到需要升級的第二用戶程序的升級程序部分;
[0011]步驟三:將所述第二用戶程序的升級程序部分寫到所述單片機的flash存儲器預先劃分的第一存儲區;
[0012]步驟四:運行所述第二用戶程序的升級程序部分得到所述第二用戶程序的非升級程序部分;
[0013]步驟五:在所述單片機的flash存儲器的第二存儲區擦除所述臨時升級程序,并將所述第二用戶程序的非升級程序部分寫到所述單片機的flash存儲器的第一存儲區和/或第二存儲區。[0014]根據本發明的另一方面,一種單片機在線升級裝置,包括flash存儲器,還包括:
[0015]臨時升級程序部,用于在單片機的flash存儲器預先劃分的第二存儲區中寫入臨時升級程序;
[0016]第二升級程序部,用于運行所述臨時升級程序得到需要升級的第二用戶程序的升級程序部分;
[0017]第二升級程序寫入部,用于將所述第二用戶程序的升級程序部分寫到所述單片機的flash存儲器預先劃分的第一存儲區;
[0018]第二非升級程序部,用于運行所述第二用戶程序的升級程序部分得到所述第二用戶程序的非升級程序部分;
[0019]第二非升級程序寫入部,用于在所述單片機的flash存儲器的第二存儲區擦除所述臨時升級程序,并將所述第二用戶程序的非升級程序部分寫到所述單片機的flash存儲器的第一存儲區和/或第二存儲區。
[0020]根據本發明的第三方面,一種單片機,包括單片機在線升級裝置。
[0021]采用本發明的單片機及其在線升級方法和在線升級裝置,可充分利用單片機內的存儲器,避免存儲空間的浪費。
【專利附圖】
【附圖說明】
[0022]參照下面結合附圖對本發明實施例的說明,會更加容易地理解本發明的以上和其它目的、特點和優點。附圖中的部件只是為了示出本發明的原理。在附圖中,相同的或類似的技術特征或部件將采用相同或類似的附圖標記來表示。
[0023]圖1為本發明的單片機的在線升級方法的一種實施方式的流程圖;
[0024]圖2為本發明的單片機的在線升級裝置的一種實施方式的結構圖;
[0025]圖3為本發明的單片機的一種實施方式的結構圖。
【具體實施方式】
[0026]下面參照附圖來說明本發明的實施例。在本發明的一個附圖或一種實施方式中描述的元素和特征可以與一個或更多個其它附圖或實施方式中示出的元素和特征相結合。應當注意,為了清楚的目的,附圖和說明中省略了與本發明無關的、本領域普通技術人員已知的部件和處理的表示和描述。
[0027]參見圖1所示,為發明的單片機的在先升級方法的一種實施方式的流程圖。
[0028]在該實施方式中,單片機的在線升級方法,包括:
[0029]SlO:在單片機的flash存儲器預先劃分的第二存儲區中寫入臨時升級程序;臨時升級程序例如可以通過串行總線,如uart, i2c等來獲取。
[0030]S20:運行臨時升級程序得到需要升級的第二用戶程序的升級程序部分;
[0031]S30:將第二用戶程序的升級程序部分寫到單片機的flash存儲器預先劃分的第一存儲區;
[0032]S40:運行第二用戶程序的升級程序部分得到第二用戶程序的非升級程序部分;
[0033]S50:在單片機的flash存儲器的第二存儲區擦除臨時升級程序,并將第二用戶程序的非升級程序部分寫到單片機的flash存儲器的第一存儲區和/或第二存儲區。例如,當第二用戶程序的非升級程序部分所占空間小于第一存儲區或第二存儲區的剩余空間時,可將第二用戶程序的非升級程序部分存入第一存儲區或第二存儲區。反之,當第二用戶程序的非升級程序部分所占空間大于第一存儲區或第二存儲區的剩余空間時,可將第二用戶程序的非升級程序部分存入第一存儲區和第二存儲區。
[0034]作為一種實施方式,在步驟SlO之前:
[0035]將第一用戶程序存儲至單片機的flash存儲器預先劃分的第一存儲區和第二存儲區。
[0036]作為一種實施方式,步驟SlO還包括:
[0037]擦除存儲在第二存儲區的第一用戶程序。例如,在一種實施方式中,當單片機的flash存儲器預先劃分的第一存儲區和第二存儲區中存儲有第一用戶程序時,為了在第二存儲區寫入臨時升級程序,可以擦除第一用戶程序中存儲在第二存儲區中的部分。
[0038]作為一種實施方式,步驟S30還包括:
[0039]擦除存儲在第一存儲區的第一用戶程序。例如,在一種實施方式中,當單片機的flash存儲器預先劃分的第一存儲區和第二存儲區中存儲有第一用戶程序時,在升級過程中,為了將第二用戶程序的升級程序部分寫到單片機的flash存儲器預先劃分的第一存儲區,可以擦除第一用戶程序中存儲在第一存儲區中的部分。
[0040]作為一種實施方式,存儲在第一存儲區的第一用戶程序可以包括具有驗證功能的驗證功能部,該驗證功能部可驗證升級功能部,從而判斷此次升級是否合法。例如,如果遠程的升級服務器要對單片機進行升級,可先發送單片機的密碼到單片機驗證。單片機驗證通過后,才會接受遠程升級服務器發送的升級程序。
[0041]參見圖2所示,為本發明的單片機在線升級裝置的一種實施方式的結構圖。
[0042]本實施方式的一種單片機在線升級裝置10,包括flash存儲器11,還包括:
[0043]臨時升級程序部12,用于在單片機的flash存儲器預先劃分的第二存儲區112中寫入臨時升級程序;
[0044]第二升級程序部13,用于運行臨時升級程序得到需要升級的第二用戶程序的升級程序部分;
[0045]第二升級程序寫入部14,用于將第二用戶程序的升級程序部分寫到單片機的flash存儲器預先劃分的第一存儲區111 ;
[0046]第二非升級程序部15,用于運行第二用戶程序的升級程序部分得到第二用戶程序的非升級程序部分;
[0047]第二非升級程序寫入部16,用于在單片機的flash存儲器的第二存儲區112擦除臨時升級程序,并將第二用戶程序的非升級程序部分寫到單片機的flash存儲器11的第一存儲區111和/或第二存儲區112。
[0048]作為一種實施方式,臨時升級程序部12在將臨時升級程序寫入單片機的flash存儲器11預先劃分的第二存儲區112中之前,將第一用戶程序存儲至單片機的flash存儲器11預先劃分的第一存儲區111和第二存儲區112。
[0049]作為一種實施方式,臨時升級程序部12在將臨時升級程序寫入單片機的flash存儲器11預先劃分的第二存儲區112中之前,擦除存儲在第二存儲區112的第一用戶程序。
[0050]作為一種實施方式,第二升級程序部13還可以擦除存儲在第一存儲區111的第一用戶程序。
[0051]如圖3所示,為本發明的單片機I的一種實施方式的結構圖。本實施方式的單片機包括了單片機在線升級裝置10。
[0052]采用本發明的單片機及其的在線升級方法和在線升級裝置,可充分利用單片機內的存儲器,避免存儲空間的浪費。
[0053]上面對本發明的一些實施方式進行了詳細的描述。如本領域的普通技術人員所能理解的,本發明的方法和裝置的全部或者任何步驟或者部件,可以在任何計算設備(包括處理器、存儲介質等)或者計算設備的網絡中,以硬件、固件、軟件或者它們的組合加以實現,這是本領域普通技術人員在了解本發明的內容的情況下運用他們的基本編程技能就能實現的,因此不需在此具體說明。
[0054]此外,顯而易見的是,在上面的說明中涉及到可能的外部操作的時候,無疑要使用與任何計算設備相連的任何顯示設備和任何輸入設備、相應的接口和控制程序。總而言之,計算機、計算機系統或者計算機網絡中的相關硬件、軟件和實現本發明的前述方法中的各種操作的硬件、固件、軟件或者它們的組合,即構成本發明的設備及其各組成部件。
[0055]因此,基于上述理解,本發明的目的還可以通過在任何信息處理設備上運行一個程序或者一組程序來實現。所述信息處理設備可以是公知的通用設備。因此,本發明的目的也可以僅僅通過提供包含實現所述方法或者設備的程序代碼的程序產品來實現。也就是說,這樣的程序產品也構成本發明,并且存儲或者傳輸這樣的程序產品的介質也構成本發明。顯然,所述存儲或者傳輸介質可以是本領域技術人員已知的,或者將來所開發出來的任何類型的存儲或者傳輸介質,因此也沒有必要在此對各種存儲或者傳輸介質一一列舉。
[0056]在本發明的設備和方法中,顯然,各部件或各步驟是可以分解、組合和/或分解后重新組合的。這些分解和/或重新組合應視為本發明的等效方案。還需要指出的是,執行上述系列處理的步驟可以自然地按照說明的順序按時間順序執行,但是并不需要一定按照時間順序執行。某些步驟可以并行或彼此獨立地執行。同時,在上面對本發明具體實施例的描述中,針對一種實施方式描述和/或示出的特征可以以相同或類似的方式在一個或更多個其它實施方式中使用,與其它實施方式中的特征相組合,或替代其它實施方式中的特征。
[0057]應該強調,術語“包括/包含”在本文使用時指特征、要素、步驟或組件的存在,但并不排除一個或更多個其它特征、要素、步驟或組件的存在或附加。
[0058]雖然已經詳細說明了本發明及其優點,但是應當理解在不超出由所附的權利要求所限定的本發明的精神和范圍的情況下可以進行各種改變、替代和變換。而且,本申請的范圍不僅限于說明書所描述的過程、設備、手段、方法和步驟的具體實施例。本領域內的普通技術人員從本發明的公開內容將容易理解,根據本發明可以使用執行與在此所述的相應實施例基本相同的功能或者獲得與其基本相同的結果的、現有和將來要被開發的過程、設備、手段、方法或者步驟。因此,所附的權利要求旨在在它們的范圍內包括這樣的過程、設備、手段、方法或者步驟。
【權利要求】
1.一種單片機的在線升級方法,其特征在于,包括: 步驟一:在單片機的flash存儲器預先劃分的第二存儲區中寫入臨時升級程序; 步驟二:運行所述臨時升級程序得到需要升級的第二用戶程序的升級程序部分; 步驟三:將所述第二用戶程序的升級程序部分寫到所述單片機的flash存儲器預先劃分的第一存儲區; 步驟四:運行所述第二用戶程序的升級程序部分得到所述第二用戶程序的非升級程序部分; 步驟五:在所述單片機的flash存儲器的第二存儲區擦除所述臨時升級程序,并將所述第二用戶程序的非升級程序部分寫到所述單片機的flash存儲器的第一存儲區和/或第二存儲區。
2.根據權利要求1所述的單片機在線升級方法,其特征在于,在所述步驟一之前: 將第一用戶程序存儲至所述單片機的flash存儲器預先劃分的第一存儲區和第二存儲區。
3.根據權利要求2所述的單片機在線升級方法,其特征在于,所述步驟一還包括: 擦除存儲在所述第二存儲區的第一用戶程序。
4.根據權利要求2或 3所述的單片機在線升級方法,其特征在于,所述步驟三還包括: 擦除存儲在所述第一存儲區的第一用戶程序。
5.根據權利要求1所述的單片機的在先升級方法,其特征在于: 存儲在所述第一存儲區的第一用戶程序包括具有驗證功能的驗證功能部。
6.一種單片機在線升級裝置,包括flash存儲器,其特征在于,還包括: 臨時升級程序部,用于在單片機的flash存儲器預先劃分的第二存儲區中寫入臨時升級程序; 第二升級程序部,用于運行所述臨時升級程序得到需要升級的第二用戶程序的升級程序部分; 第二升級程序寫入部,用于將所述第二用戶程序的升級程序部分寫到所述單片機的flash存儲器預先劃分的第一存儲區; 第二非升級程序部,用于運行所述第二用戶程序的升級程序部分得到所述第二用戶程序的非升級程序部分; 第二非升級程序寫入部,用于在所述單片機的flash存儲器的第二存儲區擦除所述臨時升級程序,并將所述第二用戶程序的非升級程序部分寫到所述單片機的flash存儲器的第一存儲區和/或第二存儲區。
7.根據權利要求6所述的單片機在線升級裝置,其特征在于: 所述臨時升級程序部在將臨時升級程序寫入單片機的flash存儲器預先劃分的第二存儲區中之前,將第一用戶程序存儲至所述單片機的flash存儲器預先劃分的第一存儲區和第二存儲區。
8.根據權利要求7所述的單片機在線升級裝置,其特征在于: 所述臨時升級程序部在將臨時升級程序寫入單片機的flash存儲器預先劃分的第二存儲區中之前,擦除存儲在所述第二存儲區的第一用戶程序。
9.根據權利要求7或8所述的單片機在線升級裝置,其特征在于:所述第二升級程序部擦除存儲在所述第 一存儲區的第一用戶程序。
10.一種單片機,其特征在于:包括如權利要求6-9任意一項所述的單片機在線升級裝 置。
【文檔編號】G06F9/445GK103777976SQ201210413465
【公開日】2014年5月7日 申請日期:2012年10月25日 優先權日:2012年10月25日
【發明者】徐志方, 遲永昕 申請人:海爾集團公司, 青島海爾智能家電科技有限公司