一文搞懂单片机应用程序架构( 四 )

  • * FunctionName : main()
  • * Description : 主函数
  • * EntryParameter : None
  • * ReturnValue : None
  • **************************************************************************************/
  • int main(void)
  • {
  • OSInit(); // 初始化uCOS-II
  • OSTaskCreate((void (*) (void *)) TaskStart, // 任务指针
  • (void *) 0, // 参数
  • (OS_STK *) &TaskStartStk[TASK_START_STK_SIZE - 1], // 堆栈指针
  • (INT8U ) TASK_START_PRIO); // 任务优先级
  • OSStart(); // 启动多任务环境
  •  
  • return (0);
  • }
  • 复制代码
    1. /**************************************************************************************
    2. * FunctionName : TaskStart()
    3. * Description : 任务创建,只创建任务,不完成其他工作
    4. * EntryParameter : None
    5. * ReturnValue : None
    6. **************************************************************************************/
    7. void TaskStart(void* p_arg)
    8. {
    9. OS_CPU_SysTickInit(); // Initialize the SysTick.
    10. #if (OS_TASK_STAT_EN > 0)
    11. OSStatInit(); // 这东西可以测量CPU使用量
    12. #endif
    13. OSTaskCreate((void (*) (void *)) TaskLed, // 任务1
    14. (void *) 0, // 不带参数
    15. (OS_STK *) &TaskLedStk[TASK_LED_STK_SIZE - 1], // 堆栈指针
    16. (INT8U ) TASK_LED_PRIO); // 优先级
    17. // Here the task of creating your
    18.  
    19. while (1)
    20. {
    21. OSTimeDlyHMSM(0, 0, 0, 100);
    22. }
    23. }
    复制代码
     
    不难看出,时间片轮询法优势还是比较大的,即由顺序执行法的优点,也有操作系统的优点 。结构清晰,简单,非常容易理解 。

    【一文搞懂单片机应用程序架构】


    推荐阅读