接着昨天得继续来。
打开工程得文件夹,你会发现有下面得文件夹是自动生成得:
_ _xps文件夹:包含XPS和内部工程管理的其它工具产生的中间文件;
data文件夹:包含用户约束文件(UCF)。
etc文件夹:此目录中的文件给出了运行不同工具的脚本文件,包含了下载的cmd文件
pcores文件夹:包括了用户定制的硬件外围设备。暂时是空得。
然后生成得文件是什么作用呢?
system.xmp:这是EDK的顶层工程设计文件。XPS读取此文件,并在用户界面上给出此文件内容。
system.mhs:系统微处理器硬件规范(或MHS文件),给出系统元素、对应的参数以及连接。
MHS文件是项目的硬件基础。此外,UCF文件也是和硬件结构对应的。
system.mss:系统微处理器软件规范(或MSS文件),给出设计的软件部分,描述了系统元素以及外围设备的不同软件参数。MSS文件是项目的软件基础。
system.log:日志文件你得所有操作都会被记录下来。
Ucf 文件是用户约束,cmd 链接文件,opt implementation options file
然后这个时候能看到
>1. >工程信息面板 有三个页 project, application 和IP catalog,project下面是硬件工程得树形目录,application下面是应用软件得树形目录(此时为空),IP catalog是可添加得IP资源,用户可以自行添加。
>2. >系统组件(assembly)面板 这里面得横竖线,显示你得硬核总线结构和外挂得设备。有Bus Interface,ports和address 。
然后可以在project下面得generate and view block diagram ,可以看看生成得硬件得整体架构和总线以及外设,总体上有个认识和把握。
学习完这个,就可以在上面加载软件得project了。
在application下面双击add software application project,产生对话框,输入工程得名字然后OK,然后会生成一个project,然后在source上单击右键,添加C文件进去。这个C文件就是你得应用程序。
下面来编写这个程序,功能是按下按键pushbutton对应得LED灯要亮起来。
源文件如下:
#include "xgpio.h"
#include "xparameters.h"
int main(void)
{
XGpio gpLED;
XGpio gpPB;
// Initialise the peripherals
XGpio_Initialize(&gpLED, XPAR_LEDS_4BIT_DEVICE_ID);
XGpio_Initialize(&gpPB, XPAR_PUSHBUTTONS_5BIT_DEVICE_ID);
// Set the LED peripheral to outputs
XGpio_SetDataDirection(&gpLED, 1,0x00000000);
// Set the Push Button peripheral to inputs
XGpio_SetDataDirection(&gpPB, 1,0xffffffff);
Xuint32 data = 0;
while(1)
{
// Read the state of the push buttons
data = XGpio_DiscreteRead(&gpPB, 1);
// Set the LED state
XGpio_DiscreteWrite(&gpLED, 1, data);
}
}
呵呵太晚了,明天接着解释各个函数得作用和每个函数得函数体,因为xilinx有很多库和头文件中定义了很多函数,或者说基本外设得驱动是已经写好得,拿来用及可以了,怎么用怎么找到这些文件和函数是个问题呵呵。