📄 main_entry.c
字号:
/* * 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"#define RCR 0xfffd0034//yangye (OSTickISR -> OSISR)extern void UART0ISR(void);extern void CommRxIntEn(INT8U ch);extern void OSISR(void);void Sleep(INT16U uSec);void Task1(void * pParam);void Task2(void * pParam);void Task3(void * pParam);extern void OSTimeTick(void);#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 = 1; int task_2 = 2; int task_3 = 3; /* firstly, we should install irq mode handler, must call do_irq in any user's handler */ install_irqhandler(OSISR); //yangye request_irq(5,OSTimeTick); request_irq(2,UART0ISR); OSInit(); OSTaskCreate(Task1, &task_1, &TaskStk[0][TASK_STK_SIZE-1], 0); OSTaskCreate(Task2, &task_2, &TaskStk[1][TASK_STK_SIZE-1], 1); OSTaskCreate(Task3, &task_3, &TaskStk[2][TASK_STK_SIZE-1], 2); 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 ); }}/* Task2 get_user_input */void Task2(void * pParam){ char err; CommRxIntEn(UART0); while (1) { skyeye_printf( "Task2 running... Please input a char:> \n" ); bufchar = CommGetChar(UART0,0,&err); OSSemPost(sem1); skyeye_printf("once again: \n"); }}void Task3(void *pParam){ while(1) { skyeye_printf(" Task3: now it is my turn ,haha! \n"); skyeye_printf(" Task3: you may input a char to wake up task1 and task2. \n"); Sleep(500); }}/* call system delay function */void Sleep(INT16U uSec){ OSTimeDly((INT16U) (uSec) * 10);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -