📄 ebos.c
字号:
#include "ebos.h"
#define MAXBUF 256
void dispstr(INT8U x,INT8U y,INT8 *str);
void Signal_Handler(UNSIGNED signals) ;
void VIPTask( void )
{
TaskSleep(20);
}
void fun1(void);
void fun2(void);
//MEMORY_POOL System_Memory;
UNSIGNED VIPTask_Stk[STK_DEFAULT];
UNSIGNED IdleTask_Stk[STK_DEFAULT];//空闲任务自己专用的堆栈
UNSIGNED Stk_fun1[STK_DEFAULT];//两个新任务栈
UNSIGNED Stk_fun2[STK_DEFAULT];//两个新任务栈
jmp_buf jmpb;
void main(void)
{
UNSIGNED *first_available_memory;
setjmp(jmpb); //save envionment for quit
clrscr();
first_available_memory=malloc(35000);
if(!first_available_memory) exit(-1);
MemPoolInit();
KernalMemInit(first_available_memory);
TaskInit();
SemInit();
EventInit();
QueueInit();
Timer_Initialize();
// CreateTask(&IdleTask_ptr,IdleTask,&IdleTask_Stk[STK_DEFAULT],STK_DEFAULT,LOWEST_PRIORITY,-1);
//AllocMem(&System_Memory, &pointer1, 500, NO_SUSPEND);
//CreateTask(IdleTask,STK_DEFAULT,LOWEST_PRIORITY);
CreateTask(VIPTask,STK_DEFAULT,1);
CreateTask(fun1,STK_DEFAULT,3);
Schedule();
}
//在本例中fun1在VIPTask运行后运行,等一秒,记下VIPTask更新后的CPUSpeed,显示
//等三秒,创建fun2,然后两个用户任务一起运行
long CPUSpeedMax;
void fun1(void)
{
}
void fun2( void)
{
INT8 str1[50];
static INT8U a=0;
dispstr(10,8,"Fun2 is Created... ");
for(;;)
{
sprintf(str1,"Fun2 is alive, Run every 0.1 Seconds %u",a++);
dispstr(10,9,str1);
TaskSleep(20);
}
}
void dispstr(INT8U x,INT8U y,INT8 *str)
{
INT8 far *pscr;
INT16U offset;
offset=(INT16U)y*80*2+(INT16U)x*2;
pscr=MK_FP(0xB800,offset); //pointer to video display buffer
while(*str)
{
*pscr++=*str++;
*pscr++=(0x00|0x0C); //back ground color "black",forground for "light red"
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -