📄 os_main.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 + -