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