| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | 
您现在的位置: FPGA开发板 FPGA 开发板 SOPC开发板 DSP开发板 视频开发板 -嵌入式控制研究室 >> SOPC >> Nios >> 文章正文 用户登录 新用户注册
怎样在NIOSII中操作PIO?          【字体:
怎样在NIOSII中操作PIO?
作者:GardenSu    文章来源:21control    点击数:    更新时间:2005-12-12

运用NIOSII_IDE向导,在niosII_cyclone_1c20\small\下新建一个hello_led工程。
其中hello_led.c是这样写IO口的:

IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);

首先在altera_avalon_pio_regs.h找到定义
#include <io.h>
#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)
#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data)
因此在NIOSII中可以调用#include <io.h>库函数IORD/IOWR来操作PIO。

(详情可参见D:\altera\kits\nios2\documents\ n2cpu_nii51007.pdf 文档page:7, Table 7–2:
和n2sw_nii5v2.pdf.pdf 文档page:111, Table 7–1:)

接着在small\software\hello_led_0_syslib\Debug\system_description下的system.h
中,有以下内容:
#define LED_PIO_TYPE "altera_avalon_pio"
#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);
编译,下载到开发板上,运行成功!

初级知识,就当是抛砖引玉,这只是库函数级,应该还有汇编级代码,请各位大虾继续!

---




 

文章录入:flyongrass    责任编辑:flyongrass 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    NiosII开发常见问题
    niosII初学者无痛起步
    nios ii的 中断
    nios flash read/write
    高變異性AES系統-使用可重組…
    Cyclone II FPGA與Nios II嵌…
    Altera發表低成本Nios II軟核…
    Altera、InterNiche與Moreth…
    Express Logic推出支持Alter…
    Altera, InterNiche and Mor…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)