📄 rsos.c
字号:
/*
===============================================================================
| Copyright (C) 2004 RuanHaiShen, All rights reserved.
| SUMMARY:
| r&s demo implementation.
|
| DESCRIPTION:
| See http://www.01s.org for documentation, latest information, license
| and contact details.
| email:ruanhaishen@01s.org
=============================================================================*/
/*===========================================================================*/
#include "inc/kapi.h"
#define STACK_SIZE 512
unsigned char stacks[3][STACK_SIZE];
void test_entry(arg_t arg);
void test_welcome(arg_t arg);
void main()
{
hardware_init();
system_init();
task_create(0, test_welcome, 0, "Welcome", &stacks[0][STACK_SIZE-1], STACK_SIZE, 0);
task_create(1, test_entry, (arg_t)1, "TaskR", &stacks[1][STACK_SIZE-1], STACK_SIZE, 0);
task_create(2, test_entry, (arg_t)2, "TaskS", &stacks[2][STACK_SIZE-1], STACK_SIZE, 0);
system_start();
}
void test_entry(arg_t arg)
{
int i;
int me;
task_sleep(200); /*wait welcome completed */
me = (int)arg;
for (;;) {
switch (me) {
case 1:
printk("R: She is quite a beauty!\n");
task_sleep(100);
printk("halting");
for(i = 0; i < 40; i++){
printk(".");
task_sleep(5);
}
halt(); /*shut down*/
break;
case 2:
task_sleep(50);
printk("S: Yes, she is an angel.\n");
task_delete(SELF_PRIO);
break;
}
}
}
void test_welcome(arg_t arg)
{
int i;
arg = arg; /* prevent compiler warning */
printk("Initializing");
for(i=0; i<30; i++){
printk(".");
task_sleep(5);
}
printk("done!\n");
task_sleep(20);
printk("R&S Real-Time Kernel V%d.%2.2d\n\n", system_version()/100, system_version()%100);
}
/*===========================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -