nios pio interrupt 的使能
2014-05-10 20:08
423 查看
关于nios 中的中断,因为要16c550中需要nios的中断环境去测试,所以就用到了中断。
硬件:在nios中添加硬件PIO,但是要使能中断功能。如下图所示:
![](http://images.cnitblog.com/i/615491/201405/101957510735060.jpg)
系统列化,PIO的连接就不说了。但是要注意两地方:edge type, IRQ type。
接下来就是软件设计:
使能相应的中断,IOWR_ALTERA_AVALON_PIO_IRQ_MASK(INTREP_BASE, 0xff);即相对应的MASK函数每一位1位使能。
清中断标志位:IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTREP_BASE, 0xff);
(注:在此时是0x00 还是 0xff清除中断标志, enable bit-clearing for edge capture register的选项。在此我是使能了,即0xff清除标志位。反则,0x00清除中断标志位)
中断注册函数:
alt_ic_isr_register(INTREP_IRQ_INTERRUPT_CONTROLLER_ID, //定义在system.h中
INTREP_IRQ, //定义在system.h中
intrp_isr, //中断服务子函数
isr_context, //空指针 void * isr_context
0x0 //保留位,但是要写
);
对应中断服务子函数:
void intrp_isr(void) {
printf("have enter the isr \n");
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTREP_BASE, 0xff) ; //清标志位
(注:在此时是0x00 还是 0xff清除中断标志, enable bit-clearing for edge capture register的选项。在此我是使能了,即0xff清除标志位。反则,0x00清除中断标志位)
。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。
}
到此软硬件,设计完毕。只要对应的PIO,发生中断的条件,在nios 中就会响应中断,进入中断服务子函数。
硬件:在nios中添加硬件PIO,但是要使能中断功能。如下图所示:
![](http://images.cnitblog.com/i/615491/201405/101957510735060.jpg)
系统列化,PIO的连接就不说了。但是要注意两地方:edge type, IRQ type。
接下来就是软件设计:
使能相应的中断,IOWR_ALTERA_AVALON_PIO_IRQ_MASK(INTREP_BASE, 0xff);即相对应的MASK函数每一位1位使能。
清中断标志位:IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTREP_BASE, 0xff);
(注:在此时是0x00 还是 0xff清除中断标志, enable bit-clearing for edge capture register的选项。在此我是使能了,即0xff清除标志位。反则,0x00清除中断标志位)
中断注册函数:
alt_ic_isr_register(INTREP_IRQ_INTERRUPT_CONTROLLER_ID, //定义在system.h中
INTREP_IRQ, //定义在system.h中
intrp_isr, //中断服务子函数
isr_context, //空指针 void * isr_context
0x0 //保留位,但是要写
);
对应中断服务子函数:
void intrp_isr(void) {
printf("have enter the isr \n");
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTREP_BASE, 0xff) ; //清标志位
(注:在此时是0x00 还是 0xff清除中断标志, enable bit-clearing for edge capture register的选项。在此我是使能了,即0xff清除标志位。反则,0x00清除中断标志位)
。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。
}
到此软硬件,设计完毕。只要对应的PIO,发生中断的条件,在nios 中就会响应中断,进入中断服务子函数。
相关文章推荐
- Nios中PIO的INT
- NIOS的system.h解读--PIO实现的LED灯和key
- 【笔记】关于NIOS II PIO的几个问题
- volatile 指针指来指去干嘛呀->nios2 PIO中断ISR
- 探究X Window System运行原理与启动过程(Nios.Org)
- 一个很简单的用nios写的中断方式接受的串口例子
- Understanding the linux kernel-ch4-Initializing the Interrupt Descriptor Table
- 硬盘工作模式由PIO改不回DMA模式了
- Physical device interrupt handling in XEN
- Nios II IDE加入行号
- 关于打开nios提示环境变量出错的解决
- interrupt & InterruptException
- interrupt 和 using 在C51中断中的使用
- 【原创】Altera系列工具(QuartusII、SOPC Builder、NiosII IDE)工作过程分析
- NIOS 的外部中断
- Nios 定时器内核之timestamp_timer
- Nios - TFT-LCD(ILI9320控制器)
- interrupt.c
- NIOSNios II 软件代码优化方法
- Interrupt--PIC--APIC