[X]关闭

Mis603开发板MB SOC开发教程:第三章 流水灯实验

文档创建者:Milinker_XU
浏览次数:5219
最后更新:2016-01-11
本帖最后由 Milinker_XU 于 2016-1-10 22:25 编辑

不管如何,流水灯实验在哪都跑不掉。从本章开始我们实验都将在前章实验的基础上添加新的IP,不再建立新的工程。新建一个文件夹作为本章工程文件夹,复制上一章工程到本章。启动ISE后,启动XPS进行配置。
◎添加AXI GPIO,即通用接口IP。


◎添加后弹出的对话框中,将IP命名为LED,修改数据位宽为8位,保持和mis603上LED灯个数一致。

点击OK后,将IP连接到MB上。


◎从Ports中可以看出,添加的LED,端口已经输出,且数据位宽为8bit。


◎在LED的IP中,下拉列表中选择GPIO_IO_O为连接到外部输出,GPIO_IO选择为No Connection。
◎在mhs文件中同样可以看到对应的硬件信息。


◎在UCF文件中添加LED的信号约束。这样LED灯的硬件平台就构建结束,使用Generate Netlist产生对应的网表。

◎在ISE中产生顶层文件,并编译该工程。待编译完成后,通过XPS打开SDK,路径设置为MB_SDK。
◎在SDK里,我们可以看到上次测试用的DDR3_Test工程,这里不在用到这个工程了,可以不用理会。


◎在system.xml里面查看,各个IP的版本号是否都在,如果不在,重启SDK


◎在SDK中新建一个空的项目,命名为Water_LED


◎在src路径下新建个water_led.c文件。


◎添加LED灯闪烁的源代码
  
/ * Water_LED.c
  
*   Created on: 2016-01-10
  
*   Author: Milinker XU
  
*/
  
#include "xparameters.h"
  
#include "xgpio.h"
  
#include "stdio.h"
  
#include "xil_types.h"
  
  
void delay_ms(u16 tnms)//不精确的延迟
  
{
  
       u16  n1,n2;
  
       for(n1=0;  n1<2500; n1++)
  
              for(n2=0;n2<tnms;n2++);
  
}
  
  
int main()
  
{
  
  
       u8  i=0;
  
       u32  led;
  
       led=0x0000;
  
       XGpio_Out32(XPAR_LED_BASEADDR,led);
  
       delay_ms(500);
  
       led=0xffff;
  
       XGpio_Out32(XPAR_LED_BASEADDR,led);
  
       delay_ms(500);
  
       while(1)
  
       {
  
              i=0;
  
              led=0xFE;
  
              while(i<8)
  
              {
  
                     XGpio_Out32(XPAR_LED_BASEADDR,led);
  
                     led<<=1;
  
                     i++;
  
                     delay_ms(100);
  
              }
  
       }
  
       return  0;
  
}
◎将Bit文件下载到mis603,再运行上面程序,可以看到LED此时欢快地跑起来了。

◎下面简单谈谈MB系统中,通用IO的使用。由于MB类似于一个单片机系统,因此,其配置的IO口,与单片机的并口相类似。Xilinx在SDK开发环境中提供的BSP,里面有完成开发所需的头文件和源文件等。如下图所示,BSP文件包中对于开发者而言,提高了太多的效率。使得MB系统就如同普通单片机一样简单。


◎打开gpio_v3_01_a文件下,查看底层的源文件和文件。Xilinx对每个IP的开发,都有详细的介绍和对应的开发例程序。然而很多人并不知道,很多人在开发的过程中,各种查阅自己,却不知道,ISE和SDK在安装的时候就已经有该部分的文档了。打开安装路径下的..\ISE\14.7\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers,可以看到SDK开发过程中的每个IP。




◎如我们现所使用的gpio,其对应的文件就包括下图所示。有了这些,开发将会变的极其轻松。但是请注意,最好将XilinxProcessorIPLib整个文件夹拷贝一份到别处使用,防止我们对底层文件修改,导致SDK中编译无法通过。对于具体的寄存器的使用,这里不在一一介绍,请大家根据自身需求完成开发。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

发表评论已发布 1

宋桓公

发表于 2016-1-11 08:24:50 | 显示全部楼层

老许给力啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则