[ZedBoard测评] 创建基于AXI Lite总线的vga测试IP核(三)(软件部分)
0赞2、软件设计
从PlanAhead导出硬件信息后,首先看一下SDK自动生成的system.xml文件,看看vga IP核有木有加进来,地址是多少~
看到上图的结果,就知道IP核已经添加成功了。
2.1、新建工程
File->New->Xilinx C Project
工程模板选择 Hello World,工程名改成vga_ip_test_0,然后点击Next:
需要新建BSP,把工程名改为vga_ip_test_bsp_0。Finish,然后SDK会创建文件并自动全编译生成的代码。
2.2、设计代码
2.2.1、重命名文件
展开vga_ip_test_0工程文件夹,展开src,找到helloworld.c,选中,右键,Rename,改成vga_ip_test.c,点击OK。
2.2.2、编写代码
删除主函数中的所有代码,添加新代码如下:
-----------------代码开始---------------------
/*
* vga_ip_test_0.c: simple test application
*/
#include
#include "platform.h"
#include "xil_io.h"//包含Xil_Out32函数
#include "sleep.h" //包含sleep函数
#define vga_base_addr 0x78c00000
void print(char *str);
int main()
{
//八种颜色循环显示,每一屏显示1s
while(1)
{
Xil_Out32(vga_base_addr,0x0);
sleep(1);
Xil_Out32(vga_base_addr,0xf);
sleep(1);
Xil_Out32(vga_base_addr,0xf0);
sleep(1);
Xil_Out32(vga_base_addr,0xf00);
sleep(1);
Xil_Out32(vga_base_addr,0xff);
sleep(1);
Xil_Out32(vga_base_addr,0xf0f);
sleep(1);
Xil_Out32(vga_base_addr,0xff0);
sleep(1);
Xil_Out32(vga_base_addr,0xfff);
sleep(1);
}
return 0;
}
---------------代码结束---------------
这段代码中使用了BSP中的两个函数,具体如何使用,请参考声明和源码。
2.3、下载bitstream和软件可执行代码,运行,并测试。
2.3.1、下载bitstream
如上图所示,到Xilinx Tools菜单下,选择Program FPGA:
默认的bitstream一般是对的,不用改,点击Program。下载成功后,zedboard上OLED旁边的蓝色LED点亮:
2.3.2、右键选中vga_ip_test_0工程,选择Run As,选择Run Configuration...
弹出下面的Run Configuration界面。
右键选中Xilinx C/C++ ELF,新建可执行文件。
新建完成:
查看一下Device Initialization选项:
发现使用ps7_init.tcl进行初始化。
点击Run,查看运行效果。
运行结果是:屏幕循环显示8种颜色,每个颜色维持1秒钟。
测试效果就不给了,前面的文章已经给过测试图了,那篇是通过串口控制屏幕的颜色,软件操作稍微复杂一点,今天只是做了个简单的循环。