專利名稱:一種嵌入式計算機系統(tǒng)及其硬件配置方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于嵌入式計算機系統(tǒng)技術(shù),特別是關(guān)于嵌入式計算機系統(tǒng)的中 間層硬件配置技術(shù),具體的講是一種嵌入式計算機系統(tǒng)及其硬件配置方法。
背景技術(shù):
嵌入式計算機系統(tǒng)包括硬件層,中間層和軟件層。如圖1所示,硬件 層中包含嵌入式微處理器、存儲器(SDRAM、 ROM、 Flash等)、操作系統(tǒng)引 導(dǎo)和串口。其中操作系統(tǒng)和應(yīng)用程序都可以固化在ROM中。
硬件層與軟件層之間為中間層,也稱為板級支持包(BSP : Board Support Package), BSP將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序 與硬件無關(guān),上層軟件開發(fā)人員無需關(guān)心底層硬件的具體情況,根據(jù)BSP層 提供的接口即可進行開發(fā)。BSP —般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸 入/輸出操作和硬件設(shè)備的配置功能。
針對不同的應(yīng)用,需要開發(fā)不同的CPU小系統(tǒng);CPU小系統(tǒng)軟件通常將 和CPU小系統(tǒng)相關(guān)的硬件配置信息寫在代碼中, 一起編譯生成CPU小系統(tǒng)軟 件。當微處理器不變,而硬件配置信息變化時,CPU小系統(tǒng)軟件會針對硬件 變化的地方重新開發(fā);CPU小系統(tǒng)軟件代碼根據(jù)新的硬件改動之后,重新編 譯生成可執(zhí)行代碼,生成新的CPU小系統(tǒng)軟件;如果硬件再次改動,CPU小 系統(tǒng)軟件再隨之改動并重新編譯生成,周而復(fù)始。
在完成本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)這種硬件配置信息綁定在代碼中的 方式存在以下弊端,當硬件配置信息發(fā)生變化時,需要重新編譯代碼生成CPU 小系統(tǒng)軟件,調(diào)試及缺陷修正不靈活;無論是修改或兼容都需要編譯生成新 的BSP, BSP和硬件強耦合,兼容性差。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種嵌入式計算機系統(tǒng)及其硬件配置方法,用以解
除CPU小系統(tǒng)軟件和硬件的耦合關(guān)系,在CPU相同的情況下使CPU小系統(tǒng)
軟件能夠兼容不同配置的硬件。
根據(jù)本發(fā)明的一方面,提供一種嵌入式計算機系統(tǒng)硬件配置方法,所述
的方法包括以下步驟將嵌入式計算機系統(tǒng)的硬件配置信息進行存儲;將所 述硬件配置信息的讀取過程寫入代碼中,編譯生成嵌入式計算機系統(tǒng)配置軟 件;在進行硬件配置時嵌入式計算機系統(tǒng)配置軟件根據(jù)讀取的硬件配置信息 初始化對應(yīng)的硬件。
根據(jù)本發(fā)明的另一方面, 一種嵌入式計算機系統(tǒng),所述的嵌入式計算機 系統(tǒng)包括配置信息存儲單元,用于將嵌入式計算機系統(tǒng)的硬件配置信息進 行存儲;配置軟件存儲單元,用于存儲由所述硬件配置信息讀取路徑與代碼 共同編譯生成的嵌入式計算機系統(tǒng)配置軟件;配置軟件執(zhí)行單元,用于使所 述的嵌入式計算機系統(tǒng)配置軟件根據(jù)所述的讀取路徑讀取存儲的硬件配置信 息,并根據(jù)讀取的硬件配置信息初始化對應(yīng)的硬件。
本發(fā)明實施例通過將硬件配置信息和配置軟件代碼分開,且使寫入非易 失性存儲器的硬件配置信息成為硬件的一部分,實現(xiàn)了 BSP和硬件的解耦, 提高了嵌入式計算機系統(tǒng)兼容性;同時,硬件配置信息可以由底層開發(fā)人員 或者硬件人員或者生產(chǎn)人員寫入,修改調(diào)試方便。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講, 在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中嵌入式計算機系的結(jié)構(gòu)框5圖2為本發(fā)明實施例嵌入式計算機系統(tǒng)硬件配置方法流程圖3為本發(fā)明實施例硬件配置信息存儲格式示意圖4為本發(fā)明實施例配置軟件代碼示意圖5為本發(fā)明實施例嵌入式計算機系統(tǒng)結(jié)構(gòu)框圖6為本發(fā)明實施例可進行配置信息編輯的嵌入式計算機系統(tǒng)結(jié)構(gòu)框圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行 清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而 不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做 出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例一
如圖2所示,本發(fā)明實施例的嵌入式計算機系統(tǒng)硬件配置方法包括以下 步驟將嵌入式計算機系統(tǒng)的硬件配置信息進行存儲(步驟S101);將所述硬 件配置信息的讀取路徑寫入代碼中,編譯生成嵌入式計算機系統(tǒng)配置軟件(步 驟S102);在進行硬件配置時,所述的嵌入式計算機系統(tǒng)配置軟件根據(jù)所述的 讀取路徑讀取存儲的硬件配置信息,并根據(jù)讀取的硬件配置信息初始化對應(yīng) 的硬件(步驟S103)。
下面結(jié)合圖3和圖4對本實施例進行詳細說明。
CPU小系統(tǒng)軟件通常將和CPU小系統(tǒng)相關(guān)的硬件配置信息寫在代碼中, 硬件配置信息包括但不限于DDR SDRAM大小、配置參數(shù)、器件位寬、以 及時序配置信息等,并將代碼與其中的硬件配置信息一起編譯生成CPU小系 統(tǒng)軟件。本實施例把和CPU小系統(tǒng)相關(guān)的硬件配置信息(如內(nèi)存大小,初始 化參數(shù),F(xiàn)LASH大小,位寬等信息)抽取出來,單獨存放在非易失性的存儲 單元(如EEPROM、 FLASH)中;CPU小系統(tǒng)啟動時,程序從非易失性存儲 單元中讀取硬件配置信息并根據(jù)這些配置信息初始化相關(guān)硬件。如圖3所示,本實施例以PPC8560CPU上的12個片選的寄存器(BR/OR) 為例,來說明PPC8560CPU小系統(tǒng)的初始化方案。將12個片選的BR/OR配 置信息存放在一片F(xiàn)LASH中,偏移地址為0x1000, FLASH的基地址為 0x80001000;每個片選占有8個字節(jié)空間(BR/OR分別占4個字節(jié)),BR0/OR0 至BR11/OR11連續(xù)存放。FLASH中配置信息存儲格式包括地址和數(shù)據(jù),如 0R1的地址為0x80001008 ,數(shù)據(jù)為0x仿000e85; BR1的地址為0x8000100C, 數(shù)據(jù)為0x80001801。
將12個片選的BR70R配置信息的讀取路徑寫入代碼中,如圖4所示, 將BRl/ORl配置信息的讀取路徑寫入代碼中,例如
*M85XX—0R1(CCSBAR)= "unsigned int *)(0x80001008);
*M85XX_BR1(CCSBAR)= *(unsigned int *)(0x8000100C);
將上述的包含有配置信息的讀取路徑的代碼,編譯生成嵌入式計算機系 統(tǒng)配置軟件。其中,*(unsigned int *)((^80001008)意思為從0x80001008地址 處取數(shù)據(jù)。
運行上述的配置軟件,配置軟件讀取0x80001008和0x8000100c處的數(shù) 據(jù)Oxf8000e85和0x80001801,并根據(jù)讀取的數(shù)據(jù)0xf8000e85和0x80001801 初始化對應(yīng)的BR1/0R1。
這種方式下如果需要修改BR1/OR1的配置信息,只需要修改0x80001008 和0x8000100c處的數(shù)據(jù)0xf8000e85禾卩0x80001801,重新復(fù)位單板即可,不 需要重新編譯。
本發(fā)明實施例通過將硬件配置信息和配置軟件代碼分開,且使寫入非易 失性存儲器的硬件配置信息成為硬件的一部分,實現(xiàn)了 BSP和硬件的解耦, 提高了嵌入式計算機系統(tǒng)兼容性;同時,硬件配置信息可以由底層開發(fā)人員 或者硬件人員或者生產(chǎn)人員寫入,修改調(diào)試方便。
實施例二
如圖5所示,本發(fā)明實施例的嵌入式計算機系統(tǒng)包括:配置信息存儲單
7元101用于將嵌入式計算機系統(tǒng)的硬件配置信息進行存儲;配置軟件存儲單 元102用于存儲由所述硬件配置信息讀取路徑與代碼共同編譯生成的嵌入式 計算機系統(tǒng)配置軟件;配置軟件執(zhí)行單元103用于使所述的嵌入式計算機系 統(tǒng)配置軟件根據(jù)所述的讀取路徑讀取存儲的硬件配置信息,并根據(jù)讀取的硬 件配置信息初始化對應(yīng)的硬件。
下面結(jié)合圖3、圖4、圖5和圖6對本實施例進行詳細說明。 CPU小系統(tǒng)軟件通常將和CPU小系統(tǒng)相關(guān)的硬件配置信息寫在代碼中, 硬件配置信息包括但不限于DDR SDRAM大小、配置參數(shù)、器件位寬、以 及時序配置信息等,并將代碼與其中的硬件配置信息一起編譯生成CPU小系 統(tǒng)軟件。本實施例把和CPU小系統(tǒng)相關(guān)的硬件配置信息(如內(nèi)存大小,初始 化參數(shù),F(xiàn)LASH大小,位寬等信息)抽取出來,單獨存放在非易失性的存儲 單元(如EEPROM、 FLASH)中;CPU小系統(tǒng)啟動時,程序重非易失性存儲 單元中讀取硬件配置信息并根據(jù)這些配置信息初始化相關(guān)硬件。
如圖3所示,本實施例以PPC8560CPU上的12個片選的寄存器(BR/OR) 為例,來說明PPC8560CPU小系統(tǒng)的初始化方案。將12個片選的BR/OR配 置信息存放在一片F(xiàn)LASH中,偏移地址為0x1000, FLASH的基地址為 0x80001000;每個片選占有8個字節(jié)空間(BR/OR分別占4個字節(jié)),BR0/OR0 至BR11/OR11連續(xù)存放。FLASH中配置信息存儲格式包括地址和數(shù)據(jù),如 OR6的地址為0x80001030 ,數(shù)據(jù)為0xffff8e45; BR6的地址為0x80001034, 數(shù)據(jù)為0x98000801。
將12個片選的BR/OR配置信息的讀取路徑寫入代碼中,如圖4所示, 將BR6/OR6配置信息的讀取路徑寫入代碼中,例如
*M85XX—ORl(CCSBAR)= *(unsigned int *)(0x80001030); *M85XX—BR1(CCSBAR)= *(unsigned int *)(0x80001034); 將上述的包含有配置信息的讀取路徑的代碼,編譯生成嵌入式計算機系 統(tǒng)配置軟件。其中,*(unsigned int f)(0x80001030)意思為從0x80001030地址
8處取數(shù)據(jù)。將配置軟件存儲于FLASH中。
如圖6所示,配置信息編輯單元104對存儲于FLASH中的BR/OR配置信息的數(shù)據(jù)(如OR6的數(shù)據(jù)0xffff8e45; BR6的數(shù)據(jù)0x98000801)進行編輯修改,修改后的數(shù)據(jù)例如為0xffff8825和0x98401001。
配置軟件執(zhí)行單元運行上述的配置軟件,配置軟件讀取0x80001030和0x80001034處的修改后的數(shù)據(jù)0xffffS825和0x98401001,并根據(jù)讀取的數(shù)據(jù)0xffff8825和0x98401001初始化對應(yīng)的BR6/OR6。重新復(fù)位單板,不需要重新編譯。
本發(fā)明實施例通過將硬件配置信息和配置軟件代碼分開,且使寫入非易失性存儲器的硬件配置信息成為硬件的一部分,實現(xiàn)了 BSP和硬件的解耦,提高了嵌入式計算機系統(tǒng)兼容性;同時,硬件配置信息可以由底層開發(fā)人員或者硬件人員或者生產(chǎn)人員寫入,修改調(diào)試方便。實施例三
在現(xiàn)有技術(shù)中,CPU小系統(tǒng)軟件在通知操作系統(tǒng)物理內(nèi)存大小時采用固定的函數(shù)如下char * sysPhysMemTop (void)
LOCAL char * physTop = NULL;if(physTop==NULL)
physTop = (char *)(LOCAL_MEM_LOCAL_ADRS + LOCAL—MEM—SIZE);
return (physTop);
通過本發(fā)明實施例,把內(nèi)存大小實現(xiàn)成可配置的之后,假設(shè)硬件配置文件直接記錄在flash空間上,其中0x200偏移地址處存儲了系統(tǒng)物理內(nèi)存的大小數(shù)據(jù)為0x10000000;那么上述通知操作系統(tǒng)內(nèi)存大小的代碼只需要修改成char * sysPhysMemTop (void)
9LOCAL char * physTop = NULL; if(physTop ==NULL)
physTop =從flash中硬件配置文件0x200處讀取物理內(nèi)存大小;
return (physTop);
這樣不同的系統(tǒng)通知系統(tǒng)物理內(nèi)存大小只需要修改其硬件配置文件 0x200偏移處的數(shù)據(jù)接口,不再需要修改代碼。
本發(fā)明中應(yīng)用了具體實施例對本發(fā)明的原理及實施方式進行了闡述,以 上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于 本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上 均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1. 一種嵌入式計算機系統(tǒng)硬件配置方法,其特征是,所述的方法包括以下步驟將嵌入式計算機系統(tǒng)的硬件配置信息進行存儲;將所示硬件配置信息的讀取過程寫入代碼中,編譯生成嵌入式計算機系統(tǒng)軟件;在進行硬件初始化時,所述的嵌入式計算機系統(tǒng)軟件根據(jù)讀取的硬件配置信息初始化對應(yīng)的硬件。
2. 根據(jù)權(quán)利要求1所述的方法,其特征是,所述的將嵌入式計算機系統(tǒng) 的硬件配置信息進行存儲包括將嵌入式計算機系統(tǒng)的硬件配置信息寫入非易失性存儲器中。
3. 根據(jù)權(quán)利要求2所述的方法,其特征是,寫入所述非易失性存儲器的硬件配置信息的存儲內(nèi)容包括解耦需要存儲的硬件配置信息數(shù)據(jù)。
4. 根據(jù)權(quán)利要求3所述的方法,其特征是,當所述的硬件配置信息發(fā)生 變化時,對所述的硬件配置信息數(shù)據(jù)進行編輯修改。
5. 根據(jù)權(quán)利要求2所述的方法,其特征是,寫入所述非易失性存儲器的 硬件配置信息與所述的嵌入式計算機系統(tǒng)配置軟件相分離,并成為硬件的一 部分。
6. —種嵌入式計算機系統(tǒng),其特征是,所述的嵌入式計算機系統(tǒng)包括 配置信息存儲單元,用于將嵌入式計算機系統(tǒng)的硬件配置信息進行存儲; 配置軟件存儲單元,用于存儲由所述硬件配置信息讀取路徑與代碼共同編譯生成的嵌入式計算機系統(tǒng)配置軟件;配置軟件執(zhí)行單元,用于使所述的嵌入式計算機系統(tǒng)配置軟件根據(jù)所述 的讀取路徑讀取存儲的硬件配置信息,并根據(jù)讀取的硬件配置信息初始化對 應(yīng)的硬件。
7. 根據(jù)權(quán)利要求6所述的嵌入式計算機系統(tǒng),其特征是,所述的配置信息存儲單元包括非易失性存儲器。
8. 根據(jù)權(quán)利要求7所述的嵌入式計算機系統(tǒng),其特征是,寫入所述非易失性存儲器的硬件配置信息的存儲格式包括存儲地址和硬件配置信息數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的嵌入式計算機系統(tǒng),其特征是,所述的嵌入式 計算機系統(tǒng)還包括-配置信息編輯單元,用于對所述的硬件配置信息數(shù)據(jù)進行編輯修改。
10. 根據(jù)權(quán)利要求7所述的嵌入式計算機系統(tǒng),其特征是,寫入所述非 易失性存儲器的硬件配置信息與所述的嵌入式計算機系統(tǒng)配置軟件相分離, 并成為硬件的一部分。
全文摘要
本發(fā)明實施例提供了一種嵌入式計算機系統(tǒng)及其硬件配置方法,所述的方法包括以下步驟將嵌入式計算機系統(tǒng)的硬件配置信息進行存儲;將硬件配置信息讀取過程寫入代碼中,編譯生成嵌入式計算機系統(tǒng)配置軟件;在進行硬件初始化時嵌入式計算機系統(tǒng)軟件根據(jù)讀取的硬件配置信息初始化對應(yīng)的硬件。用以解除CPU小系統(tǒng)軟件和硬件的耦合關(guān)系,在CPU相同的情況下使CPU小系統(tǒng)軟件能夠兼容不同配置的硬件。
文檔編號G06F9/445GK101488093SQ20091012649
公開日2009年7月22日 申請日期2009年3月11日 優(yōu)先權(quán)日2009年3月11日
發(fā)明者崔愛國 申請人:華為技術(shù)有限公司