GPIOTest XILINX EDK 第三课(精灵3开发板ISE14.7)
0赞本教程官方论坛:www.osrc.cn 官方淘宝店铺:http://osrc.taobao.com
GPIOTest XILINX EDK 第三课(精灵3开发板ISE14.7)
本教程是基于南京米联电子科技有限公司 精灵3 Spartan6开发板进行,软件采用ISE14.7。本系列教程就是带领大家学习XILINX EDK开发板工具以及SDK下的编程。本教程官方论坛:www.osrc.cn
本实验的目标是学习XILINX SDK开发软件的使用,实现GPIO输入输出的使用,以及对SDK下部分系统文件的一个介绍。
在开始实验前,请确保你的电脑已经安装好ISE14.7,本教程省略最基本的新建工程的具体细节。
本课程中,一些步骤会做一在第二课中重复出现的步骤将简略带过,不再过多重复。
1、这里承接上一个课时的MemoryTest来做,把工程拷贝到GPIOTest文件夹
2、启动工程->启动XPS添加GPIO外设IP
3、设置通道1的GPIO宽度为4 对应精灵3开发板4个LED
4、连接到microblaze_0
5、修改名字为LED
6、用同样的办法添加一个BTN按钮的GPIO ip 只是这里设置2个输入
7、在Ports游标下,把BTN和LED的IO 连接到外部IO
8、到Addresses 游标下重新分配地址空间
9、查看MHS文件,确保命名正确
10、如果MHS文件命名,不符合编程习惯,可以回到ports中进行修改
11、修改ucf文件添加管脚约束
12、回到ISE编译并启动SDK软件,这个过程笔者不在重复,不熟悉的读者把前面把第一个课时、第二个课时做熟练。
13、如图修改路径,之后单击OK启动SDK工具
4、启动完成SDK工具后,新建一个GPIO_Test工程
5、新建一个空的工程
6、新建完成的工程
7、右击->New->Source file新建一个main.c的C文件,
8、主要函数介绍
右击函数名称可以查看函数原形,
XGpio_Out32(,)
#define XGpio_Out32 Xil_Out32
#define Xil_Out32(Addr, Value) \
(*(volatile u32 *)((Addr)) = (Value))
可以看到,最终是对GPIO的地址进行操作,同理
XGpio_In32(,)
#define XGpio_In32 Xil_In32
#define Xil_In32(Addr) (*(volatile u32 *)(Addr))
9、准备好开发板,插上下载器,记住USB线要插上,并且通电,由于拍摄时间问题,本没有插上。
10、调试方法不在重复
实验效果LED 实现流水灯
当按下按钮3 串口打印出 button3 down
当按下按钮4 串口打印出 button4 down