開發(fā)板(demo board)是用來進(jìn)行嵌入式系統(tǒng)開發(fā)的電路板,包括中央處理器、存儲器、輸入設(shè)備、輸出設(shè)備、數(shù)據(jù)通路/總線和外部資源接口等一系列硬件組件。開發(fā)板一般由嵌入式系統(tǒng)開發(fā)者根據(jù)開發(fā)需求自己訂制,也可由用戶自行研究設(shè)計(jì)。開發(fā)板是為初學(xué)者了解和學(xué)習(xí)系統(tǒng)的硬件和軟件,同時(shí)部分開發(fā)板也提供的基礎(chǔ)集成開發(fā)環(huán)境和軟件源代碼和硬件原理圖等。常見的開發(fā)板有51、ARM、FPGA、DSP開發(fā)板。
開發(fā)板(demo board)是用來進(jìn)行嵌入式系統(tǒng)開發(fā)的電路板,包括中央處理器、存儲器、輸入設(shè)備、輸出設(shè)備、數(shù)據(jù)通路/總線和外部資源接口等一系列硬件組件。在一般的嵌入式系統(tǒng)開發(fā)過程中,硬件一般被分成兩個(gè)平臺,一個(gè)是開發(fā)平臺(host),一個(gè)是目標(biāo)平臺(target)即開發(fā)板。在此描述的開發(fā)平臺指的是使用計(jì)算機(jī),通過傳輸?shù)慕缑妫绱?RS-232)、USB、并口、或者網(wǎng)絡(luò)(Ethernet)與目標(biāo)平臺連接。開發(fā)板一般由嵌入式系統(tǒng)開發(fā)者根據(jù)開發(fā)需求自己訂制,也可由用戶自行研究設(shè)計(jì)。開發(fā)板是為初學(xué)者了解和學(xué)習(xí)系統(tǒng)的硬件和軟件,同時(shí)部分開發(fā)板也提供的基礎(chǔ)集成開發(fā)環(huán)境和軟件源代碼和硬件原理圖等。常見的開發(fā)板有51、ARM、FPGA、DSP開發(fā)板。
嵌入式系統(tǒng)開發(fā),要先選定滿足自己開發(fā)所需型號CPU、FPGA、DSP,其次根據(jù)選定型號的CPU、FPGA、DSP等選擇支持選定芯片的開發(fā)板范圍。再次,優(yōu)選開發(fā)板提供的開發(fā)環(huán)境及技術(shù)支持的能力和水平。最后還要考慮開發(fā)板板子除了集成CPU、FPGA、DSP等之外,還需要較完善輸入及輸出的界面,如鍵盤和LCD,程序下載接口、內(nèi)存(RAM)、FlashROM、電源模塊等。同時(shí)為了開發(fā)初期的調(diào)試方便,還會引出幾個(gè)特殊的引腳,如JTAG接口、USB和串口等,以供外接的調(diào)試模塊所使用。
當(dāng)硬件及規(guī)格選定完成后,接下來就是進(jìn)入最開始的系統(tǒng)開發(fā)與建立開發(fā)環(huán)境。如果項(xiàng)目所使用的嵌入式操作系統(tǒng)不是自己開發(fā),而是向其他廠商購買的話,大都提供集成式開發(fā)環(huán)境(IDE)與仿真器(Emulator)讓開發(fā)者可以加速整個(gè)開發(fā)的過程。當(dāng)你拿到的是系統(tǒng)廠商已經(jīng)移植好的操作系統(tǒng),并且確定有給予充分的相關(guān)資料之后,就可以針對自己的目標(biāo)平臺做集成的動(dòng)作。選定操作系統(tǒng)之后,通常都會指定開發(fā)平臺上所使用的各項(xiàng)開發(fā)工具,例如編譯器、連接器等。開發(fā)時(shí)需要設(shè)置的編譯參數(shù)會依據(jù)每個(gè)環(huán)境不同而有所差異。這個(gè)部分必須依據(jù)硬件規(guī)格與指示說明編譯出一個(gè)可以運(yùn)行的映像文件,然后通過燒錄工具燒錄到目標(biāo)平臺上。
大部分嵌入式硬件都需要某種類型的軟件進(jìn)行初始化和管理。直接與一個(gè)硬件互相作用并控制這一硬件的軟件稱為設(shè)備驅(qū)動(dòng)程序(device driver)。所有需要軟件的嵌入式系統(tǒng),在它們的系統(tǒng)軟件層都需要設(shè)備驅(qū)動(dòng)程序軟件。設(shè)備驅(qū)動(dòng)程序是初始化硬件的軟件庫,它們管理著高層軟件對硬件的訪問,它是硬件與操作系統(tǒng)、中間件和應(yīng)用層之間聯(lián)絡(luò)的紐帶。具體來說,這類驅(qū)動(dòng)程序包括主處理器體系結(jié)構(gòu)專用的功能性驅(qū)動(dòng)程序、存儲器和存儲器管理驅(qū)動(dòng)程序、總線初始化和事務(wù)驅(qū)動(dòng)程序、還有電路板層和主CPU層次的I/O初始化和控制驅(qū)動(dòng)程序(如用于網(wǎng)絡(luò)、圖形、輸入設(shè)備、存儲設(shè)備、調(diào)試I/O等)。設(shè)備驅(qū)動(dòng)程序通常劃分為體系結(jié)構(gòu)專用(architecture-specific)設(shè)備驅(qū)動(dòng)程序和通用(generic)設(shè)備驅(qū)動(dòng)程序。體系結(jié)構(gòu)專用設(shè)備驅(qū)動(dòng)程序管理嵌入到主處理器(體系結(jié)構(gòu))中的硬件。體系結(jié)構(gòu)專用驅(qū)動(dòng)程序負(fù)責(zé)初始化主處理器內(nèi)部的組件,這類驅(qū)動(dòng)程序的具體事例包括片上存儲器、集成的存儲器管理器(MMU)和浮點(diǎn)硬件的驅(qū)動(dòng)程序。通用設(shè)備驅(qū)動(dòng)程序管理電路板上的硬件以及沒有集成到主處理器中的硬件。在一個(gè)通用設(shè)備驅(qū)動(dòng)程序中,通常包含一部分體系結(jié)構(gòu)專用的源代碼,因?yàn)橹魈幚砥魇侵醒肟刂茊卧?,要訪問電路板上的任何組件通常都要經(jīng)過主處理器。然而,通用驅(qū)動(dòng)程序也可以管理不被特定的處理器所專用的板級硬件,這就意味著一個(gè)通用驅(qū)動(dòng)程序可以配置應(yīng)用到許多體系結(jié)構(gòu)中去,只要該結(jié)構(gòu)中包含該驅(qū)動(dòng)程序?qū)?yīng)的硬件。通用驅(qū)動(dòng)程序包含初始化和管理對電路板上剩余主要組件進(jìn)行訪問的代碼,這些主要組件包括板級總線(I2C、PCI、PCMCIA等)、片外存儲器(控制器、2級以上高速緩存、閃存等)和片外I/O(以太網(wǎng)、RS-232、顯示器、鼠標(biāo)等)。