基于Microblaze軟核的嵌入式系統(tǒng)設(shè)計(jì)
②定制用戶自己的IP核。由于嵌入式系統(tǒng)開(kāi)發(fā)的特殊性,有時(shí)可能很難找到一款A(yù)SIC控制器,具備系統(tǒng)要求的所有外設(shè)接口。在這種情況下,要么用軟件實(shí)現(xiàn)所缺的外設(shè)功能,從而犧牲了系統(tǒng)性能;要么單獨(dú)購(gòu)置一片該接口芯片,從而增大了電路板面積和成本。而基于FPGA軟核的設(shè)計(jì)則不存在這種問(wèn)題。在XPS中定制用戶IP核與一般用VHDL編寫(xiě)邏輯電路不同的是,這種定制IP可以掛接在PLB總線上,從而實(shí)現(xiàn)與Microblaze的通信。XPS提供自定義IP核的生成向?qū)?,圖4給出了用戶自定義IP核的邏輯結(jié)構(gòu)。從圖可以看出,生成向?qū)?chuàng)建了兩個(gè)模塊,一個(gè)是與PLB總線進(jìn)行交互的接口模塊IPIF,另一個(gè)是用戶邏輯模塊User_Logic。IPIF完成PLB總線信號(hào)的捕捉和協(xié)議轉(zhuǎn)換,這部分內(nèi)容不需要用戶參與,用戶只需根據(jù)自定義邏輯的輸入/輸出信號(hào)在IPIF中給出相應(yīng)的聲明即可;User_Logic模塊則是需要用戶進(jìn)行手動(dòng)添加自定義邏輯代碼的地方,在這里用戶只需關(guān)注自己需要實(shí)現(xiàn)的功能,不用擔(dān)心它們與Microblaze之間的通信鏈接。本文引用地址:http://2s4d.com/article/150858.htm
2.2 軟件平臺(tái)的開(kāi)發(fā)
EDK的另一個(gè)組件SDK是對(duì)于XPS集成開(kāi)發(fā)環(huán)境的補(bǔ)充,提供了一個(gè)軟件工程項(xiàng)目的開(kāi)發(fā)環(huán)境,具有以下功能和特點(diǎn):
◆基于Eclipse開(kāi)源代碼標(biāo)準(zhǔn);
◆項(xiàng)目管理;
◆功能完善的C/C++代碼編輯和編譯環(huán)境;
◆程序創(chuàng)建配置和自動(dòng)化的Makefile生成;
◆完美集成的對(duì)嵌入式對(duì)象的無(wú)縫調(diào)試環(huán)境。
除了提供軟件的開(kāi)發(fā)環(huán)境外,Xilinx公司還提供了各種IP核的API控制函數(shù),這些API被安放在..\EDK\SW\XilinxProcessorIPLib\drivers目錄下,其中..\表示Xilinx軟件的安裝目錄。通過(guò)閱讀IP核的PDF說(shuō)明文檔和API函數(shù)的C代碼,用戶可以很容易地實(shí)現(xiàn)對(duì)IP核的控制。以通用輸入/輸出端口GPIO為例,在文件夾..\EDK\sw\XilinxProcessorIPLib\drivers\gpio_v2_13_a下存放著與GPIO軟件編程有關(guān)的所有內(nèi)容,其src子目錄下包含各種API函數(shù)的C源碼,doc目錄下包含對(duì)各種API函數(shù)的使用說(shuō)明,而examples目錄下還有針對(duì)GPIO進(jìn)行編程的實(shí)例源碼。一般對(duì)GPIO的操作過(guò)程為:
即首先對(duì)GPIO口進(jìn)行初始化,然后設(shè)置其方向?yàn)檩斎牖蚴禽敵觯酉聛?lái)就可以對(duì)GPIO進(jìn)行讀寫(xiě)。如果該GPIO可以產(chǎn)生中斷,則必須置位其中斷使能位,然后將中斷處理函數(shù)掛接到中斷控制器或直接掛到Microblaze的中斷位上。
評(píng)論