📄 main.c
字号:
#include <stdio.h>
#include <ucos_ii.h>
#include "drv_init.h"
#include "mp3_dbg.h"
#include "snd_rec.h"
#include "tasks.h"
struct user_task user_tasks[] = {
{"monitor", "Monitor task.", 1,
App_TaskMonitor, (void *) 0,
&App_TaskMonitorStk[APP_TASK_MONITOR_STK_SIZE - 1],
APP_TASK_MONITOR_PRIO,
0, App_TaskMonitorStk, APP_TASK_MONITOR_STK_SIZE, &user_tasks[0],
OS_TASK_OPT_STK_CHK,
},
#if KEYS_USE_EINT == 0
{"key_srv", "Key scan task.", 1,
Task_Key_Srv, (void *) 0,
&Sys_TaskKeySrvStk[SYS_TASK_KEY_SRV_STK_SIZE - 1],
SYS_TASK_KEY_SRV_PRIO,
1, Sys_TaskKeySrvStk, SYS_TASK_KEY_SRV_STK_SIZE, 0,
OS_TASK_OPT_STK_CHK,
},
#endif
{"dial_srv", "CDMA or GPRS dial task.", 0,
Dial_Srv, (void *)0,
&Sys_TaskDialSrvStk[SYS_TASK_DIAL_SRV_STK_SIZE - 1],
SYS_TASK_DIAL_SRV_PRIO,
6, Sys_TaskDialSrvStk, SYS_TASK_DIAL_SRV_STK_SIZE, 0,
OS_TASK_OPT_STK_CHK
},
{"led", "User led task.", 1,
App_led, (void *) 0, &App_TaskLedStk[APP_TASK_LED_STK_SIZE - 1],
APP_TASK_LED_PRIO,
2, App_TaskLedStk, APP_TASK_LED_STK_SIZE, 0, OS_TASK_OPT_STK_CHK,
},
{"debug", "Debug only task.", 1,
App_test, (void *) 0,
&App_TaskTestStk[APP_TASK_TEST_STK_SIZE - 1], APP_TASK_TEST_PRIO,
3, App_TaskTestStk, APP_TASK_TEST_STK_SIZE, 0,
OS_TASK_OPT_STK_CHK,
},
{
"wav_play",
"Wave file player task.",
0,
mp3_dbg,
(void *) 0,
&App_TaskMp3Stk[APP_TASK_MP3_STK_SIZE - 1],
APP_TASK_MP3_PRIO,
4,
App_TaskMp3Stk,
APP_TASK_MP3_STK_SIZE,
0,
OS_TASK_OPT_STK_CHK,
},
#if 0
{
"snd_rec",
"Sound recorder task.",
0,
snd_rec,
(void *) 0,
&App_TaskMp3Stk[APP_TASK_MP3_STK_SIZE - 1],
APP_TASK_MP3_PRIO,
5,
App_TaskMp3Stk,
APP_TASK_MP3_STK_SIZE,
0,
OS_TASK_OPT_STK_CHK,
},
#endif
{NULL}
};
int Run_Task(struct user_task *ptask)
{
INT8U err;
#if OS_TASK_CREATE_EXT_EN > 0
err = OSTaskCreateExt(ptask->code, ptask->parg, ptask->pstk, //&Task1Stk[TASK_STK_SIZE - 1],
ptask->prio, ptask->pid, //task id
ptask->pstkb,
ptask->stksize, ptask->pdat, ptask->opt);
#else
err = OSTaskCreate(ptask->code,
ptask->parg, ptask->pstk, ptask->prio);
#endif
#if (OS_TASK_NAME_SIZE >= TASK_NAME_LENTH)
OSTaskNameSet(ptask->prio, (INT8U *) ptask->TaskName, &err);
#endif
if (OS_ERR_NONE == err)
return ptask->prio;
return -1;
}
static void StartFirstTask(void)
{
Run_Task(&user_tasks[0]);
}
int main(void)
{
RCC_Configuration();
NVIC_Configuration();
OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel". */
StartFirstTask();
OSStart();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -