用microflaze软件中断

时间:2016-09-21 05:56:23

标签: c microblaze

我正试图在微型电池中运行软件中断,但我正在完成一个完整的路障。因此,Vivado设计生成的xparameter.h文件没有为我启用的sw中断生成任何宏。

所以我开始考虑按下中断模块寄存器。从数据表我可以看到base_addr + 0x0是ISR,base_addr + 0x8是IER。然后是IVAR。

我在代码中完成了以下操作。

void
software_test( void * args )
{
   uint32_t * isr = (uint32_t * ) XPAR_MICROBLAZE_0_AXI_INTC_BASEADDR;
   isr[0xC/4] = 0x20;
   xil_printf("software test\r\n");
}

int init()
{
   uint32_t * isr = (uint32_t * ) XPAR_MICROBLAZE_0_AXI_INTC_BASEADDR;
   isr[0x114/0x4] = (unsigned)&software_test;

   isr[0x8/0x4] |= 0xFFFFFFF0; /* trying to enable everything */
}

然后启动中断我试图命中ISR寄存器

uint32_t * isr = (uint32_t * ) XPAR_MICROBLAZE_0_AXI_INTC_BASEADDR;
isr[0x0/4] = 0x20;

非常感谢任何帮助。

0 个答案:

没有答案