一種運行應用程式的方法及控制器的製作方法
2023-05-30 20:01:21 1
專利名稱:一種運行應用程式的方法及控制器的製作方法
技術領域:
本發明涉及嵌入式領域,特別是涉及運行應用程式的方法及控制器。
背景技術:
存儲器(Memory)是計算機系統中的記憶設備,用來存放程序和數據。計算機中的全部信息,包括輸入的原始數據、電腦程式、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。 在通信領域、消費領域、計算機領域等,快閃記憶體(flash)已得到廣泛的應用。生產商們正在開發多種新技術,以便使快閃記憶體也擁有像動態隨機存儲器(DRAM)和同步動態隨機存取存儲器(SDRAM)那樣的高速、低價、壽命長等特點。 在嵌入式應用領域,串行快閃記憶體器主要用於存儲程序和數據,當用於存儲應用程式代碼時, 一般需要一個較大容量的程序SRAM(用於裝置應用程式並執行應用程式)來運行應用程式。即控制器上電後需要將快閃記憶體器中的應用程式代碼讀到程序SRAM中,然後運行程序SRAM中的應用程式。 因此該方案要求更長的時間內有更多的器件在工作,從而需要消耗更多的電池能量。設計工程師也必須確認在修改數據時有足夠容量的程序SRAM可用。並且如果快閃記憶體器中的應用程式代碼有誤,將其讀到程序SRAM後運行時便會出錯,可能導致嚴重後果。
發明內容
本發明實施例提供一種運行應用程式的方法及控制器,用於提高應用程式運行的安全性。
—種運行應用程式的方法,包括以下步驟 控制器通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式; 控制器在確定有應用程式時,讀取快閃記憶體器中應用程式的代碼,對讀取的代碼進行
求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比較,在比較結果一致時確定
應用程式正確; 控制器在確定應用程式正確時,從服務程序切換到應用程式。
—種控制器,包括 識別模塊,用於通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式;
校驗模塊,用於在確定有應用程式時,讀取快閃記憶體器中應用程式的代碼,對讀取的代碼進行求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比較,在比較結果一致時確定應用程式正確; 解析模塊,用於在確定應用程式正確時,從服務程序切換到應用程式。 本發明實施例在控制器中增加服務程序,通過該服務程序在控制器啟動後對快閃記憶體
器中的應用程式代碼進行識別,即判斷快閃記憶體器中是否有應用程式,在有應用程式時,進一步
對應用程式進行校驗,即讀取快閃記憶體器中應用程式的代碼,對讀取的代碼進行求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比較,在識別和校驗均通過時,控制器從服務程序切換到快閃記憶體器中的應用程式,以執行應用程式。實現了在無程序SRAM的情況下運行應用程式,以及通過識別和校驗後才運行應用程式,提高了安全性。
圖1為本發明實施例中控制器的主要結構圖; 圖2為本發明實施例中控制器的詳細結構圖; 圖3為本發明實施例中硬體升級標誌的示意圖; 圖4為本發明實施例中運行應用程式的主要方法流程圖; 圖5為本發明實施例中帶有軟體升級標誌的運行應用程式的詳細方法流程圖; 圖6為本發明實施例中帶有硬體升級標誌的運行應用程式的詳細方法流程圖。
具體實施例方式
本發明實施例在控制器中增加服務程序,通過該服務程序在控制器啟動後對快閃記憶體器中的應用程式代碼進行識別和校驗,在識別和校驗均通過時,控制器從服務程序切換到快閃記憶體器中的應用程式,以執行應用程式。實現了在無程序SRAM(尤其指裝載和執行應用程式的SRAM)的情況下運行應用程式,以及通過識別和校驗後才運行應用程式,提高了安全性。 參見圖l,本實施例中的控制器包括識別模塊101、校驗模塊102和解析模塊103。控制器中的處理器通過運行內部的服務程序實現識別模塊101和解析模塊103的功能,以及處理器通過運行內部的系統程序實現解析模塊103的功能。所述快閃記憶體器為包括串行接口的快閃記憶體器。該快閃記憶體器可以位於控制器的外部,且與控制器相連;或者位於控制器的內部,與控制器中的其它模塊連接。 識別模塊101用於通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式,實現對快閃記憶體器中應用程式的識別。具體實現方式有多種,如識別模塊101讀取快閃記憶體器的標誌區域中識別標誌的值,並根據該識別標誌的值判斷快閃記憶體器中是否有應用程式。例如,識別標誌的值為l表示有應用程式,為O表示無應用程式。其中,在對快閃記憶體器進行擦寫操作時會修改識別標誌的值。 校驗模塊102用於在確定有應用程式時,進一步判斷應用程式是否正確,實現對
快閃記憶體器中應用程式的校驗。具體實現方式有多種,如校驗模塊102讀取快閃記憶體器中應用程式
的代碼,對讀取的代碼進行求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比
較,在比較結果一致時確定應用程式正確,否則確定應用程式錯誤。其中,在對快閃記憶體器進行
寫操作或升級操作時會通過對代碼求和的方式獲得並修改校驗標誌的值。 解析模塊103用於在確定應用程式正確時,從服務程序切換到應用程式,從快閃記憶體
器中讀取應用程式的代碼並運行。 應用程式包括代碼和數據,本實施例中主要對應用程式的代碼進行識別和校驗。
控制器還包括存儲模塊104和升級模塊105,參見圖2所示。 存儲模塊104,不同於快閃記憶體器,用於保存系統程序和服務程序等,可具體為隨機存取存儲器(RAM)、只讀存儲器(ROM)等。
升級模塊105用於通過運行內部的服務程序判斷是否有升級程序,若有,則根據該升級程序對快閃記憶體器中的應用程式進行升級。該升級程序可以存儲在控制器外部的存儲設備上。判斷是否升級的具體實現方式有多種,如升級模塊105根據升級標誌判斷是否有升級程序。該升級標誌可以是硬體標誌或軟體標誌,如果是軟體標誌,則通過運行服務程序實現對軟體標誌的判斷。該軟體標誌由控制器收到上層設備(如計算機)發送的升級命令後將其設置為l,然後控制器進行軟復位,升級模塊105在檢測出軟體標誌為1後進行升級。在升級結束後,升級模塊105將軟體標誌置為0,表示無升級程序。如果是硬體標誌,則升級模塊105根據收到的電平信號進行判斷,參見圖3所示,本實施例中當控制器的引腳(pin)連接電源端(+Vcc)時向升級模塊105發送高電平信號,即傳輸升級標誌l,表示有升級程序。當控制器的引腳(pin)連接接地端(Gnd)時向升級模塊105發送低電平信號,即傳輸升級標誌O,表示無升級程序。該硬體標誌可由用戶手動設置,在需要升級時,將引腳置於電源端,在升級結束後將引腳置於接地端。升級過程包括升級模塊105向快閃記憶體器發送模式轉換命令,使快閃記憶體器進入可擦寫狀態;根據升級程序對快閃記憶體器進行擦寫操作,以升級應用程式;升級後再次向快閃記憶體器發送模式轉換命令,使快閃記憶體器進入保護狀態,只能進行讀操作。
在升級結束後或判斷沒有升級程序時,識別模塊101判斷快閃記憶體器中是否有應用程式。 以上介紹了控制器的內部結構和功能,下面對控制器實現運行應用程式的過程進行介紹。
參見圖4,本實施例中運行應用程式的主要方法流程如下 步驟401 :控制器通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式。
步驟402 :控制器在確定有應用程式時,進一步判斷應用程式是否正確。
步驟403 :控制器在確定應用程式正確時,從服務程序切換到應用程式。 以上流程有多種實現方式,下面通過兩個實施例來詳細說明。 參見圖5,本實施例中帶有軟體升級標誌的運行應用程式的詳細方法流程如下 步驟501 :控制器上電後運行服務程序。
步驟502 :控制器讀取升級標誌的值。 步驟503 :控制器根據升級標誌的值判斷是否升級,若是,則繼續步驟504,否則繼續步驟505。 步驟504 :控制器對快閃記憶體器中的應用程式進行升級。
步驟502-504為關於快閃記憶體器的升級過程。 步驟505 :控制器根據快閃記憶體器中的識別標誌的值判斷快閃記憶體器中是否有應用程式,
若有,則繼續步驟506,否則繼續步驟510。該步驟為對快閃記憶體器的識別過程。 步驟506 :控制器對快閃記憶體器中的應用程式的代碼進行求和,並得到求和結果。 步驟507 :控制器將求和結果與快閃記憶體器中的校驗標誌的值進行比較。 步驟508 :控制器判斷比較結果是否一致,若是,則繼續步驟509,否則繼續步驟
510。 步驟506-508為對快閃記憶體器的校驗過程。 步驟509 :控制器從服務程序切換到應用程式。運行應用程式的步驟包括控制器中的解析模塊103停止解析服務程序,從快閃記憶體器中讀取應用程式,並進行解析等操作。
步驟510 :控制器生成並輸出錯誤提示信息。 其中,步驟504包括控制器向快閃記憶體器發送模式轉換命令,使快閃記憶體器進入可擦寫狀態;根據升級程序對快閃記憶體器進行擦寫操作,以升級應用程式;升級後再次向快閃記憶體器發送模式轉換命令,使快閃記憶體器進入保護狀態,只能進行讀操作;控制器復位。 參見圖6,本實施例中帶有硬體升級標誌的運行應用程式的詳細方法流程如下
步驟601 :控制器上電後運行服務程序。 步驟602 :控制器檢測引腳的狀態(相當於獲得升級標誌的值)。 步驟603 :控制器根據引腳的狀態(是高電平還是低電平)判斷是否升級,若是,
則繼續步驟604,否則繼續步驟605。 步驟604 :控制器對快閃記憶體器中的應用程式進行升級。
步驟602-604為關於快閃記憶體器的升級過程。 步驟605 :控制器根據快閃記憶體器中的識別標誌的值判斷快閃記憶體器中是否有應用程式,
若有,則繼續步驟606,否則繼續步驟610。該步驟為對快閃記憶體器的識別過程。 步驟606 :控制器對快閃記憶體器中的應用程式的代碼進行求和,並得到求和結果。 步驟607 :控制器將求和結果與快閃記憶體器中的校驗標誌的值進行比較。 步驟608 :控制器判斷比較結果是否一致,若是,則繼續步驟609,否則繼續步驟
610。 步驟606-608為對快閃記憶體器的校驗過程。
步驟609 :控制器從服務程序切換到應用程式。運行應用程式的步驟包括控制器中的解析模塊103停止解析服務程序,從快閃記憶體器中讀取應用程式,並進行解析等操作。
步驟610 :控制器生成並輸出錯誤提示信息。 如果控制器既包括硬體升級標誌又包括軟體升級標誌,則本實施例中先對硬體升級標誌進行判斷,若判斷需要升級,則進行升級流程;否則進一步對軟體升級標誌進行判斷,若判斷需要升級,則進行升級流程。 本發明實施例在控制器中增加服務程序,通過該服務程序在控制器啟動後對快閃記憶體器中的應用程式代碼進行識別和校驗,在識別和校驗均通過時,控制器從服務程序切換到快閃記憶體器中的應用程式,以執行應用程式。實現了在無程序SRAM的情況下運行應用程式,以及通過識別和校驗後才運行應用程式,提高了安全性。本發明實施例還通過獲得升級標誌來確定是否有升級程序,實現了對應用程式的升級。並且升級標誌可以是軟體形式或硬體形式,適合多種實際需要。 顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若對本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
一種運行應用程式的方法,其特徵在於,包括以下步驟控制器通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式;控制器在確定有應用程式時,讀取快閃記憶體器中應用程式的代碼,對讀取的代碼進行求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比較,在比較結果一致時確定應用程式正確;控制器在確定應用程式正確時,從服務程序切換到應用程式。
2. 如權利要求1所述的方法,其特徵在於,控制器判斷快閃記憶體器中是否有應用程式的步 驟包括控制器讀取快閃記憶體器的標誌區域中識別標誌的值,並根據該識別標誌的值判斷快閃記憶體 器中是否有應用程式。
3. 如權利要求1所述的方法,其特徵在於,還包括步驟控制器在確定無應用程式或應 用程序錯誤時,生成並輸出錯誤提示信息。
4. 如權利要求1所述的方法,其特徵在於,還包括步驟控制器在判斷快閃記憶體器中是否有 應用程式之前,控制器通過運行內部的服務程序判斷是否有升級程序,若有,則根據該升級 程序對快閃記憶體器中的應用程式進行升級; 在升級結束後或判斷沒有升級程序時,控制器判斷快閃記憶體器中是否有應用程式。
5. 如權利要求4所述的方法,其特徵在於,控制器根據升級標誌判斷是否有升級程序。
6. 如權利要求5所述的方法,其特徵在於,升級標誌為軟體標誌或為硬體標誌。
7. —種控制器,其特徵在於,包括識別模塊,用於通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式; 校驗模塊,用於在確定有應用程式時,讀取快閃記憶體器中應用程式的代碼,對讀取的代碼進行求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比較,在比較結果一致時確定應用程式正確;解析模塊,用於在確定應用程式正確時,從服務程序切換到應用程式。
8. 如權利要求7所述的控制器,其特徵在於,識別模塊讀取快閃記憶體器的標誌區域中識別 標誌的值,並根據該識別標誌的值判斷快閃記憶體器中是否有應用程式。
9. 如權利要求7所述的控制器,其特徵在於,還包括升級模塊,用於通過運行內部的 服務程序判斷是否有升級程序,若有,則根據該升級程序對快閃記憶體器中的應用程式進行升級。
10. 如權利要求9所述的控制器,其特徵在於,升級模塊根據升級標誌判斷是否有升級 程序。
11. 如權利要求7所述的控制器,其特徵在於,所述快閃記憶體器為包括串行接口的快閃記憶體器。
全文摘要
本發明公開了一種運行應用程式的方法,用於提高應用程式運行的安全性。所述方法包括控制器通過運行內部的服務程序判斷快閃記憶體器中是否有應用程式;控制器在確定有應用程式時,讀取快閃記憶體器中應用程式的代碼,對讀取的代碼進行求和,將求和結果與快閃記憶體器的標誌區域中校驗標誌的值進行比較,在比較結果一致時確定應用程式正確;控制器在確定應用程式正確時,從服務程序切換到應用程式。本發明還公開了用於實現所述方法的控制器。
文檔編號G06F9/445GK101710297SQ20091024284
公開日2010年5月19日 申請日期2009年12月17日 優先權日2009年12月17日
發明者吳大斌, 溫元勝, 胡慶慶 申請人:北京中星微電子有限公司