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, 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 中就会响应中断,进入中断服务子函数。
转载于:https://www.cnblogs.com/cornhill/p/3720943.html
nios pio interrupt 的使能相关推荐
- PicoBlaze中断
PicoBlaze中断 我们知道,PicoBlaze微控制器只提供一个中断输入口,如果设计中需要多个中断,可以在FPGA中用逻辑实现.图12-4 所示为一个简单的中断连接图,当有中断发生时,触发器的2 ...
- cc2530定时器和捕获比较_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 http://weixi ...
- R40 gpio 寄存器地址操作【原创】
首先要学会看手册,下面拿PC来做说明. 3.18.3. Register List Module Name Base Address PIO 0x01C20800 Register Name ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- STM32的HAL库分析及使用
STM32的三种开发方式 通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的.一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配 ...
- STM32标准库、HAL库特点与应用
新手在入门STM32的时候,一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配置寄存器进行开发. 对于刚入门的朋友可能没法直观了解这些不同开发发方式彼此之间的区别,本文试图以一种非常直白的方 ...
- 全志a10 Android,全志A10 Android4.0 电话系统 使用说明文档 (MU509篇)
全志A10 Android4.0 电话系统 使用说明文档 (MU509篇) [复制链接] 1.1 目的 本文档只要是针对华为 MU509通信模块在全志A10 android系统上开发的指导说明. 1 ...
- 有关DSP2812与SPI接口DA芯片的通信(AD5640,AD5682)
使用DSP2812控制SPI接口DA芯片总结: 本文只针对SPI接口的DA芯片,通常用到的DA芯片有精度位16位/14位/12位的.我在这次过程中用到的都是14位的,刚开始使用的是AD5640的DA芯 ...
- DSP28335移植ucosii
在https://www.micrium.com/ 中,存在一个已经移植好的28335工程.但是这个工程问题很明显,就是缺乏相关寄存器的映射和定义.这就导致如果直接使用这个工程,一些.c和.h文件就要 ...
最新文章
- Mybatis源码解读-设计模式总结
- 校园网安全问题分析与对策
- python中封装是什么意思_Python中数据封装是什么?
- 剑指 Offer 09. 用两个栈实现队列(相邻相同操作只需要移动一次)
- cache 访问延迟背后的计算机原理
- 手机端页面自适应解决方案-rem布局
- idea热部署devtools
- 最大熵模型介绍及实现
- MessageFormat用法
- apt 和 apt-get 区别
- 配置centos环境
- Create Material by BDC and BAPI
- python第三方模块下载方法(最详最细)
- 使用Vue开发Chrome插件
- 谷歌成功利用一台 54 量子比特的量子计算机
- 2022-基于树木形态和有限状态机的森林火灾蔓延实时三维可视化
- 科学家发现超时空传输能量的方法
- 如何将google的扩展程序打包:
- 02【ArcGIS Pro SDK for Microsoft .NET】开发实现登录页面
- matlab互相关检测器,自相关函数和互相关函数的利用MATLAB计算和作图
热门文章
- netif_start_queue/netif_wake_queue/netif_stop_queue
- Oracle用户system解锁
- ubuntu下安装JDK和netbeans
- 【转】一步一步教你远程调用EJB
- gbk编码在线转换工具_TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
- Eigen(8)实例最小二乘法
- linux安装pip
- java中三个基本框架_对于Java基础者应该如何理解Java中的三大框架!
- 卡方检验检验水准矫正_【2008.】趋势性卡方检验专题讨论
- android的md动画,Android-notes/动画体系详解.md at master · drs0214/Android-notes · GitHub