当前位置:   article > 正文

freeRTOS实时系统启动流程和函数详解_free rtos中main函数的代码怎么执行

free rtos中main函数的代码怎么执行

一,freeRTOS系统启动流程

在系统上电的时候第一个执行的是启动文件里面由汇编编写的复位函数Reset_Handler(芯片上电默认进Reset_Handler)。SystemInit初始化时钟及中断向量映射。复位函数的最后会调用 C 库函数__main。__main 函数的主要工做是初始化系统的堆和栈。main函数入口中将硬件初始化,RTOS 系统初始化,最后启动任务调度器。最后调用C中的main函数,从而进入 C语言程序。

  1. int main (void)
  2. {
  3. /* 硬件初始化 */
  4. HardWare_Init(); (1)
  5. /* RTOS 系统初始化 */
  6. RTOS_Init(); (2)
  7. /* 建立任务 1,但任务 1 不会执行,由于调度器尚未开启 */ (3)
  8. RTOS_TaskCreate(Task1);
  9. /* 建立任务 2,但任务 2 不会执行,由于调度器尚未开启 */
  10. RTOS_TaskCreate(Task2);
  11. /* ......继续建立各类任务 */
  12. /* 启动 RTOS,开始调度 */
  13. RTOS_Start(); (4)
  14. }
  15. void Task1( void *arg ) (5)
  16. {
  17. while (1)
  18. {
  19. /* 任务实体,必须有阻塞的状况出现 */
  20. }
  21. }
  22. void Task1( void *arg ) (6)
  23. {
  24. while (1)
  25. {
  26. /* 任务实体,必须有阻塞的状况出现 */
  27. }
  28. }

二,main函数中将硬件和RTOS系统先初始化完成,建立一个启动任务后就启动调度器,然后在启动任务里面建立各类应用任务,当全部任务都建立成功后,启动任务把本身删除。

main主函数举例

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/677287
推荐阅读
相关标签
  

闽ICP备14008679号