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

📄 main.c

📁 44b0+ucos dgfgfjhjkjkjkjjl
💻 C
字号:

#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include "../inc/option.h"
#include "../inc/44b.h"
#include "../inc/44blib.h"
#include "../inc/def.h"
#include "../ucos/includes.h"


#define	N_TASKS			5					// Number of tasks
#define	TASK_STK_SIZE	512				// Stack size, in sizeof OS_STK, or int 32bit
#define printf Uart_Printf
OS_STK	TaskStk1[TASK_STK_SIZE];	// Tasks stacks
OS_STK	TaskStk2[TASK_STK_SIZE];
OS_STK	TaskStk3[TASK_STK_SIZE];

void Task1(void *);
void Task2(void *);
void Task3(void *);


void ARMTargetSysTimeInit(void)
{
  
  
     rINTCON=0x01;	  

	/* All=IRQ mode */
    rINTMOD=0x0;	  

	/* All interrupt is masked. */
    rINTMSK=0x7ffffff/*BIT_GLOBAL*/;	  

	rI_ISPC=0x1ffffff;
		
  /*初始化时钟节拍中断(定时器)*/
    rTCON = 0x0;
    
    rTCFG0 = 0x00000004;
 
    rTCFG1 = 0x00000003;
    
    rTCNTB0 = 1000; 
   
    rTCMPB0=0X0;

    rTCON = 0x2;
   
    rTCON = 0x9;
    
   /*使能全局中断位,定时器0中断*/
   

}



void ARMTargetInit(void)
{
     rSYSCFG=SYSCFG_8KB; 
     rNCACHBE0=((unsigned int)(Non_Cache_End>>12)<<16)|(Non_Cache_Start>>12);
     Port_Init();		//IO端口功能、方向设定
     ChangePllValue(52,2,1);	//修改系统主频为8倍频
     Uart_Init(0,115200);//异步串行口初始化,设置波特率为115200	
     ARMDisableInt();
     ARMTargetSysTimeInit();
     pISR_TIMER0=(unsigned)__Tick;
     ARMEnableInt();	
}


void  ARMTargetStart(void)
{
	
   rINTCON=0x5;

   rINTMSK = ~(BIT_GLOBAL|BIT_TIMER0);
	// Start system timer & enable the interrupt. //
	
}





/****************************************************************************
【功能说明】系统主函数
****************************************************************************/
int Main(void)
{	
       
    ARMTargetInit();
	Uart_Printf("*************************************************\n");
	Uart_Printf("欢迎使用S3C44B0X开发板      \n");
	Uart_Printf("(提示:ucos");
	Uart_Printf("**************************************************\n");
	Uart_Printf("\n");
    OSInit();
	OSTaskCreate(Task1, (void *)0, &TaskStk1[TASK_STK_SIZE-1], 0);
	OSTaskCreate(Task2, (void *)0, &TaskStk2[TASK_STK_SIZE-1], 1);
	OSTaskCreate(Task3, (void *)0, &TaskStk3[TASK_STK_SIZE-1], 2);
	

	ARMTargetStart();
	Uart_Printf("OKOK");
	OSStart();
	return 0;
}

void Task3(void * pdate)  
{     
        
        pdate=pdate;
        
   	Uart_Printf(" @@@ Task1 will starts time ticker !\n");
	
	for(;;)	
	{
		printf( "@@@     Q__Q    \n" );
		printf( "@@@    /____\\   \n" );
		printf( "@@@    \\____/   \n" );
		printf( "@@@     /\\/\\    \n" );
		printf( "@@@  __(\\\\//)__ \n" );
		printf( "@@@  >__/w w\\__< \n" );
		
        OSTimeDlyHMSM(0,0,10,0);
		
	}

}

void Task2(void * pdate)
{      //  U8 time=0;
        pdate=pdate;
	for(;;)	
	{
		printf( "+++  task 2 running ... \n" );
		printf( "+++  ╭︿︿︿╮ \n" );
		printf( "+++ {/ o o \\} \n" );
		printf( "+++  ( (oo) ) \n" );
		printf( "+++  go to sleep 5 time-ticks\n" );
		OSTimeDlyHMSM(0,0,10,300);
	}
}

void Task1(void * pdate)
{    
        pdate=pdate;
	for(;;)	
	{
	Uart_Printf("*************************************************\n");
	Uart_Printf("你现在使用的是S3C44B0X开发板      \n");
	Uart_Printf("(提示: 使用的是ucos操作系统!\n");
	Uart_Printf("**************************************************\n");
	Uart_Printf("\n");
	OSTimeDlyHMSM(0,0,10,300);
	}
}

⌨️ 快捷键说明

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