玩轉Zynq連載28——[ex50] 第一個(gè)Zynq系統工程“Hello Zynq” 更多資料共享 騰訊微云鏈接:https://share.weiyun.com/5s6bA0s 百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取碼:ld9c ![]() 騰訊微云鏈接:https://share.weiyun.com/5s6bA0s 百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取碼:ld9c 如圖所示,Zynq系統的PS部分有豐富的外設接口,常見(jiàn)的USB、UART、SPI、I2C、SDIO、CAN、GPIO、以太網(wǎng),一應俱全,能夠滿(mǎn)足大多數的嵌入式應用需求。這么強大的外設系統,是不是有些迫不及待了,不著(zhù)急,萬(wàn)丈高樓平地起,我們要從最簡(jiǎn)單的流程跑起,帶大家先從工具層面玩轉Zynq,再深入其中。
![]() 本實(shí)例,我們要搭建第一個(gè)Zynq系統工程,并且在這個(gè)Zynq系統的Cortex A9上在線(xiàn)跑一個(gè)通過(guò)UART打印“Hello Zynq!”的軟件程序。當然了,重點(diǎn)不是Hello Zynq,而是如何新建Zynq系統模塊、配置PS的參數、導出硬件、新建軟件工程并且在線(xiàn)板級運行起來(lái)。流程很重要,大家在開(kāi)始的時(shí)候總要先走一遍流程了解開(kāi)發(fā)的全貌,然后再細細把玩,逐個(gè)精通。 新建文件夾zstar_ex50,注意它的整個(gè)存放路徑中不要有中文、符號或空格(只能是數字和字母)。 打開(kāi)Vivado,參考《玩轉Zynq-工具篇:新建Vivado工程.pdf》新建一個(gè)Vivado工程。 在IP Integrator(IP集成器)下點(diǎn)擊Create Block Design(創(chuàng )建新的設計模塊)。
![]() 如圖所示,在彈出的Create Block Design窗口中,Design name后面輸入創(chuàng )建的模塊名稱(chēng)(這里命名為zstar_zynq_ps),后面的Directory即文件存放路徑使用默認,Specify source set即指定文件的子集也使用默認。
![]() 此時(shí),在Vivado的主視圖中,出現了如圖所示的Block Design界面。在Diagram中,點(diǎn)擊中央的小加號,準備添加zynq的處理器IP核。
![]() 如圖所示,在彈出IP列表的Search后面,我們輸入關(guān)鍵詞zynq,隨后篩選出唯一的ZYNQ7 Processing System選項,點(diǎn)擊它。
![]() 此時(shí),Diagram界面中央出現了一個(gè)名為processing_system7_0的模塊,可以雙擊這個(gè)模塊,將彈出該模塊的配置頁(yè)面。
![]() Zynq系統配置頁(yè)面如圖所示。
![]() 點(diǎn)擊Presets按鈕,彈出菜單如圖,接著(zhù)點(diǎn)擊Apply Configuration。
![]() 定位到當前工程路徑下,找到zstar_ex50.tcl腳本,選中它,然后點(diǎn)擊OK應用該tcl腳本的設定。這不操作的意義在于,將筆者已經(jīng)配置好的ZYNQ7 Processing System參數整個(gè)應用到當前新建工程的系統中。下面我們會(huì )看看都有哪些特殊的需要注意的配置,這些配置通常是和我們所使用的板級硬件電路設計相關(guān)的。
![]() 如圖,設置正在應用生效中。
![]() 完成配置加載后,Zynq系統的當前配置就能夠用于我們后續的軟件實(shí)例。如圖所示,在Peripheral I/O Pins選項卡中,UART 1被勾選上了,它對應的MIO48和MIO49列是高亮的,表示UART 1所使用的引腳是MIO48和MIO49。點(diǎn)擊OK完成設置。
![]() 回到Diagram中,可以看到ZYNQ模塊的接口發(fā)生了變化,現在只有FIXED_IO是可以引出的,實(shí)際上我們后面的實(shí)例中也不使用這個(gè)引出的FIXED_IO。點(diǎn)擊箭頭所指的Run Block Automation按鈕。
![]() 彈出圖示的對話(huà)框,使用默認設置,點(diǎn)擊OK就可以。
![]() 這時(shí)我們看到,FIXED_IO果然被引出了。
![]() 在Sources頁(yè)面中,我們可以看到Design Sources下面,我們剛剛創(chuàng )建的系統模塊zstar_zynq_ps。
![]() 點(diǎn)擊選中zstar_zynq_ps模塊,單擊右鍵,彈出菜單中點(diǎn)擊Generate Output Products,使得該系統輸出生效。
![]() 彈出下面的對話(huà)框,點(diǎn)擊Generate。 zstar_zynq_ps模塊目前還不是當前工程的頂層模塊,必須再次選中它,然后在右鍵菜單中點(diǎn)擊Create HDL Wrapper。
![]() 若彈出如下對話(huà)框,使用默認設置,點(diǎn)擊OK繼續。
![]() 最后,在Flow Navigator的Program and Debug下,點(diǎn)擊Generate Bitstream編譯整個(gè)工程以生成可燒錄PL的bit文件。
![]() 參考文檔《玩轉Zynq-工具篇:導出PS硬件配置和新建SDK工程.pdf》。 在Zstar板子上,設置跳線(xiàn)帽P3為JTAG模式,即PIN2-3短接。 連接好串口線(xiàn)(USB線(xiàn)連接PC的USB端口和Zstar板的UART接口)和Xilinx下載線(xiàn)(下載器連接PC的USB端口和Zstar板的JTAG插座)。使用5V電源給板子供電。
![]() 確認當前設備管理器中識別到的COM口號,配置好打開(kāi)PuTTY串口調試界面。
![]() 接著(zhù)參考《玩轉Zynq-工具篇:SDK在線(xiàn)運行裸跑程序.pdf》將zstar.bit文件和Helloworld.elf文件燒錄到Zynq中運行起來(lái)。
![]() SDK Log窗口中,也會(huì )打印輸出相應的SDK工作信息。
![]() 回到PuTTY中,我們可以看到也已經(jīng)打印出了我們期盼已久的Hello World(不好意思,不是Hello Zynq,不過(guò)沒(méi)關(guān)系,Hello Zynq要你自己嘗試改C源碼再跑一遍就OK)。
![]() 恭喜你,完成的Zynq系統Cortex A9的運行,裸跑了一個(gè)Hello World程序。 ![]() |