at91.c
来自「基于ARM7微控制器AT91X40开发板的定时器程序」· C语言 代码 · 共 46 行
C
46 行
/* * at91.c * * author: Kexin (kexin28@126.com) Tel:+8613714451195 * date: 2007-11-22 */#include "at91.h"#include "at91_aic.h"#include "at91_timer.h"extern unsigned long svr[32];void at91_install_irqhandler(void *isr){ unsigned int *irq_vec_addr = (unsigned int*)0x18; unsigned int *isr_entry_addr = (unsigned int*)0x38; unsigned int instruction; *isr_entry_addr=(unsigned int)isr; instruction=((unsigned int)isr_entry_addr-(unsigned int)irq_vec_addr-0x08)|0xe59ff000; *irq_vec_addr = instruction;}void do_irq(void){ unsigned int irq_num=0; void (*isr)(void); label_again: irq_num=*(volatile unsigned int *)AIC_IVR; if(irq_num!=0) { at91_mask_irq(irq_num); isr=(void*)svr[irq_num]; if(isr!=0) isr(); at91_unmask_irq(irq_num); *(volatile unsigned int *)AIC_EOICR=irq_num; goto label_again; }}void at91_init(void *isr){ at91_install_irqhandler(isr); at91_init_aic();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?