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