二、Zedboard学习之SDK程序编写

接着上一节《vivado中建立工程,创建zynq嵌入式系统》已经配置好硬件环境,为AXI GPIO 分配了地址空间,接着我们编写程序点亮LED灯。
上节输出bit流给SDk后,我们来点击启动SDK:launch SDK
这里写图片描述
执行File->New->Application Project命令。输入新建工程名称,我这里是Design_1;
把程序存放在上一个vivado工程里
这里写图片描述
这里SDK->SDk_Export是我建立的,我把工程放在这里。
接着点击下一步,添加空的应用。完成
之后使用快捷键添加source File
这里写图片描述
保存在工程的src下。
这里写图片描述
输入下面程序:

#include"xparameters.h"
#include"xgpio.h"
#include"xil_printf.h"//有输出语句就要用到
#include"xil_cache.h"
#define GPIO_BITWIDTH 8  
#define GPIO_DEVICE_ID  XPAR_AXI_GPIO_0_DEVICE_ID
#define LED_DELAY 10000000  //简单的延时参数宏定义
#define LED_MAX_BLINK 0x1 //闪烁次数
#define LED_CHANNEL 1 
#define printf xil_printf
XGpio Gpio; 	 
XGpio GpioOutput;	

int Gpio_Marquee(u16 Deviceid,u32 Gpio_Width){

	volatile int delay;
	u32 Ledbit;
	u32 Ledloop;
	int status;
	status=XGpio_Initialize(&GpioOutput,Deviceid);
	if(status !=XST_SUCCESS){
		return XST_FAILURE;

	}

	XGpio_SetDataDirection(&GpioOutput,LED_CHANNEL,0x0);
	for(Ledbit =0x0;Ledbit < Gpio_Width;Ledbit++){
		for(Ledloop=0x0;Ledloop<LED_MAX_BLINK;Ledloop++){

			XGpio_DiscreteWrite(&GpioOutput,LED_CHANNEL,1<<Ledbit);
			for(delay=0;delay<LED_DELAY;delay++);
				XGpio_DiscreteClear(&GpioOutput,LED_CHANNEL,1<<Ledbit);
			for(delay=0;delay<LED_DELAY;delay++);

		}
	}

return XST_SUCCESS;
}
int main(void){

	while(1){

		u32 status;
		status=Gpio_Marquee(GPIO_DEVICE_ID,GPIO_BITWIDTH);
		if(status==0){
			printf("SUCCESS.\r\n");

		}
		else
			printf("FAIL.\r\n");
	}
	return XST_SUCCESS;
}

将zedboard与pc机相连,插上串口线和jtag线
调成JTAG模式:
这里写图片描述
执行xilinx Tools ->Program FPGA命令将比特流写入FPGA中。
这里写图片描述
点击program。
单击所建立的工程名,
这里写图片描述
单击run->run confidence
这里写图片描述
然后单击这里:
这里写图片描述
配置成这样:
这里写图片描述
单击run。
流水灯效果,串口输出success。

论文查重|论文降重|免费降重|降重网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值