z-turn學習 Zynq 7000從零開始之一 -- HelloWord

 

Zynq 7000從零開始之一 -- HelloWord

網址:http://blog.csdn.net/luoqindong/article/details/42963565
使用myir的z-turn開發板,做一個從uart打印hello world的實驗,只用PS,不用PL部分,程序從SD卡啓動,跑在PS的內部RAM.
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格式化成啓動盤),啓動,從串口可看到打印信息.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章