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

📄 os_main.c

📁 网络服务器上实现操作系统和嵌入式协议栈的 结合
💻 C
字号:
//-+---+---++-+--+-++-+++--++--+++

#include "std.h"
#include "HW_Periph.h"
#include "HW_func.h"
#include "sysconf.h"
#include "snds.h"

//#include "includes.h"
#include    "os_cpu.h"
#include    "os_cfg.h"
#include    "ucos_ii.h"

#include "OS_Main.h"

#include "LWIP_Main.h"



#define TASK_STK_SIZE	512
//-+---+---++-+--+-++-+++--++--+++

OS_STK	Task1Stk[TASK_STK_SIZE];
OS_STK	Task2Stk[TASK_STK_SIZE];

OS_EVENT	*ConsoleSem;

//-+---+---++-+--+-++-+++--++--+++




void TmVector(void);
void Task1(void * pParam);//该任务表示系统还活着
//-+---+---++-+--+-++-+++--++--+++
void OS(void)
{
TM_PARAM t;

//下面我们配置时钟
t.TIMER_Lisr = TmVector;                                
t.TM_CHANNEL = TIMER_DEV0;                                
t.TM_MODE    = TM0_TOGGLE;                                
t.TM_DATA    = fMCLK/OS_TICKS_PER_SEC;	//5 ms
t.TM_OUT_PORT = 0;  //timer output disabled
TimerSetup(&t);//配置硬件时钟并安装时钟向量
Enable_Int(nGLOBAL_INT);//全局中断打开
	OSInit();
	Print("uC/OS-II v2.51 for S3C4510(ARM7TDMI) Ported by Ding yi <ws_dy@sina.com>\r\n");
	Print("==================uC/OS-II Kernel initialized==================\r\n");
	
ConsoleSem = OSSemCreate(1);

	OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE-1], 3);
	//注意:LWIP启动任务占用优先级4,而LWIP系统使用5-9五个任务容量



		
	OSStart();
}
//-+---+---++-+--+-++-+++--++--+++
void TmVector(void)
{
OSTimeTick();
}
//-+---+---++-+--+-++-+++--++--+++



void Task1(void * pParam)//该任务表示系统还活着
{

//UBYTE	err;
INT32U	CtrSec,temp;	
CtrSec=0;
temp=0;

Timer0Start();

OSTimeDly(2);
OSIdleCtr=0;

OSTimeDly(OS_TICKS_PER_SEC);
temp=OSIdleCtr;
OSIdleCtr=0;
Print("STATICS: %d IdleCount/Second ...\r\n",temp);

	OSTaskCreate(LWIP_main, (void *)0, &Task2Stk[TASK_STK_SIZE-1], 4);
	Print("LWIP Main Created!\r\n");	



	while(1)	
	{
		OSTimeDly(OS_TICKS_PER_SEC/2);
	IOPDATA= IOPDATA&0x80 ? IOPDATA &(~0x80) : IOPDATA |0x80;//LED7

		temp=OSIdleCtr;
		OSIdleCtr=0;
//		OSSemPend(ConsoleSem,0,&err);
//		Print("task1 Time: %d Second ...%d IdleCount/Second \r\n",CtrSec++,temp);
//		OSSemPost(ConsoleSem);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -