![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
按照一下方法完成中断源的的挂接:
1、增加汇编接口的支持。方法是修改IRQ.s文件,在末尾添加本句代码:
UART0_Handler HANDLER UART0_Exception
追加定义了通用串口0 中断句柄。
2、初始化向量中断控制器。将target.c文件中的VICInit()修改如下:
void VICInit(void)
{ extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
extern void UART0_Handler(void);
VICIntEnClr = 0xffffffff;
VICDefVectAddr =(uint32)IRQ_Handler;
VICVectAddr0 =(uint32)Timer0_Handler;
VICVectCntl0 =(0x20 | 0x04);
VICIntEnable = 1<<4;
VICVectAddr14 =(uint32)UART0_Handler;
VICVectCntl14 =(0x20 | 0x06);
VICIntEnable = 1<<6;
}
此为初始化向量中断控制器。包括定时器0和串口0,特别要注意的是,一定不可以省略对定
时器0的初始化
中断里,不可以调用延时
请注意,中断里面是不支持等待机制的。请用自己编的一个软件延时,问题就可以解决了。
中断源挂接正确是没问题的。
6.问
void TargetInit(void)
{
OS_ENTER_CRITICAL();
srand((uint32)TargetInit);
VICInit();
Timer0Init();
OS_EXIT_CRITICAL();
} |
|