專利名稱:一種嵌入式系統(tǒng)及其控制方法
技術領域:
本發(fā)明涉及嵌入式系統(tǒng)領域,尤其涉及一種嵌入式系統(tǒng)及其控制方法。
技術背景嵌入式系統(tǒng)設備的發(fā)展非常迅速,現(xiàn)在已經(jīng)非常普及。日用電子設備、 手持移動設備等等都有嵌入式系統(tǒng)設備的應用。但是為了能更好的方便人們 的生活和滿足工程應用領域的需求,對嵌入式系統(tǒng)設備"t是出了更高的要求, 必須走多元化發(fā)展的道路。多元化發(fā)展的嵌入式設備導致了市場中設備的多樣化。消費者必須通過 更新的自己的設備,才能滿足自己不斷變化發(fā)展的需求。同時,設備制造商 也必須通過不斷的開發(fā)出新產(chǎn)品來滿足消費者日益提高,不斷變化發(fā)展的需 求。因此,在同一個應用的場景下面,如果能夠通過通用化的方法,來滿足 個別的需求,對設備制造商而言,降低了研發(fā)成本,提高了竟爭力,可以在市場中擁有更靈活的策略;對消費者而言,同一個設備可以擁有更多的功能 組合,可以根據(jù)自己的需要進行選擇。發(fā)明內(nèi)容本發(fā)明所要解決的技術問題是提供一種嵌入式系統(tǒng)及其控制方法,解決 了嵌入式系統(tǒng)中難以對應用程序進行選擇性控制的問題。為了解決上述問題,本發(fā)明提供了一種嵌入式系統(tǒng)的控制方法,包括所述嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動的當前校-瞼值與二級啟動預 置的校驗值進行比較,判斷若兩者一致,則對內(nèi)存中應用程序模塊的當前校 驗值與應用程序模塊預置的校驗值進行比較,判斷若兩者一致,則設置標記位F0;
所述嵌入式系統(tǒng)對所述應用程序沖莫塊的基礎標記位Fn和所述標記位F0進行相與運算,判斷若相與運算的結果為1,則初始化該應用程序模塊并啟動。
本發(fā)明還提供了 一種嵌入式系統(tǒng),包括應用程序模塊和二級啟動模塊,所述二級啟動模塊用于所述嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比較,判斷若兩者一致,則對內(nèi)存中應用程序模塊的當前校驗值與應用程序模塊預置的校驗值進行比較,判斷若兩者一致,則i殳置標記位FO;對所述應用程序才莫塊的基礎標記位Fn和所述標記位FO進行相與運算,判斷若相與運算的結果為1,則初始化該應用程序模塊并啟動。
與現(xiàn)有技術相比,應用本發(fā)明,通過二級啟動控制應用程序的引導,解決了嵌入式系統(tǒng)中難以對應用程序進行選擇性控制的問題,滿足了對應用功能進行選配的需要。
圖1是本發(fā)明中嵌入式系統(tǒng)的控制方法的流程圖2是本發(fā)明中啟動程序加載示意圖3是本發(fā)明中二級啟動執(zhí)行、設置參數(shù)流程的示意圖4是本發(fā)明中應用程序模塊啟動,讀取標記位的示意圖。
具體實施例方式
下面結合附圖和具體實施方式
對本發(fā)明作進一 步說明。
本發(fā)明的主要構思是通過設備啟動過程中,增加一個二級啟動來控制應用程序啟動,主要包括
(1)在嵌入式系統(tǒng)的ROM中固化一個啟動程序,在里面增加對二級啟動程序的校驗。這個校驗包括二級啟動程序的完整性和合法性。(2) 在應用程序中增加一個二級啟動程序,完成對二級啟動程序的校驗之后,開始執(zhí)行二級啟動程序。二級啟動程序/人RAM中的某一固定地址處開始設置數(shù)據(jù)。
(3) 二級啟動執(zhí)行完畢后,開始執(zhí)行主應用程序。主應用程序通過讀取固定地址出的數(shù)據(jù),來設置某些功能的開關。
如圖1所示,本發(fā)明中在嵌入式系統(tǒng)上通過二級啟動控制應用程序啟動的方法,包括
步驟IIO、嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動的當前4交-驗值與二級啟動預置的校驗值進行比較,如果兩者一致,則判定二級啟動的當前校驗值完整有效,執(zhí)行步驟120;
如圖2所示,首先bootloader是固化在設備的ROM當中,當系統(tǒng)加電之后,boot loader開始運行,在內(nèi)存中預設一個校-驗數(shù)字S0,從二級啟動的首地址P0開始,取2個字節(jié),模SO保存為校驗結果,并將當前地址P1后移2個字節(jié)。然后開始循環(huán),從當前地址P1取2字節(jié)與校驗結果S1相加,模SO保存為校驗結果Sl,當前地址P1開始后移2字節(jié)。當判斷P1已經(jīng)到達二級啟動的末尾地址后,保存當前校驗結果S1為二級啟動的當前校驗值。然后對Sl和二級啟動中預置的校驗值進行比較,如果一致,則認為二級啟動的當前校驗值完整有效,并開始執(zhí)行二級啟動;否則認為啟動程序損壞,程序異常退出。
步驟120、嵌入式系統(tǒng)對內(nèi)存中應用程序模塊的當前校驗值與應用程序模塊預置的校驗值進行比較,如果兩者一致,則判定應用程序模塊的當前校驗值完整有效,設置標記位F0;
圖2為本發(fā)明中二級啟動模塊開始設置標記位的流程。
二級啟動開始執(zhí)行后,首先對應用程序模塊進行校驗。校驗的過程與啟動程序模塊的boot loader對二級啟動的校驗算法一致。校驗計算結束后,對校驗結果和應用程序模塊內(nèi)置的校驗結果進行對比,如果不一致,應用程序異常退出。如果一致,二級啟動模塊開始設置標記位F0。這個標記位F0就是用來控制應用程序開關的關鍵。其中,標記位F0的大小是根據(jù)需要控制的應用程序模塊的數(shù)目來決定。標記位FO的每一位的值,就決定其對應的應用程序模塊是否啟用。所述標記位F0為0,則表示這個位所標記的應用程序才莫塊不啟用;所述標記位F0為1則示這個位所標記的應用程序模塊啟用。
系統(tǒng)在預定的地址空間將標記位F0寫入。
步驟130、嵌入式系統(tǒng)將設置后的所述標記位F0保存為全局變量,對所述應用程序才莫塊的基礎標記位Fn和所述標記位F0進行相與運算,如果運算的結果為1,則初始化該應用程序模塊并啟動該應用程序模塊。
圖3為應用程序啟動的讀取標記位示意圖。
應用程序的主要任務就是完成各個應用程序模塊的初始化和執(zhí)行。在初始化的過程中,首先獲取系統(tǒng)設置的標記位F0,并保存為全局變量,然后開始啟動每一個應用程序模塊。每一個應用程序模塊都有一個專用的基礎標記位Fn,這個基礎標記位Fn是一個只在一個二進制的位上為1的一個數(shù)字,數(shù)字的范圍與標記位F0 —致,代表了該應用程序模塊在標記位F0中的位置。啟動之前,首先將標記位FO和基礎標記位Fn相與。如果相與的結果為1,表示該模塊需要啟用,該模塊的初始化開始進行。該模塊的初始化完成后,開始下一模塊的比較和初始化。全部初始化完成后,設備開始正常運行。
本發(fā)明的嵌入式系統(tǒng),包括應用程序模塊和二級啟動模塊,其中
二級啟動模塊,用于所述嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比較,判斷若兩者一致,則對內(nèi)存中應用程序模塊的當前校驗值與應用程序模塊預置的校驗值進行比較,判斷若兩者一致,則設置標記位F0;對所述應用程序模塊的基礎標記位Fn和所述標記位FO進行相與運算,判斷若相與運算的結果為1,則初始化該應用程序才莫塊并啟動。
所述二級啟動模塊,還用于設置標記位FO后,在預定的地址空間將所述標記位F0寫入,并將該標記位F0保存為全局變量。
所述二級啟動模塊對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比較,是指
7所述二級啟動沖莫塊在內(nèi)存中預設一個校驗數(shù)字so,從二級啟動的首地
址P0開始,取2個字節(jié),模SO保存為校驗結果,并將當前地址P1后移2個字節(jié);然后開始循環(huán),從當前地址P1取2個字節(jié)與校驗結果S1相加,模SO保存為校驗結果Sl,當前地址Pl開始后移2個字節(jié),當判斷當前地址Pl已經(jīng)到達二級啟動的末尾地址后,保存當前校驗結果S1為二級啟動的當前校驗值,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比較,如果兩者一致,則判定二級啟動的當前校驗值完整有效。
所述二級啟動模塊設置所述標記位F0的大小是根據(jù)需要控制的應用程序模塊的數(shù)目來決定;
其中,所述標記位FO的值,就決定其對應的應用程序^^莫塊是否啟用;所述標記位F0為0,則表示這個位所標記的應用程序才莫塊不啟用;所述標記位F0為1則示這個位所標記的應用程序才莫塊啟用。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉該技術的人在本發(fā)明所揭露的技術范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1、一種嵌入式系統(tǒng)的控制方法,其特征在于,包括所述嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比較,判斷若兩者一致,則對內(nèi)存中應用程序模塊的當前校驗值與應用程序模塊預置的校驗值進行比較,判斷若兩者一致,則設置標記位F0;所述嵌入式系統(tǒng)對所述應用程序模塊的基礎標記位Fn和所述標記位F0進行相與運算,判斷若相與運算的結果為1,則初始化該應用程序模塊并啟動。
2、 如權利要求1所述的控制方法,其特征在于,所述嵌入式系統(tǒng)對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校 驗值進行比較,是指所述嵌入式系統(tǒng)在內(nèi)存中預設一個校驗數(shù)字S0,從二級啟動的首地址 P0開始,取2個字節(jié),模SO保存為校驗結果,并將當前地址P1后移2個 字節(jié);然后開始循環(huán),從當前地址Pl取2個字節(jié)與校驗結果Sl相加,模 SO保存為校驗結果Sl,當前地址Pl開始后移2個字節(jié),當判斷當前地址 Pl已經(jīng)到達二級啟動的末尾地址后,保存當前校驗結果S1為二級啟動的當 前校驗值,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比 較,如果兩者一致,則判定二級啟動的當前校驗值完整有效。
3、 如權利要求1所述的控制方法,其特征在于,所述標記位F0的大小是根據(jù)需要控制的應用程序模塊的數(shù)目來決定;其中,所述標記位FO的值,就決定其對應的應用程序模塊是否啟用; 所述標記位F0為0,則表示這個位所標記的應用程序才莫塊不啟用;所述標 記位F0為1則示這個位所標記的應用程序才莫塊啟用。
4、 如權利要求1所述的控制方法,其特征在于, 所述嵌入式系統(tǒng)設置標記位F0后,還包括在預定的地址空間將所述標記位F0寫入,并將該標記位F0 4呆存為全局變量。
5、 一種嵌入式系統(tǒng),包括應用程序模塊,其特征在于,還包括二級啟動;f莫塊,用于所述嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動 的當前校驗值與二級啟動預置的校驗值進行比較,判斷若兩者一致,則對內(nèi) 存中應用程序模塊的當前校驗值與應用程序模塊預置的校驗值進行比較,判 斷若兩者一致,則i殳置標記位FO;對所述應用程序模塊的基礎標記位Fn和 所述標記位F0進行相與運算,判斷若相與運算的結果為1,則初始化該應 用程序^^莫塊并啟動。
6、 如權利要求5所述的嵌入式系統(tǒng),其特征在于,所述二級啟動模塊對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的 校驗值進行比較,是指所述二級啟動模塊在內(nèi)存中預設一個校驗數(shù)字S0,從二級啟動的首地 址P0開始,取2個字節(jié),模SO保存為校驗結果,并將當前地址P1后移2 個字節(jié);然后開始循環(huán),從當前地址P1取2個字節(jié)與校驗結果S1相加,模 S0保存為校驗結果Sl,當前地址Pl開始后移2個字節(jié),當判斷當前地址 Pl已經(jīng)到達二級啟動的末尾地址后,保存當前校驗結果S1為二級啟動的當 前校驗值,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比 較,如果兩者一致,則判定二級啟動的當前校驗值完整有效。
7、 如權利要求5所述的嵌入式系統(tǒng),其特征在于,所述二級啟動才莫塊設置所述標記位F0的大小是根據(jù)需要控制的應用程 序模塊的數(shù)目來決定;其中,所述標記位FO的值,就決定其對應的應用程序模塊是否啟用; 所述標記位FO為O,則表示這個位所標記的應用程序才莫塊不啟用;所述標 記位F0為1則示這個位所標記的應用程序才莫塊啟用。
8、 如權利要求5所述的嵌入式系統(tǒng),其特征在于,所述二級啟動沖莫塊,還用于設置標記位FO后,在預定的地址空間將所 述標記位F0寫入,并將該標記位F0保存為全局變量。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)的控制方法,包括嵌入式系統(tǒng)加電后,對內(nèi)存中二級啟動的當前校驗值與二級啟動預置的校驗值進行比較,判斷若兩者一致,則對內(nèi)存中應用程序模塊的當前校驗值與應用程序模塊預置的校驗值進行比較,判斷若兩者一致,則設置標記位F0,對所述應用程序模塊的基礎標記位Fn和所述標記位F0進行相與運算,判斷若相與運算的結果為1,則初始化該應用程序模塊并啟動。應用本發(fā)明,通過二級啟動控制應用程序的引導,解決了嵌入式系統(tǒng)中難以對應用程序進行選擇性控制的問題,滿足了對應用功能進行選配的需要。
文檔編號G06F9/445GK101630267SQ20091016807
公開日2010年1月20日 申請日期2009年8月24日 優(yōu)先權日2009年8月24日
發(fā)明者任安濤, 朱作義, 趙海濤 申請人:中興通訊股份有限公司