main_entry.c
来自「lwip在ucos上的移植源码」· C语言 代码 · 共 77 行
C
77 行
/* * hello.c * this file implement start_kernel and irqhandler * for Atmel AT91 operating system * * Bugs report: li ming ( lmcs00@mails.tsinghua.edu.cn ) * Last modified: 2003-02-02 * */ #include "skyeye_stdio.h"#include "includes.h"#include "at91_init.h"#include "serialucos.h"#include "shelltask.h"extern void UART0ISR(void);extern void CommRxIntEn(INT8U ch);extern void OSISR(void);void Sleep(INT16U uSec);void Task1(void * pParam);extern void OSTimeTick(void);extern void shelltask(void *pParam);#define N_TASKS 3 // Number of tasks#define TASK_STK_SIZE 1024 // Stack size, in sizeof OS_STK, or int 32bitOS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; // Tasks stackschar bufchar; OS_EVENT *sem1;/* start_kernel entry */void start_kernel(void){ int task_1 = 0; int task_2 = 1; /* firstly, we should install irq mode handler, must call do_irq in any user's handler */ install_irqhandler(OSISR); request_irq(5,OSTimeTick); request_irq(2,UART0ISR); OSInit(); OSTaskCreate(Task1, &task_1, &TaskStk[0][TASK_STK_SIZE-1], 0); OSTaskCreate(shelltask, &task_2, &TaskStk[1][TASK_STK_SIZE-1], 1); OSStart();}/* Task1 print_user_input */void Task1(void * pParam){ char err; at91_init(); CommInit(); sem1 = OSSemCreate(0); while(1) { OSSemPend(sem1,0,&err); //sleep ,wait for sem1 skyeye_printf( "Task1 running... Your input char: \"%c\"\n", bufchar ); }}/* call system delay function */void Sleep(INT16U uSec){ OSTimeDly((INT16U) (uSec) * 10);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?