一種Boot啟動(dòng)裝置和啟動(dòng)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種Boot啟動(dòng)裝置和啟動(dòng)方法,特別是嵌入式系統(tǒng)啟動(dòng)過程中的Boot 啟動(dòng)裝置和啟動(dòng)方法,屬于計(jì)算機(jī)控制技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 嵌入式系統(tǒng)是為特殊應(yīng)用建造的,硬件與軟件高度集成,開發(fā)模型是硬件與軟件 協(xié)同設(shè)計(jì)的模型。Boot是嵌入式開發(fā)的第一個(gè)環(huán)節(jié),緊密的將硬件與軟件結(jié)合在一起,對于 嵌入式系統(tǒng)后續(xù)開發(fā)及使用至關(guān)重要。Boot-般固化到CPU中,從目標(biāo)系統(tǒng)上的某個(gè)存儲(chǔ)設(shè) 備上將可執(zhí)行程序加載到RAM中執(zhí)行,所以需要將可執(zhí)行程序事先燒寫到存儲(chǔ)設(shè)備中,需要 其他外部燒寫設(shè)備,而且一般固化的Boot沒有配置文件,不能根據(jù)需要靈活配置系統(tǒng)
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提供了一種Boot啟動(dòng)裝置和啟 動(dòng)方法,在存儲(chǔ)設(shè)備中添加配置信息,可以通過讀取存儲(chǔ)設(shè)備的配置信息初始化相應(yīng)硬件 模塊,在沒有運(yùn)行可執(zhí)行程序之前實(shí)現(xiàn)預(yù)定功能的快速啟動(dòng),滿足了在嵌入式系統(tǒng)啟動(dòng)過 程中預(yù)設(shè)功能的快速啟動(dòng)的需求,而且在Boot運(yùn)行過程中輸出標(biāo)志信息,監(jiān)控Boot的執(zhí)行 過程。
[0004] 本發(fā)明的技術(shù)解決方案是:一種Boot啟動(dòng)裝置,主要包括:
[0005] 存儲(chǔ)設(shè)備,用于存放配置信息和可執(zhí)行程序;所述配置信息為預(yù)先給定的配置參 數(shù);
[0006] CPU,用于啟動(dòng)Boot,讀取存儲(chǔ)設(shè)備中的配置信息和可執(zhí)行程序;
[0007] RAM,用于存放從存儲(chǔ)設(shè)備中讀取的可執(zhí)行程序和Boot啟動(dòng)過程中產(chǎn)生的數(shù)據(jù)。
[0008] 所述配置參數(shù)用于對CPU的外設(shè)進(jìn)行配置,在可執(zhí)行程序運(yùn)行之前,CPU的外設(shè)根 據(jù)配置信息執(zhí)行預(yù)先設(shè)定的功能。
[0009] 所述在Boot啟動(dòng)裝置中還包括更新模塊,用于更新存儲(chǔ)設(shè)備中的配置信息和可執(zhí) 行程序。
[0010] 一種基于所述Boot啟動(dòng)裝置的Boot啟動(dòng)流程,包括:
[0011] 配置信息讀取步驟,CPU讀取存儲(chǔ)設(shè)備中的配置信息,配置CPU的外設(shè);
[0012] 配置功能執(zhí)行步驟,CPU的外設(shè)根據(jù)配置信息,執(zhí)行預(yù)先給定的功能;
[0013] 可執(zhí)行程序讀取步驟,CPU讀取存儲(chǔ)設(shè)備中的可執(zhí)行程序,并存放在RAM中。
[0014] 還包括更新步驟,用于更新存儲(chǔ)設(shè)備中的配置信息和可執(zhí)行程序。
[0015] 所述Boot啟動(dòng)流程在運(yùn)行過程中輸出標(biāo)志信息,用于對Boot啟動(dòng)流程進(jìn)行監(jiān)控。
[0016] 本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:
[0017] 本發(fā)明通過在存儲(chǔ)設(shè)備中添加配置信息,通過讀取存儲(chǔ)設(shè)備的配置信息初始化相 應(yīng)硬件模塊,可以實(shí)現(xiàn)在沒有運(yùn)行可執(zhí)行程序之前實(shí)現(xiàn)預(yù)定功能的快速啟動(dòng),滿足了在嵌 入式系統(tǒng)啟動(dòng)過程中預(yù)設(shè)功能的快速啟動(dòng)的需求,而且在Boot運(yùn)行過程中輸出標(biāo)志信息, 監(jiān)控Boot的執(zhí)行過程。
【附圖說明】
[0018] 圖1為本發(fā)明中Boot啟動(dòng)裝置第一種實(shí)施例的示意圖;
[0019] 圖2為本發(fā)明中Boot啟動(dòng)裝置第二種實(shí)施例的示意圖;
[0020] 圖3為本發(fā)明中Boot啟動(dòng)方法第一種實(shí)施例的示意圖;
[0021 ]圖4為本發(fā)明中Boot啟動(dòng)方法第二種實(shí)施例的示意圖;
[0022]圖5為本發(fā)明中配置信息讀取的一個(gè)流程實(shí)例;
[0023]圖6為本發(fā)明中可執(zhí)行程序讀取和存儲(chǔ)的一個(gè)流程實(shí)例。
【具體實(shí)施方式】
[0024]為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合 附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明,應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用 以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]如圖1所示為本發(fā)明中Boot啟動(dòng)裝置第一種實(shí)施例的示意圖,從圖1可知,本發(fā)明 中Boot啟動(dòng)裝置包括:
[0026] 存儲(chǔ)設(shè)備101,用于存放配置信息和可執(zhí)行程序;所述配置信息為預(yù)先給定的配置 參數(shù);
[0027] 所述配置信息為預(yù)先設(shè)定的CPU外設(shè)配置信息,用于對CPU的外設(shè)進(jìn)行配置,在可 執(zhí)行程序運(yùn)行之前,CPU的外設(shè)根據(jù)配置信息執(zhí)行預(yù)先設(shè)定的功能。例如,通過一些參數(shù)的 設(shè)定,在可執(zhí)行程序運(yùn)行之前,實(shí)現(xiàn)信號(hào)的快速捕獲與跟蹤等。
[0028] 所述可執(zhí)行程序是預(yù)先裝訂在存儲(chǔ)設(shè)備101中的程序,所述程序可以為預(yù)先給定 的任意一些嵌入式系統(tǒng)能夠執(zhí)行的程序,包括一些具體的信號(hào)解調(diào)、定位算法等。
[0029]所述存儲(chǔ)設(shè)備在具體操作過程中可以為Flash、SD卡、硬盤等。
[0030] CPU102,用于啟動(dòng)Boot,讀取存儲(chǔ)設(shè)備中的配置信息和可執(zhí)行程序;
[0031] CPU在啟動(dòng)Boot之后,首先需要讀取配置信息,對CPU外設(shè)進(jìn)行設(shè)置,以根據(jù)配置信 息對CPU的外設(shè)進(jìn)行一些快速的操作,然后再對可執(zhí)行程序進(jìn)行讀取,并將讀取的可執(zhí)行程 序儲(chǔ)存在RAM103中。
[0032]當(dāng)然,CPU的功能除了啟動(dòng)Boot外,還需要進(jìn)行初始化操作,所述初始化包括設(shè)置 異常向量、初始化堆棧、加載程序運(yùn)行所需庫文件等。
[0033] RAM103,用于存放從存儲(chǔ)設(shè)備中讀取的可執(zhí)行程序和Boot啟動(dòng)過程中產(chǎn)生的數(shù) 據(jù)。具體為:所述RAM103將CPU讀取的的可執(zhí)行程序的各個(gè)代碼段存放到相應(yīng)RAM中、跳轉(zhuǎn)PC 指針到起始地址,Boot運(yùn)行過程中的數(shù)據(jù)也存放在相應(yīng)RAM中。
[0034]進(jìn)一步的,為了更好的對存儲(chǔ)設(shè)備中的信號(hào)進(jìn)行訪問和讀取,在整個(gè)存儲(chǔ)設(shè)備的 開始,配置信息的開始和可執(zhí)行程序的開始設(shè)置相應(yīng)的標(biāo)志位,若標(biāo)志位不為預(yù)設(shè)的數(shù)字 或字母,則代表對應(yīng)的數(shù)據(jù)為空,不對相應(yīng)的數(shù)據(jù)進(jìn)行訪問,若標(biāo)志位為預(yù)設(shè)的數(shù)字或字 母,則代表對應(yīng)的數(shù)據(jù)不為空,對相應(yīng)的數(shù)據(jù)進(jìn)行訪問。表1所示為配置信息格式的一個(gè)實(shí) 例,表1中0x55AAAA55為配置信息的標(biāo)志位,從標(biāo)志位開始的數(shù)據(jù)為具體的配置信息。在實(shí) 際執(zhí)行過程中,配置信息往往是對CPU外設(shè)中的寄存器進(jìn)行具體的配置,因此可以在配置信 息中設(shè)置寄存器數(shù)量以及每個(gè)寄存器的地址、配置值和操作延時(shí)。這樣,在CPU初始啟動(dòng) Boot時(shí),首先讀取配置信息來對CPU外設(shè)中的寄存器進(jìn)行設(shè)置,從而實(shí)現(xiàn)對信號(hào)的捕獲和跟 蹤等操作,這樣,在可執(zhí)行程序運(yùn)行時(shí),信號(hào)