zoukankan      html  css  js  c++  java
  • 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 ");
    IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTREP_BASE, 0xff) ; //清标志位

    (注:在此时是0x00 还是 0xff清除中断标志, enable bit-clearing for edge capture register的选项。在此我是使能了,即0xff清除标志位。反则,0x00清除中断标志位)
    。。。。。。。。。。。。。。

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

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

  • 相关阅读:
    一些好用的小工具
    App随机测试之Monkey和Maxim
    Appium如何自动判断浏览器驱动
    最简单的一个Appium测试Android Web APP的代码demo
    pytest使用allure生成测试报告的2种命令
    使用order by in()将快到期的数据排到最上方。
    关于jQuery click()方法重复提交的问题
    关于List removeAll失效的问题
    根据年和月计算对应的天数
    jquery通过监听输入框实现值的自动计算
  • 原文地址:https://www.cnblogs.com/cornhill/p/3720943.html
Copyright © 2011-2022 走看看