zedboard--zynq使用自带外设IP让ARM PS访问FPGA(八) 转载
文章來源 http://blog.chinaaet.com/detail/34609
熟悉了xps的操作,IP添加,總線連接設(shè)置,圖形化方法檢查(open graphical design view),檢查總線及端口連接。
在file下面的圖標(biāo)中,打開導(dǎo)出到SDK并啟動(dòng),完成程序編寫。
?
?
?
?
參考超群天晴的博客http://www.cnblogs.com/surpassal/,使用XPS為PS?處理系統(tǒng)?添加額外的IP。從IP Catalog 標(biāo)簽添加GPIO,并與ZedBoard板子上的8個(gè)LED燈相連。當(dāng)系統(tǒng)建立完后,產(chǎn)生bitstream,并對(duì)外設(shè)進(jìn)行測(cè)試。以后還有一個(gè)很重要的自定義用戶Ipcore設(shè)計(jì),下個(gè)實(shí)驗(yàn)來做下這個(gè)(一開始以簡(jiǎn)單的led和sw為例)。這個(gè)實(shí)驗(yàn)就使用呢自帶外設(shè)IP。
使用的平臺(tái)是XPS 14.2+SDK 14.2
一 硬件配置
1、啟動(dòng)xps創(chuàng)建工程Create New Project Using BaseSystem Builder
創(chuàng)建工程。因?yàn)镻S系統(tǒng)和FPGA連接是采用AXI接口,因而選擇內(nèi)部互聯(lián)類型(Interconnect Type) 為AXI。
選擇設(shè)計(jì)平臺(tái)為ZynqZC702
到外設(shè)配置界面,系統(tǒng)會(huì)默認(rèn)有GPIO_SW和 LEDs_4bits 這兩個(gè)外設(shè),我們不需要,remove
2、添加AXI GPIO外設(shè)
進(jìn)入主界面
?
工程建立后,在IPCatalog中,找到GeneralPurpose IO,找到 AXI GPIO,雙擊添加到系統(tǒng)中。
修改元件實(shí)例化名稱為axi_LED,這個(gè)名稱就是將要實(shí)例化連接到PS的元件。將長(zhǎng)度改為8,其他默認(rèn)。
?
Ok后出現(xiàn)
點(diǎn)擊ok,
點(diǎn)開BusInterfaces標(biāo)簽,可以看到系統(tǒng)匯總現(xiàn)在有PS(這里是processing_systems7_0) 、添加的外設(shè)axi_LDs 和AXI內(nèi)部互聯(lián)總線axi_interconnet_1??梢钥吹綄?duì)于?axi_interconnet_1來說,PS是AXI主設(shè)備,外設(shè)是AXI從設(shè)備。
在Port標(biāo)簽,將IO_IF中的GPIO_IO設(shè)置為External Ports,將Port名稱改為L(zhǎng)ED。LED就是頂層對(duì)外的引腳名稱,注意這里和參考博客不同。按照參考博客中的不能成功。
0521注:此處名字試過了,改不了,所以u(píng)cf文件與此同名。
?
3、設(shè)定引腳約束
在project標(biāo)簽中,找到system.ucf約束文件,
4、點(diǎn)擊Generate BitStream,生成bitstream
5、將硬件配置導(dǎo)入到SDK,啟動(dòng)SDK。這里需要將bitstream和BMM文件同時(shí)包括到SDK中。
?
二、創(chuàng)建軟件程序
使用新建工程向?qū)?。注?#xff0c;這里使用工程模板為Memory Tests。
新建工程后,會(huì)有幾個(gè)存儲(chǔ)空間測(cè)試的文件,我們不需要,刪掉。
?
修改main文件,內(nèi)容如下
//@超群天晴?http://www.cnblogs.com/surpassal/ ??#include <stdio.h> ?#include "xparameters.h" ?#include "xil_types.h" ?#include "xstatus.h" ?#include "xil_testmem.h" ?#include "xgpio.h" ?#include "platform.h" ? ??void print(char *ptr); ?int main() { ???? static XGpio LED_Ptr;//定義GPIO指針 ???? int XStatus;//函數(shù)返回狀態(tài) ?????init_platform(); ?????print("ZedBoard project_7: PS_AXI_LED\n\r"); ???? print("xzy 2013年09月18日18:12:31\n\r"); 注意下面一定要改名字哦,以前XPAR_AXI_LDS_DEVICE_ID ???? XStatus = XGpio_Initialize(&LED_Ptr,XPAR_AXI_LED_DEVICE_ID); ???? if(XST_SUCCESS != XStatus) ???????? print("GPIO INIT FAILED\n\r"); ? ??? XGpio_SetDataDirection(&LED_Ptr, 1,0x00);//通道1;設(shè)置方向 0 輸出 1輸入 ?????XGpio_DiscreteWrite(&LED_Ptr, 1,0xaa); ?????cleanup_platform(); ?} ? 在下載軟件程序前,需要將bitstream文件燒如FPGA,對(duì)FPGA進(jìn)行配置。在工具欄中Xilinx tools->Program FPGA,也可以使用XPS中的Device Configuration->Download Bitstream等其他配置FPGA的方式。 配置完FPGA后,下載軟件程序,可以看到超級(jí)終端顯示調(diào)試信息:注明:helloworld工程也是可以的,不一定非要是memory test工程。
?
轉(zhuǎn)載于:https://www.cnblogs.com/dujianzw/p/4521275.html
總結(jié)
以上是生活随笔為你收集整理的zedboard--zynq使用自带外设IP让ARM PS访问FPGA(八) 转载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 习惯看新闻头条 一个程序员分享的工作心
- 下一篇: 移动Web应用程序开发HTML5篇