내가 만든 RTOS는 63 높다.
는 가 높 로 면 다.
는 가 높 로 면 다.
~cpp // Task 0 is Highest Task :: priority 63 void mn_task() { while(1){ // Print Logo char *sen = ":::::::: Little / Simple Real Time Kernel ::::::: \n"; char *sen1 = " LIB_OS Ver 0.27 :: http://www.cse.cau.ac.kr\n"; char *sen2 = "Check Running Task \n"; char *sen3 = "Task Name Priority StackSize Running \n"; LIB_VRAM_STRING(0,0,sen,0x04); LIB_VRAM_STRING(0,1,sen1,0x07); LIB_VRAM_STRING(0,2,sen2,0x07); LIB_VRAM_STRING(0,4,sen3,0x09); // Show the task delay , usage and LIB_TASK_DISPLAY(10); LIB_VRAM_STRING(0,12,"Total Interrupt Count :\n",0x09); LIB_VRAM_NUM(26,12,LIB_INT_COUNT,0x07); LIB_TIME_DLY(63,5); // 딜를 는 부 } }1 다.
~cpp // Task 1 :: priority 60 void task1() { char msg1; msg1 = 'A'; while(1) { // TASK STATE DISPLAY LIB_TASK_DISPLAY(5); // semaphore section LIB_pend_sem(semaphore , 50); LIB_post_sem(semaphore); // send message :: msg1 if ( msg1 == 'Z' ) msg1 = 'A'; else msg1++; LIB_VRAM_CHAR(56,5,msg1,0x16); LIB_post_msg(message,&msg1); LIB_TIME_DLY(60,10); } }
다 메 다.
LIB_create_task (char* string,int,&task_point,task_size) 는
들 만들는 다.
LIB_create_task (char* string,int,&task_point,task_size) 는
들 만들는 다.
~cpp void main() { // clear CRT LIB_VRAM_CLR(); // 면 고 // init Scheduler Queue , TICKS and Parallel Port LIB_Init_Schedu(); // 링 를 기 고 LIB_TIME_RATE(); // 머를 고 LIB_init_prl(0); // 러럴 를 리다. // create The Sample Task 1,2 #if !defined(DEBUG) LIB_create_task("Management\n",63,mn_task,&TaskStack0[256]); // 매 를 만들다. LIB_create_task("task1\n",60,task1,&TaskStack1[256]); // 1 만들다. LIB_create_task("task2\n",59,task2,&TaskStack2[256]); // 2를 만들다. #endif LIB_create_task("StatTask\n",LIB_IDLE_PRIORITY + 1,LIB_TASK_CPU_STAT,&OSStack[256]); // 를 보는 를 만든다. LIB_create_task("IdleTask\n",LIB_IDLE_PRIORITY,idle_task,&TaskStack3[256]); // 때 돌가는 idle를 만든다.
기까는 대 만 나다.
다는 를 2개 만들고 메 를 만드는 다.
OS를 돌리기 ISR 루 다.
다는 를 2개 만들고 메 를 만드는 다.
~cpp // create semaphore and message semaphore = LIB_create_sem(2); message = LIB_create_msg(NULL);렇게 되면 각각 드로 .메가 만들다.
OS를 돌리기 ISR 루 다.
~cpp // init ISR LIB_INIT_ISR(); while(1) {}; LIB_VRAM_STRING(0,0," :: FATAL ERROR :: \n",0x07); }
기는 대략 된 만 나다.