vivado + zedboard 初体验

vivado + zedboard 初体验

参考文章:https://www.cnblogs.com/rocbomb/archive/2014/07/29/3876683.html
vivado:2017.1 (下载地址:https://www.0daydown.com/04/731603.html)
zedboard:AES-Z7EV-7Z020-G
Zynq-7000 SoC XC7Z020-CLG484-1
512 MB DDR3
256 Mb Quad-SPI Flash
4 GB SD 卡
板上 USB-JTAG 编程
10/100/1000 Ethernet
USB OTG 2.0 和 USB-UART
PS & PL I/O 扩展 (FMC, Pmod™, XADC)
多显示 (1080p HDMI, 8-bit VGA, 128 x 32 OLED)
I2S Audio CODEC

1、安装vivado

默认安装一直到最后,如果出现C++ 2015安装失败的选项的话,下载一个DirectX Repair修复一下再重新装(下载地址:https://dl.pconline.com.cn/download/360074-1.html)

2、尝试一下板子

vivado + zedboard 初体验_第1张图片
要注意编程口在电源线旁边。
vivado + zedboard 初体验_第2张图片
这是结构框图。PS+PL+一堆外设

3、硬件

1)新建工程

vivado + zedboard 初体验_第3张图片
新建工程
vivado + zedboard 初体验_第4张图片
工程名和目录
vivado + zedboard 初体验_第5张图片
先不制定RTL
vivado + zedboard 初体验_第6张图片
选择板子,有C和D,没搞清,我就用默认的试试了
然后继续,生成工程

2、用IP搭积木

vivado + zedboard 初体验_第7张图片
新建个block
vivado + zedboard 初体验_第8张图片
开始放IP了

vivado + zedboard 初体验_第9张图片
vivado + zedboard 初体验_第10张图片
给IP连个线

vivado + zedboard 初体验_第11张图片
重复此过程添加GPIO,连线的时候左边选S_AXI。
vivado + zedboard 初体验_第12张图片
给GPIO关联到LED上,用作指示灯

重复上两步再添加一个GPIO选S_AXI,并关联到sws_8bits上,用作开关

vivado + zedboard 初体验_第13张图片
点击验证,大概率都没问题
右键design,添加个外套
然后开始跑流程,Synthesis, Implementation, Generate Bitstream
vivado + zedboard 初体验_第14张图片
速度挺慢的,一个结束会弹出对话框继续另一个。

vivado + zedboard 初体验_第15张图片
vivado + zedboard 初体验_第16张图片
导出硬件

vivado + zedboard 初体验_第17张图片
启动软件

4、软件

vivado + zedboard 初体验_第18张图片
软件启动了
vivado + zedboard 初体验_第19张图片
vivado + zedboard 初体验_第20张图片
新建软件工程

vivado + zedboard 初体验_第21张图片
打开helloworld.c对动点手脚

#include 
#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "sleep.h"
#include "platform.h"
#include "xil_types.h"
#include "xgpiops.h"


#define XPAR_LEDS_ID XPAR_AXI_GPIO_0_BASEADDR  //添加 led
#define XPAR_SWS_ID  XPAR_AXI_GPIO_1_BASEADDR  //添加 开关

int main()
{
    static XGpio LED_Ptr;//定义LED的指针
    static XGpio SWS_Ptr;//定义开关的指针
    int state = 0;
    
    //初始化 LED
    XGpio_Initialize(&LED_Ptr,XPAR_AXI_GPIO_0_DEVICE_ID);
    XGpio_SetDataDirection(&LED_Ptr, 1,0x00);//通道1;设置方向 0 输出 1输入, 0x00表示8位都是输出
    XGpio_DiscreteWrite(&LED_Ptr, 1,0x00);//开始全关

    //初始化 开关
    XGpio_Initialize(&SWS_Ptr,XPAR_AXI_GPIO_1_DEVICE_ID);
    XGpio_SetDataDirection(&SWS_Ptr, 1,0xFF);//通道1;设置方向 0 输出 1输入 0xFF表示8位都是输入

    while(1){
        state = XGpio_DiscreteRead(&SWS_Ptr, 1);  //从开关处 读数据
        printf("Numb %d\n\r", state);
        XGpio_DiscreteWrite(&LED_Ptr, 1,state);   //数据写入 led
        usleep(1000);      //延时 1ms
    }

    return 0;
}

vivado + zedboard 初体验_第22张图片

vivado + zedboard 初体验_第23张图片
选好硬件和bitstream,然后编程
vivado + zedboard 初体验_第24张图片
下载软件运行

叮咚,亮了

你可能感兴趣的:(嵌入式)