📄 main.c
字号:
//app.c
#include <includes.h>
#define TASK_STK_SIZE 128
#define TASK_STK_SIZE1 100
OS_STK AppStartTaskStk[TASK_STK_SIZE];
OS_STK AppStartTaskStk1[TASK_STK_SIZE1];
static void AppStartTask(void *p_arg);
static void AppStartTask1(void *p_arg);
/*********************************************************************************************************
*说明:main函数,主函数。
* 参数:无
* 返回值:无
********************************************************************************************************/
void main (void) {
INT8U err;
AT91C_BASE_AIC->AIC_IDCR = 0xFFFFFFFF; // 禁止所有中断
OSInit(); // 初始化 uC/OS-II
OSTaskCreateExt(AppStartTask,
(void *)0,
(OS_STK *)&AppStartTaskStk[TASK_STK_SIZE-1],
5,
5,
(OS_STK *)&AppStartTaskStk[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(AppStartTask1,
(void *)0,
(OS_STK *)&AppStartTaskStk[TASK_STK_SIZE1-1],
6,
6,
(OS_STK *)&AppStartTaskStk1[0],
TASK_STK_SIZE1,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
#if OS_TASK_NAME_SIZE > 11
OSTaskNameSet(5, "Start Task", &err);
OSTaskNameSet(6, "Start Task", &err);
#endif
#if OS_TASK_NAME_SIZE > 14
OSTaskNameSet(OS_IDLE_PRIO, "uC/OS-II Idle", &err);
#endif
#if (OS_TASK_NAME_SIZE > 14) && (OS_TASK_STAT_EN > 0)
OSTaskNameSet(OS_STAT_PRIO, "uC/OS-II Stat", &err);
#endif
OSStart(); // 启动多任务
}
/*********************************************************************************************************
*说明:AppStartTask函数,用于任务。
* 参数:void *p_arg (参数由OSTaskCreate()传递给AppStartTask())
* 返回值:无
********************************************************************************************************/
static void AppStartTask (void *p_arg) {
INT8U i;
(void)p_arg;
CPU_Init(); // 初始化处理器指定块
BSP_Init(); // 初始化 BSP 函数
#if OS_TASK_STAT_EN > 0
OSStatInit(); // 确定CPU性能
#endif
LED_Off(BSP_LED_ALL); // 熄灭所有 LED
while (TRUE) { // 任务体,总是写成无穷循环
for (i = 1; i <= 4; i++) {
LED_On(i);
OSTimeDlyHMSM(0, 0,0 , 40);
LED_Off(i);
}
for (i = 1; i <= 4; i++) {
LED_On(5 - i);
OSTimeDlyHMSM(0, 0, 0, 40);
LED_Off(5 - i);
}
OSTimeDlyHMSM(0, 0, 3, 0);
}
}
static void AppStartTask1 (void *p_arg) {
INT8U i;
(void)p_arg;
CPU_Init(); // 初始化处理器指定块
BSP_Init(); // 初始化 BSP 函数
#if OS_TASK_STAT_EN > 0
OSStatInit(); // 确定CPU性能
#endif
LED_Off(BSP_LED_ALL); // 熄灭所有 LED
while (TRUE) { // 任务体,总是写成无穷循环
for (i = 1; i <= 2; i++) {
LED_On(i);
OSTimeDlyHMSM(0, 0, 0, 40);
LED_Off(i);
}
for (i = 1; i <= 2; i++) {
LED_On(3 - i);
OSTimeDlyHMSM(0, 0,0, 40);
LED_Off(3 - i);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -