加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]Microblaze中断

(2012-08-20 09:08:16)
标签:

转载

分类: FPGA开发
原文地址:Microblaze中断作者:阳明

.硬件配置

1)添加IP

20100423103337651

2)分配地址

20100423103316430[1]

3)连线

20100423103547632[1]

20100423103716657[1]

.软件编写

(1)timer的处理:载入计数值->设置运行选项(向上向下计数,使能中断,自加载计数值等)->使能,开始运行

(2)interupt的处理:使能microblaze中断->XPS_INTC注册中断服务函数->使能XPS_INTC中断->使能timerXPS_INTC里的中断

(3)程序架构:

#include "xparameters.h"
#include "xintc.h" //
中断子函数头文件
#include "xtmrctr.h" //
定时器子函数头文件

void  timer_int_handler(void);//中断函数声明

int main(void)
{

  microblaze_enable_interrupts();
     
XIntc_RegisterHandler(XPAR_XPS_INTC_0_BASEADDR,
            XPAR_XPS_INTC_0_XPS_TIMER_0_INTERRUPT_INTR, 
            (XInterruptHandler)timer_int_handler,
            (void *)XPAR_XPS_TIMER_0_BASEADDR
            );

  XIntc_mMasterEnable(XPAR_XPS_INTC_0_BASEADDR);
 
  XTmrCtr_mSetLoadReg(XPAR_XPS_TIMER_0_BASEADDR,0,0x20000000);
 
  XTmrCtr_mSetControlStatusReg(XPAR_XPS_TIMER_0_BASEADDR,0,
  XTC_CSR_ENABLE_TMR_MASK | XTC_CSR_ENABLE_INT_MASK |XTC_CSR_AUTO_RELOAD_MASK|XTC_CSR_DOWN_COUNT_MASK );
     
XIntc_mEnableIntr(XPAR_XPS_INTC_0_BASEADDR,XPAR_XPS_TIMER_0_INTERRUPT_MASK);  

  while(1);//等待中断    
  return 0;
}

//中断处理程序:
void  timer_int_handler(void)
 
  unsigned int timer_csr; 
  timer_csr = XTmrCtr_mGetControlStatusReg(XPAR_XPS_TIMER_0_BASEADDR, 0);
  //...
中断处理
 
  XTmrCtr_mSetControlStatusReg(XPAR_XPS_TIMER_0_BASEADDR,0, timer_csr);
}


例子:
void InterruptHandler(void);

int main(void)
{
microblaze_register_handler((XInterruptHandler)InterruptHandler, (void*)0);

#ifdef DEBUG
print("* Registered Interrupt Handler *nr");
#endif

microblaze_enable_interrupts();

// Something useful here.

return 0;
}



void InterruptHandler(void)
{
#ifdef DEBUG
print("* Entering Interrupt *rn");
#endif
microblaze_disable_interrupts();

// Do something useful here :).

microblaze_enable_interrupts();

#ifdef DEBUG
print("* Leaving Interrupt *rn");
#endif
}

 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有