📄 main.c
字号:
#include "def.h"
#include "2410lib.h"
#include "bspinit.h"
#include "includes.h"
#include "uhal.h"
#ifdef SEMIHOSTED
#define STACKSIZE (SEMIHOSTED_STACK_NEEDS+64)
#else
#define STACKSIZE 4096
#endif
OS_EVENT *recvSem;//(1)声明事件控制块
unsigned int Stack1[STACKSIZE];
unsigned int Stack2[STACKSIZE];
void user_task(void * pParam);
void lcd_task(void *pParam);
/*void Key_Init()
{
rGPFCON = 0x8;
rGPFUP = 0xFFFFFFF;
}*/
void Main(void)
{
Bsp_Init();
//Key_Init();
InitInfo();
InitTimers();
InitInterrupts();
OSInit();
OSTimeSet(0);
recvSem=OSSemCreate(1);//(2)创建信号量
OSTaskCreate(user_task, (void *)0, (void *)&Stack1[STACKSIZE - 1], 5);
OSTaskCreate(lcd_task, (void *)0, (void *)&Stack2[STACKSIZE - 1], 2);
InstallIrqHandler();
OpenIRQ();
OSStart();
Uart_Printf("never arrive here\n");
}
void user_task(void *i)
{
while(1)
{
if(Uart_GetKey()=='a')//(3)任务1发送信号量
OSSemPost(recvSem);
Uart_Printf("enter user task\n");
OSTimeDly(1*OS_TICKS_PER_SEC);
}
}
void lcd_task(void *i)
{
U8 err;
while(1)
{
OSSemPend(recvSem,0,&err);//(4)任务2收信号量
Uart_Printf("yzx task\n");
OSTimeDly(2*OS_TICKS_PER_SEC);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -