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

📄 main.cpp

📁 其于ARM的USB操作,控制芯片为CH375实现操作.以及其他功能.包括AC,串口操作.
💻 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 + -