專利名稱:加載非易失存儲器程序的方法及嵌入式系統(tǒng)和控制裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種加載非易失存儲器NM程序的 方法及嵌入式系統(tǒng)。
背景技術(shù):
對于電視機頂盒、手機、掌上電腦之類的嵌入式系統(tǒng),使用非易失存儲 器保存程序和數(shù)據(jù),以下簡稱NVM。比如閃存(FLASH MEMORY),電可擦寫可編 程只讀存儲器(EEPROM, Electrically Erasable Programmable Read Only Memory)等都是NVM。非易失存儲設(shè)備在嵌入式系統(tǒng)中的作用可以類比于PC機 的硬盤。 一般在設(shè)備出廠的時候,其NVM內(nèi)容是空的,需要燒寫;當(dāng)NVM中 的程序需要升級的時候,也需要重新燒寫。
現(xiàn)有技術(shù)中,對于NVM的程序和數(shù)據(jù)加載,可以采用JTAG連接仿真器, 在處理器上運行一段腳本程序來完成。該方法可以在NVM完全為空的情況下 實現(xiàn)燒寫,但需要購買昂貴的仿真器,成本很高,使用不方便。也可以先使 用燒片機,將NVM中灌入數(shù)據(jù)和程序,然后再貼片到PCB板上。但該方法需 要專業(yè)并且昂貴的燒片機,使用不方便。
發(fā)明人發(fā)現(xiàn) 現(xiàn)有技術(shù)至少存在以下缺陷對NVM的燒寫成本較高,使用 不方便。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種加載非易失存儲器NVM程序的方法和嵌入式系統(tǒng) 和控制裝置,可以方便地對NVM進行首次燒寫或升級。 一種加載非易失存儲器NVM程序的方法,包括判斷是否需要加載NVM程序,當(dāng)判斷需要加載NVM程序時,執(zhí)行加載過
程,所述加載過程包括
Al、通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù); A2、利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化; A3、通過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部RAM; A4、安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述 NVM驅(qū)動并啟動所述NVM;
A5、通過所述高速通信接口下載NVM程序; A6、將所述NVM程序燒寫到所述NVM中。
一種嵌入式系統(tǒng),包括中央控制單元CPU,片上存儲器RAM,片上只讀 存儲器R0M,外部存儲器RAM,低速通信接口,高速通信接口,非易失存儲器
畫;
所述中央控制單元,用于在系統(tǒng)運行后判斷是否加載NVM程序,當(dāng)判斷 需要加載NVM程序時,通過所述低速通信接口下載外部存儲器RAM的初始化 數(shù)據(jù)到所述片上存儲器RAM;利用所述初始化數(shù)據(jù)對外部RAM進行初始化;通 過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部存儲器RAM;安 裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述NVM驅(qū)動并 啟動所述NVM;通過所述高速通信接口下載NVM程序;將所述NVM程序燒寫到 所述NVM中;
所述片上存儲器RAM,用于存儲所述CPU下載的外部存儲器RAM的初始化 數(shù)據(jù);
所述外部存儲器RAM,用于存儲所述CPU下載的高速通信接口驅(qū)動和NVM 驅(qū)動;
所述片上只讀存儲器ROM,存儲CPU和低速通信接口的初始化程序,用于 在系統(tǒng)啟動時對CPU和低速通信接口進行初始化以使CPU和低速通信接口正常工作;
所述非易失存儲器NVM,用于保存應(yīng)用程序和數(shù)據(jù)。
一種控制裝置,其特征在于,包括 下載單元,判斷單元,初始化單元,驅(qū)動單元,燒寫單元
下載單元,用于通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù), 通過簡單通信接下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部存儲器RAM,及 通過所述高速通信接口下載NVM程序;
初始化單元,用于利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化;
驅(qū)動單元,用于安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口 , 及安裝所述NVM驅(qū)動并啟動所述NVM;
燒寫單元,用于將下載的NVM程序燒寫到NVM中。
通過本發(fā)明實施例提供的技術(shù)方案,可以通過低速通信接口和高速通信 接口可以下載NVM程序,以低成本和方便的實現(xiàn)對于空白NVM的首次燒寫或 升級。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講, 在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的加載非易失存儲器NVM程序的方法流程圖2為本發(fā)明實施例的安全加載流程圖3為本發(fā)明實施例提供的嵌入式系統(tǒng)結(jié)構(gòu)示意圖4為本發(fā)明實施例嵌入式系統(tǒng)的CPU結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例四提供的NVM加載的應(yīng)用實施例的流程示意圖;
圖6為本發(fā)明實施例四中步驟54的NVM安全加載流程示意圖7為本發(fā)明實施例五提供的NVM加載的應(yīng)用實施例的流程示意圖;
圖8為本發(fā)明實施例五中步驟705所示的NVM普通加載流程。
具體實施例方式
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講, 在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
實施例一
本實施例提供一種加載非易失存儲器NVM程序的方法,本發(fā)明實施例所 說的加載,指的是獲取需要保存在NVM內(nèi)的程序并燒寫或更新至NVM中,或 對NVM的程序進行升級。本發(fā)明實施例所說的NVM程序,包括需要保存在NVM 內(nèi)的應(yīng)用程序和數(shù)據(jù),類似于PC機上硬盤上保存的各種應(yīng)用程序和數(shù)據(jù)等, 例如操作系統(tǒng),用戶數(shù)據(jù),用戶程序等。如圖1所示,該加載過程包括
Al、通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù);
A2、利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化;
A3 、通過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部RAM;
A4、安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述 NVM驅(qū)動并啟動所述NVM;
A5、通過所述高速通信接口下載NVM程序;
A6、將所述NVM程序燒寫到所述NVM中。
這里的外部RAM器件,可以如SDR細或者DDR等。簡單的低速通信接口 比如串口,復(fù)雜的高速通信接口比如USB或者網(wǎng)口或者IEEE1394接口。外部 RAM的初始化數(shù)據(jù)包括初始化RAM所需的程序或參數(shù)。本發(fā)明實施例的技術(shù)方案,可以通過低速通信接口和高速通信接口下載所需的NVM程序,實現(xiàn)對NVM 的首次燒寫或程序升級,無需另外購買昂貴的燒寫設(shè)備,成本較低。
仍如圖1所示,在進行加載過程之前還可以包括步驟
A0、判斷是否需要加載NVM程序,當(dāng)判斷需要加載NVM程序時,執(zhí)行上 述的加載過程,當(dāng)判斷不需要加載NVM程序時,則可以執(zhí)行步驟A7:跳轉(zhuǎn)到 當(dāng)前的NVM程序,執(zhí)行當(dāng)前的NVM程序。即如果不需要對NVM進行重新燒錄 或升級,則可以直接執(zhí)行當(dāng)前己燒寫到NVM內(nèi)的程序和數(shù)據(jù)。
實施例二
為了 NVM程序的合法性,避免非授權(quán)程序被加載到NVM中,還可以對上 述加載流程施加安全機制,即啟用安全加載流程。如圖2所示,為本發(fā)明實 施例所提供的安全加載流程,包括
Al、通過低速通信接口下載外部存儲器RAM的初始化程序;
Bl、判斷所述初始化程序是否為授權(quán)程序,若是,執(zhí)行步驟A2;否則結(jié) 束當(dāng)前加載過程;
A2、利用所述初始化數(shù)據(jù)對外部RAM進行初始化,
A3、通過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部RAM;
B2、判斷所述高速通信接口驅(qū)動和所述NVM驅(qū)動是否是授權(quán)的驅(qū)動,若 是,執(zhí)行步驟A4;否則結(jié)束當(dāng)前加載過程;
A4、安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述 NVM驅(qū)動并啟動所述NVM;
A5、通過所述高速通信接口下載NVM程序;即下載所要更新或燒寫至NVM 的程序或數(shù)據(jù);
B3、判斷所述NVM程序是否為授權(quán)程序,若是,執(zhí)行步驟A6,否則結(jié)束 當(dāng)前加載過程;
A6、將所述NVM程序燒寫到所述NVM中。
其中,步驟B1, B2, B3三個步驟中,執(zhí)行其中一個或多個均可以達到安全的目的,避免非授權(quán)程序燒寫至NVM中。判斷是否為授權(quán)程序或數(shù)據(jù)的方
法,在實際運用中可以有多種方式,例如對NVM程序或初始化數(shù)據(jù)或高速通 信接口驅(qū)動或NVM驅(qū)動或NVM程序進行安全設(shè)置,如進行預(yù)先的加密或簽名, 在判斷的時候進行解密看是否解密成功,解密成功則表示下載的程序或數(shù)據(jù) 是得到授權(quán)的,是合法的;或者在判斷的時候進行簽名鑒別,看是否鑒別成 功,鑒別成功則表示下載的程序或數(shù)據(jù)是授權(quán)程序或授權(quán)數(shù)據(jù)。例如,可以 采用單向散列函數(shù)首先計算出數(shù)據(jù)區(qū)的指紋,然后采用非對稱加密算法對指 紋加密;或者采用單向散列函數(shù)首先計算出數(shù)據(jù)區(qū)的指紋,然后使用對稱加 密算法對指紋加密;也可以采用只計算指紋,不進行加密的方法。只有簽名 (指紋)鑒別通過的程序,才能夠被執(zhí)行。
為了進一步加強安全性能,可以使用一次性編程ROM (OTP, One Time Programable ROM)或者管腳進行配置來實現(xiàn)在NVM程序運行之前是否進行安 全啟動,所說的安全啟動是指在執(zhí)行NVM程序之前,鑒別一下NVM是否為授 權(quán)程序,若是才可以跳轉(zhuǎn)到NVM程序執(zhí)行,否則系統(tǒng)無法執(zhí)行NVM程序???以通過在NVM程序增加了一個簽名區(qū),當(dāng)簽名區(qū)鑒別通過的程序才能夠被執(zhí) 行來實現(xiàn)安全啟動。具體可以使用OTP或者管腳進行配置,決定芯片的安全 特性是否使能,也就是安全啟動是否使能。在具體實現(xiàn)中,NVM程序的加載和 安全啟動可以組合成多種實施方案,后面將會結(jié)合嵌入式系統(tǒng)介紹其中的兩 種方案。
實施例三
本發(fā)明實施例還提供一種嵌入式系統(tǒng),如圖3所示,包括 中央控制單元CPU31,片上存儲器RAM32,片上只讀存儲器ROM 33,外 部存儲器RAM34,低速通信接口35,高速通信接36,非易失存儲器NVM 37;
所述CPU 31,用于在系統(tǒng)運行后判斷是否加載NVM程序,當(dāng)判斷需要加 載NVM程序時,通過所述低速通信接口 35下載外部存儲器RAM 34的初始化 數(shù)據(jù)到所述片上存儲器RAM 32;利用所述初始化數(shù)據(jù)對外部RAM 34進行初始化;通過低速通信接口 35下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部存儲 器RAM 34;安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口 36,及安裝 所述NVM驅(qū)動并啟動所述NVM 37;通過所述高速通信接口 36下載NVM程序; 將所述NVM程序燒寫到所述NVM 37中;
所述片上存儲器RAM 32,用于存儲所述CPU 31下載的外部存儲器RAM的 初始化數(shù)據(jù);
所述外部存儲器RAM 32,用于存儲所述CPU 31下載的高速通信接口驅(qū)動 和NVM驅(qū)動;
所述片上只讀存儲器ROM 33,存儲CPU和低速通信接口的初始化程序, 用于在系統(tǒng)啟動時對CPU 31和低速通信接口進行初始化以使CPU 31和低速 通信接口 35正常工作;
所述非易失存儲器NVM 37,用于保存應(yīng)用程序和數(shù)據(jù)。
上述各模塊中,CPU,片上R0M,片上RAM通??梢约稍谝黄?,作為片 上系統(tǒng)(System on Chip)的一部分。
本發(fā)明實施例提供的嵌入式系統(tǒng),在需要對NVM的程序進行燒寫或升級 時,可以方便地通過低速通信接口如串口或者高速通信接口如USB接口網(wǎng)口 等下載所需的程序,特別對于首次燒寫很便利,不需要額外的設(shè)備,降低了 成本。
為了保證燒寫到NVM的程序合法性,本發(fā)明實施例的嵌入式系統(tǒng)可以在 燒寫NVM之前,對NVM程序加載的過程實行安全加載過程,由CPU執(zhí)行所述 安全加載過程。如圖4所示CPU 31的結(jié)構(gòu)示意圖,包括下載單元401,判 斷單元402,初始化單元403,驅(qū)動單元404,燒寫單元405:
下載單元401,用于通過低速通信接口 35下載外部存儲器RAM 34的初始 化數(shù)據(jù),通過低速通信接口 35下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部 存儲器RAM 34,及通過所述高速通信接口 36下載NVM程序;
判斷單元402,用于在所述下載單元401下載外部存儲器RAM的初始化數(shù)據(jù)后,判斷所述初始化數(shù)據(jù)是否為授權(quán)程序,若判斷為是,通知所述初始化
單元403利用所述初始化數(shù)據(jù)對外部存儲器RAM 34進行初始化,若判斷為否, 通知所述初始化單元403不對外部存儲器RAM進行初始化;或者
用于在所述下載單元401下載高速通信接口驅(qū)動和NVM驅(qū)動后,判斷所 述高速通信接口驅(qū)動和NVM驅(qū)動是否為授權(quán)程序,若判斷為是,通知所述驅(qū) 動單元404安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所 述NVM驅(qū)動并啟動所述NVM,若判斷為否,通知所述驅(qū)動單元404不安裝所述 高速通信接口驅(qū)動和所述NVM驅(qū)動;或者
用于在所述下載單元401下載NVM程序后,判斷下載的NVM程序是否為 授權(quán)程序,若判斷為是,通知所述燒寫單元405將下載的NVM程序燒寫到NVM 中,若判斷為否,通知所述燒寫單元405不進行燒寫。
上述的CPU單元在實際應(yīng)用中可以是一個單獨硬件設(shè)備,或者是由軟件 程序運行于硬件之上,因此本發(fā)明實施例還提供一種控制裝置,參考圖4,該 控制裝置包括
下載單元401,用于通過低速通信接口 35下載外部存儲器RAM 34的初始 化數(shù)據(jù),通過低速通信接口 35下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部 存儲器RAM 34,及通過所述高速通信接口 36下載NVM程序;
初始化單元403,用于利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化;
驅(qū)動單元404,用于安裝所述高速通信接口驅(qū)動并啟動所述高速通信接 口,及安裝所述NVM驅(qū)動并啟動所述NVM;
燒寫單元405,用于將下載單元401下載的NVM程序燒寫到NVM中。
可選地,該控制裝置還可以包括
判斷單元402,用于在所述下載單元401下載外部存儲器RAM的初始化數(shù) 據(jù)后,判斷所述初始化數(shù)據(jù)是否為授權(quán)程序,若判斷為是,通知所述初始化 單元403利用所述初始化數(shù)據(jù)對外部存儲器RAM 34進行初始化,若判斷為否,通知所述初始化單元403不對外部存儲器RAM進行初始化;或者
用于在所述下載單元401下載高速通信接口驅(qū)動和NVM驅(qū)動后,判斷所 述高速通信接口驅(qū)動和NVM驅(qū)動是否為授權(quán)程序,若判斷為是,通知所述驅(qū) 動單元404安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所 述NVM驅(qū)動并啟動所述NVM,若判斷為否,通知所述驅(qū)動單元404不安裝所述 高速通信接口驅(qū)動和所述NVM驅(qū)動;或者
用于在所述下載單元401下載NVM程序后,判斷下載的NVM程序是否為 授權(quán)程序,若判斷為是,通知所述燒寫單元405將下載的NVM程序燒寫到NVM 中,若判斷為否,通知所述燒寫單元405不進行燒寫。
本發(fā)明實施例對下載單元401下載的程序或數(shù)據(jù)進行驗證合法性,保證 只有經(jīng)過授權(quán)的程序才能被執(zhí)行,增加了系統(tǒng)的安全性。
下面通過實施例四和實施例五,介紹通過本發(fā)明實施例提供的嵌入式系 統(tǒng)執(zhí)行本發(fā)明實施提供的方法的應(yīng)用實施例。
實施例四
如圖5所示,嵌入式系統(tǒng)采用本發(fā)明實施例提供的NVM加載的應(yīng)用實施 例一的流程示意圖,包括以下步驟
步驟51、系統(tǒng)上電,啟動片上ROM;
步驟52、利用片上ROM存儲的程序?qū)PU進行初始化;
步驟53、判斷是否加載NVM程序,若是,執(zhí)行步驟54,否則執(zhí)行步驟55;
步驟54、執(zhí)行NVM安全加載流程,即在下載NVM過程中對下載的程序進 行合法性鑒別;
步驟55、判斷是否安全啟動NVM,若是,執(zhí)行步驟56,否則執(zhí)行步驟57;
步驟56、鑒別當(dāng)前NVM程序的簽名,判斷是否合法,若合法則鑒別成功, 否則鑒別不成功;若鑒別成功,執(zhí)行步驟57,否則系統(tǒng)復(fù)位,重復(fù)上述過程, 或者等待用戶操作。
步驟57、指針跳轉(zhuǎn)到NVM執(zhí)行NVM內(nèi)的程序。其中,步驟54的安全加載過程如圖6所示,包括
步驟601、利用ROM的程序初始化CPU; 步驟602、利用ROM的初始化低速通信接口 ;
步驟603、通過低速通信接口下載外部RAM初始化數(shù)據(jù)到片上RAM;
步驟604、鑒別下載的外部RAM初始化數(shù)據(jù)的簽名,若鑒別通過,則執(zhí)行 步驟605,否則結(jié)束當(dāng)前加載過程,系統(tǒng)復(fù)位或等待用戶操作;
步驟605、利用下載的外部RAM初始化數(shù)據(jù)對外部RAM進行初始化,以使 得外部R認(rèn)正常工作;
步驟606、通過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到外部
RAM;
步驟607、鑒別步驟606下載的驅(qū)動的簽名,若鑒別通過,執(zhí)行步驟608, 否則系統(tǒng)復(fù)位;
步驟608、利用步驟606下載的驅(qū)動啟動高速通信接口和NVM; 步驟609、通過高速通信接口下載NVM程序;
步驟610、下面步驟609下載的NVM程序的簽名,若鑒別通過,執(zhí)行步驟 611,否則系統(tǒng)復(fù)位;
步驟611、將下載的NVM程序燒寫到NVM中。
本發(fā)明實施例可以使得合法用戶方便地對NVM進行首次燒寫或升級,既 保證安全性能,又降低了成本。 實施例五
本實施例與實施四的區(qū)別主要是在NVM加載和安全啟動的順序上,在實 施例五中,首先判斷是否安全啟動,然后判斷是否啟動NVM加載,系統(tǒng)運行 過程包括
步驟701、系統(tǒng)上電,啟動片上ROM;
步驟702、利用片上ROM存儲的程序?qū)PU進行初始化;
步驟703、判斷是否進行安全啟動,若是,執(zhí)行步驟706,否則執(zhí)行步驟704;
步驟704、判斷是否加載NVM;若是執(zhí)行步驟705,否則執(zhí)行步驟707;
步驟705、啟動NVM加載過程;此處的NVM加載過程可以根據(jù)需要,選用 圖6所示的安全加載流程;也可以僅執(zhí)行普通加載流程,如圖8所示,圖8 與圖6所示的加載流程不同在于,圖8免去了對下載的程序或數(shù)據(jù)進行簽名 鑒別的步驟,其他的步驟與圖6所示一致,此處不再贅述;
步驟706、鑒別當(dāng)前NVM程序的簽名,若鑒別成功,執(zhí)行步驟707,否則 系統(tǒng)復(fù)位;
步驟707、 CPU指針跳轉(zhuǎn)到NVM執(zhí)行NVM內(nèi)的程序。
本發(fā)明實施例先判斷是否安全啟動,然后判斷是否NVM加載,加載NVM 的流程可以不進行程序簽名的鑒別,只是會降低加載程序的安全性。本發(fā)明 實施例可以低成本并且方便的完成NVM的首次燒寫或者升級,還有能夠?qū)崿F(xiàn) NVM程序的安全啟動,保證了系統(tǒng)的安全性。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流 程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于 一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施 例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,匪)或隨機存儲記憶體(Random Access Memory, RAM)等。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了 進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已, 并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任 何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種加載非易失存儲器NVM程序的方法,其特征在于,加載過程包括A1、通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù);A2、利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化;A3、通過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部RAM;A4、安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述NVM驅(qū)動并啟動所述NVM;A5、通過所述高速通信接口下載NVM程序;A6、將所述NVM程序燒寫到所述NVM中。
2、 如權(quán)利要求1所述的方法,其特征在于,所述加載過程還包括如下一 個或者多個步驟Bl、執(zhí)行步驟A2之前,判斷所述初始化數(shù)據(jù)是否為授權(quán)數(shù)據(jù),若是,執(zhí) 行步驟A2,否則結(jié)束當(dāng)前加載過程;或者B2、執(zhí)行步驟A4之前,判斷所述高速通信接口驅(qū)動和所述NVM驅(qū)動是否 是授權(quán)的驅(qū)動,若是,執(zhí)行步驟A4;否則結(jié)束當(dāng)前加載過程;或者B3、執(zhí)行步驟A6之前,判斷所述NVM程序是否為授權(quán)程序,若是,執(zhí)行 步驟A2,否則結(jié)束當(dāng)前加載過程。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括,判斷 是否需要加載NVM程序,若需要,執(zhí)行所述加載流程;若不需要,執(zhí)行當(dāng)前NVM程序;或者若不需要,判斷是否進行安全啟動,若不進行安全啟動,則執(zhí)行當(dāng)前NVM 程序;若進行安全啟動,則判斷當(dāng)前NVM程序是否為授權(quán)程序,若是為授權(quán) 程序,則執(zhí)行當(dāng)前NVM程序,否則結(jié)束操作。
4、 如權(quán)利要求1或2所述的方法,其特征在于,在執(zhí)行加載過程之前還 包括判斷是否進行安全啟動,若判斷不進行安全啟動,判斷是否需要加載NVM程序,若需要加載NVM程序,則執(zhí)行所述加載過程,若不需要加載NVM程序, 則執(zhí)行當(dāng)前NVM程序;若判斷進行安全啟動,則判斷當(dāng)前NVM程序是否為授權(quán)程序,若是為授 權(quán)程序,則執(zhí)行當(dāng)前NVM程序,否則結(jié)束操作。
5、 如權(quán)利要求3所述的方法,其特征在于,若判斷不需要加載NVM程序, 則執(zhí)行當(dāng)前NVM程序。
6、 如權(quán)利要求2所述的方法,其特征在于,還包括對初始化數(shù)據(jù)或高速 通信接口驅(qū)動或NVM驅(qū)動或NVM程序進行安全設(shè)置,安全設(shè)置的步驟包括采用單向散列函數(shù)首先計算出受保護區(qū)的指紋,然后采用非對稱加密算 法對指紋加密;或者采用單向散列函數(shù)首先計算出受保護區(qū)的指紋,然后使用對稱加密算法 對指紋加密。
7、 一種嵌入式系統(tǒng),其特征在于,包括中央控制單元CPU,片上存儲 器RAM,片上只讀存儲器ROM,外部存儲器RAM,低速通信接口,高速通信接 口,非易失存儲器NVM;所述中央控制單元,用于判斷是否加載NVM程序,當(dāng)判斷需要加載NVM 程序時,通過所述低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù)到所述片 上存儲器RAM;利用所述初始化數(shù)據(jù)對外部RAM進行初始化;通過低速通信接 口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部存儲器RAM;安裝所述高速通 信接口驅(qū)動并啟動所述高速通信接口 ,及安裝所述NVM驅(qū)動并啟動所述NVM; 通過所述高速通信接口下載NVM程序;將所述NVM程序燒寫到所述NVM中;所述片上存儲器RAM,用于存儲所述CPU下載的外部存儲器RAM的初始化 數(shù)據(jù);所述外部存儲器RAM,用于存儲所述CPU下載的高速通信接口驅(qū)動和NVM 驅(qū)動;所述片上只讀存儲器ROM,存儲CPU和低速通信接口的初始化程序,用于在系統(tǒng)啟動時對CPU和低速通信接口進行初始化以使CPU和低速通信接口正 常工作;所述非易失存儲器NVM,用于保存應(yīng)用程序和數(shù)據(jù)。
8、 如權(quán)利要求7所述的設(shè)備,其特征在于,所述CPU包括下載單元, 判斷單元,初始化單元,驅(qū)動單元,燒寫單元下載單元,用于通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù), 通過簡單通信接下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部存儲器RAM,及 通過所述高速通信接口下載NVM程序;判斷單元,用于在所述下載單元下載外部存儲器RAM的初始化數(shù)據(jù)后, 判斷所述初始化數(shù)據(jù)是否為授權(quán)程序,若判斷為是,通知所述初始化單元利 用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化,若判斷為否,通知所述初 始化單元不對外部存儲器RAM進行初始化;或者用于在所述下載單元下載高速通信接口驅(qū)動和NVM驅(qū)動后,判斷所述高 速通信接口驅(qū)動和NVM驅(qū)動是否為授權(quán)程序,若判斷為是,通知所述驅(qū)動單 元安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述NVM驅(qū) 動并啟動所述NVM,若判斷為否,通知所述驅(qū)動單元不安裝所述高速通信接口 驅(qū)動和所述NVM驅(qū)動;或者用于在所述下載單元下載NVM程序后,判斷下載的NVM程序是否為授權(quán) 程序,若判斷為是,通知所述燒寫單元將下載的NVM程序燒寫到NVM中,若 判斷為否,通知所述燒寫單元不進行燒寫。
9、 如權(quán)利要求7或8所述的設(shè)備,其特征在于,所述低速通信接口包括: 串口,所述高速通信接口包括USB接口或IEEE1394接口。
10、 一種控制裝置,其特征在于,包括 下載單元,判斷單元,初始化單元,驅(qū)動單元,燒寫單元 下載單元,用于通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù), 通過簡單通信接下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部存儲器RAM,及通過所述高速通信接口下載NVM程序;初始化單元,用于利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化;驅(qū)動單元,用于安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口 ,及安裝所述NVM驅(qū)動并啟動所述NVM;燒寫單元,用于將下載的NVM程序燒寫到NVM中。
11、根據(jù)權(quán)利要求10所述的裝置,其特征在于,還包括判斷單元,用于在所述下載單元下載外部存儲器RAM的初始化數(shù)據(jù)后, 判斷所述初始化數(shù)據(jù)是否為授權(quán)程序,若判斷為是,通知所述初始化單元利 用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化,若判斷為否,通知所述初 始化單元不對外部存儲器RAM進行初始化;或者用于在所述下載單元下載高速通信接口驅(qū)動和NVM驅(qū)動后,判斷所述高 速通信接口驅(qū)動和NVM驅(qū)動是否為授權(quán)程序,若判斷為是,通知所述驅(qū)動單 元安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述NVM驅(qū) 動并啟動所述NVM,若判斷為否,通知所述驅(qū)動單元不安裝所述高速通信接口 驅(qū)動和所述NVM驅(qū)動;或者用于在所述下載單元下載NVM程序后,判斷下載的NVM程序是否為授權(quán) 程序,若判斷為是,通知所述燒寫單元將下載的NVM程序燒寫到NVM中,若 判斷為否,通知所述燒寫單元不進行燒寫。
全文摘要
本發(fā)明實施例提供一種加載非易失存儲器程序的方法,該方法包括A1.通過低速通信接口下載外部存儲器RAM的初始化數(shù)據(jù);A2.利用所述初始化數(shù)據(jù)對外部存儲器RAM進行初始化;A3.通過低速通信接口下載高速通信接口驅(qū)動和NVM驅(qū)動到所述外部RAM;A4.安裝所述高速通信接口驅(qū)動并啟動所述高速通信接口,及安裝所述NVM驅(qū)動并啟動所述NVM;A5.通過所述高速通信接口下載NVM程序;A6.將所述NVM程序燒寫到所述NVM中。本發(fā)明實施例可以低成本和方便的實現(xiàn)對于空白NVM的首次燒寫。本發(fā)明還提供了相應(yīng)的嵌入式系統(tǒng)和控制裝置。
文檔編號G06F21/00GK101604249SQ20091010636
公開日2009年12月16日 申請日期2009年3月30日 優(yōu)先權(quán)日2009年3月30日
發(fā)明者張寬懷 申請人:華為技術(shù)有限公司