⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ebos.c

📁 一种操作系统源码核
💻 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 + -