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

📄 main.c

📁 实现了UCOS-II在AT91SAM7S64上的移植,并建立了加法程序验证了移植的成功
💻 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 + -