microblaze通过switch开关ip运行led
硬件部分
因为上面硬件已经有了gpio的switch开关和led,所以硬件部分和上面一个硬件一样,不需要做任何改变
点亮led的SDK设计
这里面有我们硬件设计的说明文件
说明文件和案例文件
选择第一个,最标准的gpio历程
打开.c文件
点亮led的GPIO历程文件的解读
首先是头文件,可以按住ctrl,再左键点击,转到头文件
常量定义:
#define LED 0x01:表明把GPIO最低一位连接到LED上
定义设备ID
定义了LED的通道为1
初始化,初始化检查,数据方向(函数0是写,1是读)
可以把前面#define LED 0x01修改为#define LED 0x0F,这样就点亮4个LED灯
while循环进行点灯操作(一直循环)
连接开发板
点击program,下载bit流到开发板
运行文件
点亮led的运行结果
可以看到4个LED灯都一闪一闪,运行成功
添加switch开关的GPIO控制
在上述点亮led的基础上改写实现拨码开关的效果
修改1:添加常数,确定其输入输出方向,开关数据方向和LED相反,低四位为0,高四位为1,低四位为向处理器输入的
GPIO的id初始化不需要添加,因为本次实验中硬件只有一个GPIO
添加开关通道
设置开关通道读写情况
在GPIO的头文件中可以看到读函数
定义一个变量value,将开关值读到value中,再将value值当做led写数据
开关读数据函数,只有两个参数
删除时间控制led部分,直接由switch控制led亮灭
在FPGA运行结果
bit流文件若是已经下载好,直接运行工程文件
结果暂时,拨动开关,led就亮
补充:SDK的开发技巧
外设的历程位置
工程的头文件位置
外设函数的定义位置
数据存储空间的显示文件
目前软核是用的BARM进行数据存储,若是添加外部存储设备,比如DDR3,则存储空间就会增大出来
右键工程,选择“build settings”
优化等级和调试等级的设置
在optimization中设置优化等级
一般保持默认,不进行修改
还有debug