📄 main.cpp
字号:
/****************************************************************************
【文 件 名 称】main.cpp
【功 能 描 述】三星S3C44B0X板 uC/OS-II 程序代码
【程 序 版 本】1.0
【创建人及创建日期】周登勇//2003-12-19 10:57
****************************************************************************/
#include "UCOS_II.H"
#include "target.h"
#include "TaskMain.h"
CTaskMain* pTask;
extern "C"
{
void Main(void);
}
//***************************************************************************
/* allocate memory for tasks' stacks */
#ifdef SEMIHOSTED
#define STACKSIZE (SEMIHOSTED_STACK_NEEDS+64)
#else
#define TASK_STACK_SIZE ( 8192+64 )
#endif
//***************************************************************************
OS_STK Main_Task_Stack[TASK_STACK_SIZE];
OS_STK Ether_Task_Stack[TASK_STACK_SIZE];
void Main_Task( void *Id ) ;
#define Main_Task_PRIO 1
OS_EVENT *UART0_SEM ; //UART 0信号量
/******************************************************************************
【功能说明】主任务,在本任务中启动系统定时器并创建其他任务
******************************************************************************/
void Main_Task( void *Id )
{
U8 err ;
Id = Id;
ARMStartTimer();
OSStatInit();
pTask = new CTaskMain;
pTask->Init( NULL );
pTask->Create();
pTask->Start();
pTask->Run( (void*)0 );
for( ; ; )
{
// #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
// OS_CPU_SR cpu_sr;
// #endif
OSTimeDly( 32 );
OSSemPend(UART0_SEM, 0, &err) ; //挂起当前任务直至其他任务或中断置起信号量
Uart_Printf( "++++++++++++++++++++++++++++++++++++++" ) ;
Uart_Printf( "OSCPUUsage = %d%% \n", OSCPUUsage ) ;
OSSemPost(UART0_SEM) ; //置起指定的信号量
}
}
/******************************************************************************
【功能说明】系统主函数
******************************************************************************/
void Main(void)
{
//U16 ver ;
rSYSCFG = SYSCFG_8KB ; //使用8K字节的指令缓存
ARMTargetInit(); //目标板初始化
OSInit(); //uCOS-II初始化
OSTimeSet(0);
//创建信号量
UART0_SEM = OSSemCreate( 1 ) ; //UART 0 信号量
//创建主任务
OSTaskCreate( Main_Task, (void *)0, (OS_STK *)&Main_Task_Stack[TASK_STACK_SIZE-1], Main_Task_PRIO ) ;
ARMTargetStart(); //start the ARM target running
OSStart(); //Start uCOS-II
/* never reached */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -