加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > EDA技术

怎样在NIOSII中操作PIO?

时间:2013-08-27  来源:123485.com  作者:9stone

运用NIOS II_IDE向导,在niosII_cyclone_1c20small下新建一个hello_led工程。
其中hello_led.c是这样写IO口的:
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);
首先在altera_avalon_pio_regs.h找到定义

代码
  1. #include <io.h>   
  2. #define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)   
  3. #define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data)  


因此在NIOS II中可以调用#include <io.h>库函数IORD/IOWR来操作PIO。
(详情可参见D:alterakitsios2documents n2cpu_nii51007.pdf 文档page:7, Table 7–2:和n2sw_nii5v2.pdf.pdf 文档page:111, Table 7–1:)

    接着在smallsoftwarehello_led_0_syslibDebugsystem_description下的system.h中,有以下内容:

代码
  1. #define LED_PIO_TYPE "altera_avalon_pio"   
  2. #define LED_PIO_BASE 0x00004000  


其中LED_PIO_BASE(IO寄存器地址?)为0x00004000同SopcBuilder中设置一致!
(其实在SopcBuilder中有关NiosII的配置,就是通过system.h来传送给IDE的!)
最后用IOWR(0x00004000, 0, led);替代IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);
编译,下载到开发板上,运行成功!
初级知识,就当是抛砖引玉,这只是库函数级,应该还有汇编级代码,请各位大虾继续!


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->EDA技术
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门