下面作一個從uart打印hello world的實驗,只用PS,不用PL部分,程序從SD卡啓動,跑在PS的內部RAM.app
zynq 7000的PS雖然也是CPU,可是開發方法不像普通的CPU只須要一個SDK就能夠了,它還須要vivado硬件設計軟件.
因此ZYNQ 7000的PS開發須要兩個工具,一個是vivado-- 另外一個是SDK--
.
1. 打開vivado軟件-->Create New Project,工程名和目錄:
2. next->選RTL Project->Add Sources,Add existing IP和Add constraints界面直接點next
3. New Parts界面
4. 添加IP,在Flow Navigator的IP Integrator下點Create Block Design
Create Block Design以下,點OK
在Diagram界面點擊Add IP
雙擊ZYNQ7 Processing System,添加CPU
5. 設置CPU
在Diagram界面點擊Run Block Automation,不作修改,點Finish就能夠。在Diagram界面雙擊
進入設置界面,咱們把全部的接口去掉,只留下FIXED_IO.
1> PS-PL Configuration->General->Enable Clock Resets->去掉FCLK_RESET0_N
2> PS-PL Configuration->GP Master AXI Interface->去掉 M AXI GP0 interface
3> Clock Configuration->PL Fabric Clocks->去掉FCLK_CLK0
4> DDR Congiguration->去掉Enable DDR
5> 設置SD和UART引腳
MIO Configuration->Bank1 IO Voltage選LVCMOS 1.8V.
MIO Configuration->IO Peripherals->選上SD 0, SD 0的引腳配置:
MIO Configuration->IO Peripherals->選上UART 1, UARRT 1的引腳配置:
6. 點擊OK返回Diagram界面, 把DDR接口刪掉,配置以後的界面
7. 生成設計文件
右擊system項->Generate Output Products->直接點Generate, 以後會提示文件生成成功.
右擊system項->Create HDL Wrapper
選下面一項,點OK
注意:若是從新修改了CPU配置,上面兩個步驟必定要從新實行。
8. 導出硬件設計文件到SDK
導出前要確保Block Design是打開的,即Diagram界面要打開
File->Export->Export Hardware->直接點OK,這樣會把硬件文件system_wrapper.hdf導到helloword.sdk文件夾下,SDK工程
也在該目錄下.
9. 啓動SDK
File->Launch SDK->直接點OK
SDK啓動後就自動添加了硬件相關的工程,
system.hdf是system_wrapper.hdf文件的copy
ps7_init.tcl是PS初始化的TCL腳本,PS不能執行TCL腳本,因此將該腳本轉換爲了C文件--ps7_init.c和ps7_init.h.
前面用vivado的硬件設計就是爲了生成這兩個文件,ps7_init.c主要初始化CPU的時鐘,引腳複用,ddr和外設等。後面
的helloword工程只須要這兩個文件,其餘的文件都不須要。
10.添加helloword工程
在SDK中->File->New->New Application Project->設置以下,點next->選hello world
11. 修改源碼
多了兩個工程,一個是app,另外一個是bsp.發現SD V2.3驅動有問題,將其退爲2.2.
在helloword_bsp工程下打開system.mss文件,點擊左下角的source,修改sd驅動版本爲2.2
修改以後從新生成BSP源碼,點system.mss左下角的overview->Re-generate BSP Sources
將ps7_init.c和ps7_init.h copy到helloword/src目錄下,也能夠建立鏈接,這裏就直接copy了.
修改helloword/src/platform.c
--init_platform函數,將ps7_init()函數的comment去掉,
--包含頭文件#include "ps7_init.h"
12. 編譯代碼->project->Clean->OK
13. 生成boot.bin啓動文件
右擊helloword工程->Create boot Image->Create Image
注意,helloword.elf前面的bootloader必定要出現,表示該文件是bootloader,啓動後運行的第一個文件,
可點edit來修改.
13, 將生成的BOOT.bin文件copy到SD卡(已用HP USB Disk Storage Format Tool格式化成啓動盤),啓動,從串口可看到打印信息。函數