首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Xilinx ISE 12.3 LED测试程序

Xilinx ISE 12.3 LED测试程序

1. 进入XPS,使用BSB wizard。2. 命名新建的工程,并选择I would like to creat a system for a custom board3. 板子参数:virtex4///xc4vsx25///ff668///-104. 晶振频率100MHz,Local memory选16KB5. 点击Add Device,IO Interface Type选GPIO,Device选LEDS。GPIO Data Width就是板子上led的个数,选择66. STDIN和STDOUT选NONE7. 点finish之后会弹出一个窗口,提示你需要该两个文件data/system.ucf和etc/download.cmd,点OK8. 在system下双击download.cmd文件。其中需要修改的是两处数字,这个数字表示的是你FPGA在JTAG链中是第几个。这里将1改为2.9. 在system下双击system.ucf文件,开始锁管脚。打开SEED-FEM025.pdf,找到clk、rst和LEDS的管脚,并修改。10. Hardware->Generate Netlist。这个过程比较费时。11. Software->Generate Libraries and BSPs12. 双击Application下sources下的TestApp_Memory.c,写程序。13. 在SEED-FEM025.pdf中可以看到赋值为1时led亮,LED的排列方式为:SEEDled2led5led4led3 led6led1 14. 写完之后Software->Build All User Applications。无误之后就可以Download到板子上查看结果了 ,下面是源码:view sourceprint?01 16 17// Located in: microblaze_0/include/xparameters.h 18 19#include "xparameters.h" 20#include "xgpio.h" 21#include "xstatus.h" 22#define LED_DELAY 1000000 23XGpio LED_POINTER; 24//==================================================== 25 26int main (void) { 27 30#if XPAR_MICROBLAZE_0_USE_ICACHE 31Xil_ICacheInvalidate(); 32Xil_ICacheEnable(); 33#endif 34 35#if XPAR_MICROBLAZE_0_USE_DCACHE 36Xil_DCacheInvalidate(); 37Xil_DCacheEnable(); 38#endif 39 40#if XPAR_MICROBLAZE_0_USE_DCACHE 41Xil_DCacheDisable(); 42Xil_DCacheInvalidate(); 43#endif 44 45#if XPAR_MICROBLAZE_0_USE_ICACHE 46Xil_ICacheDisable(); 47Xil_ICacheInvalidate(); 48#endif 49 50volatile
int DELAY; 51int count=0; 52 53XGpio_Initialize(&LED_POINTER,XPAR_LEDS_DEVICE_ID); 54XGpio_SetDataDirection(&LED_POINTER,1,0x0000); 55 56 57while(1) 58{count++; 59if(count%2==0) 60{ 61XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x02); 62} 63else 64{ 65XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x16);66}67 68for(DELAY=0;DELAY<LED_DELAY;DELAY++);69 70if(count%2==0) 71{ 72XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x08); 73} 74else 75{ 76XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x04); 77} 78 79for(DELAY=0;DELAY<LED_DELAY;DELAY++); 80 81if(count%2==0) 82{ 83XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x32); 84} 85else 86{ 87XGpio_WriteReg(XPAR_LEDS_BASEADDR,1,0x01); 88} 89 90for(DELAY=0;DELAY<LED_DELAY;DELAY++); 91} 92 93return 0; 94} 转载自:心的微笑的博客
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表