我在smartarm上写了一个简单的实验,主要实现以下功能:ucos只建立一个任务,向PC发送字母w,当pc机连续向arm发送8个字节后,arm中断向pc机发送h 在实验过程中,w字母是收到了,但是不管我连续向arm发送多少数字字母,都没有受到中断,我已经在strtup.s中开了中断 ;设置系统模式堆栈 MSR CPSR_c, #0x5f 程序如下: #include "config.h" #include "stdlib.h"
#define TaskStkLengh 64 //定义用户任务0的堆栈长度 OS_STK TaskStk [TaskStkLengh]; //定义用户任务0的堆栈
void Task0(void *pdata); //Task0 任务0 void VICIn(); /********************************************************************************************************* ** 主程序 ********************************************************************************************************/ int main (void) { VICIn(); OSInit (); OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2); OSStart (); return(0); } /********************************************************************************************************* ** Task0 任务0 ********************************************************************************************************/
void Task0 (void *pdata) { pdata = pdata; TargetInit (); VICIn(); while (1) { U0THR='w'; while((U0LSR&0x40)==0); OSTimeDly(10); } } /********************************************************************************************************* ** VIC初始化 ********************************************************************************************************/ void VICIn(void) { extern void IRQ_UART0(void); VICIntSelect = 0x00000000;//均为向量中断 VICVectCntl0 = 0x26;//UART0分配为向量0号中断 VICVectAddr0 = (int)IRQ_UART0;//UART0中断服务子程序入口 VICIntEnable = 1<<7;//允许UART0中断 U0FCR = 0x81; // 使能FIFO,并设置触发点为8字节 U0IER = 0x01; // 允许RBR中断,即接收中断 } /********************************************************************************************************* ** 中断服务子程序 ********************************************************************************************************/ void __irq IRQ_UART0(void) { if(0x04==(U0IIR & 0x0F)) { U0THR='h'; } VICVectAddr = 0;//中断处理结束 } /********************************************************************************************************* ** End Of File ********************************************************************************************************/
|