nios2 c语言编程

nios2 c语言编程

ID:20663658

大小:90.50 KB

页数:16页

时间:2018-10-14

nios2 c语言编程_第1页
nios2 c语言编程_第2页
nios2 c语言编程_第3页
nios2 c语言编程_第4页
nios2 c语言编程_第5页
资源描述:

《nios2 c语言编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、16nios2c语言编程方法来自:http://www.fpga4u.com/bbs/thread-66-1-1.htmlIORD(base,0) //读数据寄存器DATAIORD(base,1)//读方向寄存器DIRECTIONIORD(base,2)//读中断标志寄存器interruptmaskIORD(base,3) //读边沿触发寄存器edgecaptureIOWR(base,0,data) //写数据寄存器DATAIOWR(base,1,data) //写方向寄存器DIRECTIONIOWR(ba

2、se,2,data) //写中断标志寄存器interruptmaskIOWR(base,3,data)//写边沿触发寄存器edgecapturealt_irq_register(EX_IRQ,edge_cap_ptr,Ex_Interrupt);//注册外部中断,对应的参数分别为中断优先级,传递到中断服务函数的参数,和中断服务函数。IOWR_ALTERA_AVALON_PIO_IRQ_MASK(EX_BASE,0x1);//使能按键中断位,这里在定义硬件时只用了1位IOWR_ALTERA_AVALON_PI

3、O_EDGE_CAP(EX_BASE,0x0);//边沿捕获寄存器清零intmain(void)__attribute__((weak,alias("alt_main")));//将函数入口改为alt_main,由用户自己加载,以减小代码大小。IORD(base,0) //读数据寄存器DATAIORD(base,1)//读方向寄存器DIRECTIONIORD(base,2)//读中断标志寄存器interruptmaskIORD(base,3) //读边沿触发寄存器edgecaptureIOWR(base,0

4、,data) //写数据寄存器DATAIOWR(base,1,data) //写方向寄存器DIRECTIONIOWR(base,2,data) //写中断标志寄存器interruptmaskIOWR(base,3,data)//写边沿触发寄存器edgecapturealt_irq_register(EX_IRQ,edge_cap_ptr,Ex_Interrupt);//注册外部中断,对应的参数分别为中断优先级,传递到中断服务函数的参数,和中断服务函数。IOWR_ALTERA_AVALON_PIO_IRQ_M

5、ASK(EX_BASE,0x1);//使能按键中断位,这里在定义硬件时只用了1位IOWR_ALTERA_AVALON_PIO_EDGE_CAP(EX_BASE,0x0);//边沿捕获寄存器清零intmain(void)__attribute__((weak,alias("alt_main")));//将函数入口改为alt_main,由用户自己加载,以减小代码大小。nios2的C语言和X86或者单片机C语言很相似,上层的标准C库函数都是一样的,区别在于与底层硬件相关的各个外设寄存器的结构不同。如果我们把访问底

6、层硬件寄存器的函数封装起来供上层调用,平台之间的移植就显得很容易了。nios2的C语言和X86或者单片机C语言很相似,上层的标准C库函数都是一样的,区别在于与底层硬件相关的各个外设寄存器的结构不同。如果我们把访问底层硬件寄存器的函数封装起来供上层调用,平台之间的移植就显得很容易了。  下面我总结了一些外设的寄存器结构以及用于访问寄存器的函数。161.可编程输入、输出口PIO//Definedinpio_struct.h//PIOPeripheral//PIORegisterstypedefvolatiles

7、truct{intnp_piodata;      //read/write,upto32bitsintnp_piodirection;    //write/readable,upto32bits,1->outputbitintnp_piointerruptmask;//write/readable,upto32bits,1->enableinterruptintnp_pioedgecapture;  //read,upto32bits,clearedbyanywrite}np_pio;#defineIO

8、ADDR_ALTERA_AVALON_PIO_DATA(base)   __IO_CALC_ADDRESS_NATIVE(base,0)#defineIORD_ALTERA_AVALON_PIO_DATA(base)        IORD(base,0)#defineIOWR_ALTERA_AVALON_PIO_DATA(base,data)    IOWR(base,0,data)#defineIOADDR_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。