MyFPGA Forum

标题: 请教NiosII的中断问题 [打印本页]

作者: 清霜一梦    时间: 2010-6-10 23:27
标题: 请教NiosII的中断问题
我刚接触到SOPC   我的请教帖有好几个了  呵呵  
我想用timer  弄出一个中断   但是在网上找的程序我看不懂啊   虽然是学了C语言 还是很懵啊  
还请高手给解释一下   这些是什么东西啊  
特别是一些 *     是什么东西啊     不可能也是指针吧


  static void init_button_pio() {                                                              

  void* edge_capture_ptr = (void*)&edge_capture;        // 这个(void*)什么东西啊      
  IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTON_PIO_BASE,0xf);
  IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE,0x0);
  //注册一个中断处理子程序handle_button_interrupts()
alt_irq_register(BUTTON_PIO_IRQ,edge_capture_ptr,handle_button_interrupts);



static void handle_button_interrupts(void* context,alt_u32 id)
{
  volatile int* edge_capture_ptr = (volatile int*)context;

  *edge_capture_ptr = IORD_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE);
   IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE,0);
}
作者: xlbian    时间: 2010-6-11 13:10
回复 1# 清霜一梦

看一下C语言的指针。
作者: 清霜一梦    时间: 2010-6-11 20:57
回复 2# xlbian


alt_irq_register(BUTTON_PIO_IRQ, 0,ISR_ButtonDown);
可是这里的 0  还是看不懂啊   有时候我看到的不是 0  而是一个变量   劳烦解释一下  !!!

int main (void) __attribute__ ((weak, alias ("alt_main")));
这又是什么东西呢  weak   alias  干什么用的
作者: xlbian    时间: 2010-6-12 12:25
回复 3# 清霜一梦
alt_irq_register()原型为:
int alt_irq_register(alt_u32 id,
                               void* context,
                               void(*handler)(void*, alt_u32));
id:中断优先级;
context:为所注册的ISR的传递参数,可以为NULL;
handle:中断服务函数ISR的指针。
作者: xlbian    时间: 2010-6-12 12:31
回复 3# 清霜一梦
alt_irq_register()原型为:
int alt_irq_register(alt_u32 id,
                               void* context,
                               void(*handler)(void*, alt_u32));
id:中断优先级;
context:为所注册的ISR的传递参数,可以为NULL;
handle:中断服务函数ISR的指针。

alt_main()为硬件描述层(HAL)的C入口函数,NIOS II IDE的调试器默认自动在main()函数入口设置一个断点,可以保证每次的调试均从main()函数开始。int main (void) __attribute__ ((weak, alias ("alt_main")));告诉调试器main()函数的别名是alt_main,从而迫使调试器将断点设置在alt_main函数入口。
作者: 清霜一梦    时间: 2010-7-12 15:49
回复 5# xlbian


   非常感谢   感动 感动!!!




欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3