내가 만든 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);
}
기는 대략 된 만 나다.









