nios pio interrupt 的使能

关于nios
中的中断,因为要16c550中需要nios的中断环境去测试,所以就用到了中断。

硬件:在nios中添加硬件PIO,但是要使能中断功能。如下图所示:

系统列化,PIO的连接就不说了。但是要注意两地方:edge
type, IRQ type。

接下来就是软件设计:

使能相应的中断,IOWR_ALTERA_AVALON_PIO_IRQ_MASK(INTREP_BASE,
0xff);即相对应的MASK函数每一位1位使能。

清中断标志位:IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTREP_BASE,
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,
0x00) ; //清标志位
。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。
}

到此软硬件,设计完毕。只要对应的PIO,发生中断的条件,在nios
中就会响应中断,进入中断服务子函数。

nios pio interrupt 的使能,布布扣,bubuko.com

时间: 2024-10-14 22:08:59

nios pio interrupt 的使能的相关文章

CSR8670按钮事件

一.手工编写按钮事件 使用PIO11 PIO12来分别模拟ButtonA和ButtonB,则相应的按钮事件和处理程序为: #include <pio.h> #include <stdio.h> #include <message.h> #define BUTTON_A (1 << 11) /* PIO11 is BUTTON_A */ #define BUTTON_B (1 << 12) /* PIO12 is BUTTON_B */ typed

Zigbee协议栈OSAL层API函数【转载】

OSAL层提供了很多的API来对整个的协议栈进行管理.主要有下面的几类:信息管理.任务同步.时间管理.中断管理.任务管理.内存管理.电源管理以及非易失存储管理.看到这些管理是不是感觉越来越像一个操作系统了. 1.     信息管理API 信息管理为任务间的信息交换或者外部处理事件(例如:中断服务程序或一个控制循环内的函数调用)提供一种管理机制.包括允许任务分配或不分配信息缓存.发送命令信息到其他任务.接受应答信息等API函数. (1)osal_msg_allocate ( ) 功能描述: 为信息

定时器TIM,pwm

一.定时器 1.     定义 设置等待时间,到达后则执行指定操作的硬件. 2.    STM32F407的定时器有以下特征 具有基本的定时功能,也有PWM输出(灯光控制.电机的转速).脉冲捕获功能(红外捕捉). 2个高级控制定时器.10个通用定时器和2个基本定时器 高级控制定时器(TIM1和TIM8) 具有16位定时器功能,也具有PWM输出高级控制功能 通用定时器(TIM2到TIM5) 具有16位定时功能,也具有PWM输出控制功能 通用定时器(TIM9到TIM14) 具有16位定时功能,也具有

nios II--实验4——按键中断软件部分

软件开发 首先,在硬件工程文件夹里面新建一个software的文件夹用于放置软件部分:打开toolsàNios II 11.0 Software Build Tools for Eclipse,需要进行Workspace Launcher(工作空间)路径的设置,需要注意的是路径中不要含有空格等,然后单击OK即可. ? 新建工程.单击File -> New ->?Nios II Application and BSP from Template,弹出Nios II Application and

hi3531的pcie控制器使能

根据5.2中的讲解,当监控high priority queue的PDSP channel设定好后,那么与之对应的event就知道了(PDSP channel与event一一对应)(注意5.x讲的是中断的配置,并不是exception的配置,4.x讲的是exception) 中断event与ISR配置代码如下,目的是使event与ISR建立联系: /*Configure event*/ EventCombinerEventConfig( systemEvent,  (TEventCombiner

nios II--实验4——按键中断硬件部分

按键中断 硬件开发 新建原理图 1.打开Quartus II 11.0,新建一个工程,File -> New Project Wizard-,忽略Introduction,之间单击?Next>?进入下一步.分别设置工程工作目录.工程名称.这里需要注意的是工程工作目录中请使用英文,不要含有空格等,否则在后面使用Nios II IDE的时候会出现问题.设置好后如图1所示.然后进行下一步.这里工程命名为lab3_bnt 2.添加已经存在的文件,这里没有需要添加的文件,直接单击?Next>?进入

nios II--实验7——数码管IP硬件部分

数码管 硬件开发 新建原理图 打开Quartus II 11.0,新建一个工程,File -> New Project Wizard-,忽略Introduction,之间单击?Next>?进入下一步.分别设置工程工作目录.工程名称.这里需要注意的是工程工作目录中请使用英文,不要含有空格等,否则在后面使用Nios II IDE的时候会出现问题.设置好后如图1所示.然后进行下一步.这里工程命名为lab6_seg 2.添加已经存在的文件,这里没有需要添加的文件,直接单击?Next>?进入下一步

nios II--实验6——串口软件部分

软件开发 首先,在硬件工程文件夹里面新建一个software的文件夹用于放置软件部分:打开toolsàNios II 11.0 Software Build Tools for Eclipse,需要进行Workspace Launcher(工作空间)路径的设置,需要注意的是路径中不要含有空格等,然后单击OK即可. 新建工程.单击File -> New ->?Nios II Application and BSP from Template,弹出Nios II Application and B

NIOS II 例程之Hello CS

1 新建工程 在quartus ii 中新建一个工程(hello.Prj) 2 Qsys硬件系统搭建 在quartus ii中开启Qsys: 打开Qsys界面发现System Contents下已经有了一个clk_0,如下图所示.为搭建一个最小系统还必须添加一些必要组件,比如NIOS II 处理器.JTAG.onchip_ram.systemID等. 添加JTAG: 添加NIOS II 处理器 添加onchip_ram 添加pio 添加system ID 在system contents 的co