一種保護mcu工作程序的方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及芯片工作程序控制領域,尤其涉及一種保護MCU工作程序的方法及系統(tǒng)。
【背景技術】
[0002]MCU: Microcontroller Unit,微控制單元。
[0003]內存:運行內存,是指MCU運行程序時的內存,也叫RAM (簡稱運存)。
[0004]FLASH:閃存,閃存的英文名稱是"Flash Memory",一般簡稱為〃Flash〃,它屬于內存器件的一種,是一種不揮發(fā)性內存。
[0005]目前一些電子產品因特殊需求設有自動銷毀程序,在發(fā)生緊急情況觸發(fā)銷毀程序后,工作程序就會被刪除,想要再次使用該設備時就需要重新燒錄程序,為使用帶來不便。
【發(fā)明內容】
[0006]為了解決上述技術問題,本發(fā)明的目的是提供一種可方便工作程序升級,使用方便,同時減少占用MCU總線資源的保護MCU工作程序方法。
[0007]為了解決上述技術問題,本發(fā)明的另一個目的是提供一種可方便工作程序升級,使用方便,同時減少占用MCU總線資源的保護MCU工作程序系統(tǒng)。
[0008]本發(fā)明所采用的技術方案是:
一種保護MCU工作程序的方法,其包括步驟:S1,運行下載程序;S2,由下載程序判斷是應該運行工作程序還是應該升級工作程序,如果是運行工作程序則進入步驟S3,如需要升級工作程序則進入步驟S4 ;S3,下載程序則從外部存儲模塊中搬移工作程序代碼到內存中對應地址,完成搬移后MCU運行工作程序;S4,MCU接收來自上位機的工作程序,由下載程序把工作程序寫到外部存儲模塊中的對應位置,然后復位重復步驟S1和S2。
[0009]優(yōu)選的,所述下載程序和工作程序存儲在同一外部存儲模塊的不同存儲扇區(qū)中。
[0010]優(yōu)選的,所述外部存儲模塊為一個FLASH存儲器。
[0011]優(yōu)選的,所述保護MCU工作程序的方法還包括步驟:S01,先從外部存儲模塊中搬移BOOT代碼到內存中,然后運行BOOT代碼;S02,BOOT代碼執(zhí)行動作:從外部存儲模塊中搬移下載程序和/或工作程序到內存中對應的地址,搬移完成后執(zhí)行步驟S1。
[0012]一種保護MCU工作程序的系統(tǒng),所述系統(tǒng)用于實施保護MCU工作程序的方法,所述系統(tǒng)包括:MCU,分別與外部存儲模塊和內存連接,用于運行下載程序、工作程序;外部存儲模塊,所述外部存儲模塊包括第一存儲扇區(qū)和第二存儲扇區(qū),所述第一存儲扇區(qū)用于存儲下載程序,所述第二存儲扇區(qū)用于存儲工作程序;內存,用于根據(jù)MCU的命令存儲下載程序和/或工作程序。
[0013]優(yōu)選的,所述第一存儲扇區(qū)存儲有BOOT代碼,所述BOOT代碼用于引導MCU搬移和運行下載程序和/或工作程序。
[0014]優(yōu)選的,所述外部存儲模塊為一個FLASH存儲器。
[0015]本發(fā)明的有益效果是:
本發(fā)明首先通過在MCU的FLASH中先燒錄進去下載程序,MCU上電后運行下載程序,然后由下載程序來升級工作程序或者負責把工作程序運行起來,實現(xiàn)當工作程序被刪除后依然可以方便的實現(xiàn)升級并運行;其次,通過利用外部存儲模塊的一部分扇區(qū)存儲下載程序,另一部分扇區(qū)存儲工作程序,節(jié)省了 MCU接口總線資源,從而節(jié)省成本;再次,本發(fā)明安全性高,使用方便,運行穩(wěn)定可靠,具有良好的經濟和社會效益。
[0016]本發(fā)明可廣泛應用于各種MCU工作程序管理系統(tǒng)。
【附圖說明】
[0017]下面結合附圖對本發(fā)明的【具體實施方式】作進一步說明:
圖1是本發(fā)明保護MCU工作程序的系統(tǒng)一種實施例的結構示意圖。
【具體實施方式】
[0018]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0019]為了【背景技術】中提出的問題,可以如下方式實現(xiàn),在MCU的FLASH存儲器中先燒錄進去下載程序,MCU上電后運行下載程序,然后由下載程序來升級工作程序或者負責把工作程序運行起來,這樣當工作程序被刪除后依然可以方便的實現(xiàn)升級并運行。實施上述方法,可以通過外接兩片F(xiàn)LASH存儲器實現(xiàn),一片存儲下載程序,一片存儲工作程序。下載程序運行起來后從另一片F(xiàn)LASH存儲器中搬移工作程序到內存中然后運行工作程序。也可以采用一片F(xiàn)LASH存儲器實現(xiàn)。當MCU外接芯片較多時會出現(xiàn)接口資源緊張的情況,這時一片F(xiàn)LASH的優(yōu)勢就體現(xiàn)出來了。在一片F(xiàn)LASH的情況下,F(xiàn)LASH的一部分扇區(qū)存儲下載程序,另一部分扇區(qū)存儲工作程序,當MCU上電后,先從存儲下載程序的FLASH的地址搬移下載程序到內存中運行,運行起來后根據(jù)情況再決定是需要升級工作程序或者是從存儲工作程序的FLASH的地址搬移工作程序到內存中運行。當工作程序被刪除后,可以方便的實現(xiàn)升級,保護了工作程序的安全性。具體方案如下:
如圖1所示,一種保護MCU工作程序的系統(tǒng),所述系統(tǒng)用于實施保護MCU工作程序的方法,所述系統(tǒng)包括:
MCU,分別與外部存儲模塊和內存連接,用于運行下載程序、工作程序,還有實現(xiàn)BOOT代碼從FLASH存儲器到內存的搬移。
[0020]外部存儲模塊,本實施例采用一 FLASH存儲器,F(xiàn)LASH存儲器包括第一存儲扇區(qū)和第二存儲扇區(qū),所述第一存儲扇區(qū)用于存儲下載程序,所述第二存儲扇區(qū)用于存儲工作程序,所述第一存儲扇區(qū)還存儲有BOOT代碼,所述BOOT代碼用于引導MCU搬移和運行下載程序和/或工作程序,所述BOOT代碼存儲在第一存儲扇區(qū)的起始位置。
[0021]內存,用于根據(jù)MCU的命令存儲下載程序和/或工作程序,也是存儲程序本身、運行程序的空間。
[0022]—種保護MCU工作程序的方法,其包括步驟:S1,運行下載程序;S2,由下載程序判斷是應該運行工作程序還是應該升級工作程序,如果是運行工作程序則進入步驟