查看: 1153|回复: 1

[分享] 【MCXC444分享】 运行FreeRTOS

[复制链接]
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 1518 天

    连续签到: 6 天

    [LV.Master]伴坛终老

    152

    主题

    3200

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    8784
    最后登录
    2025-9-9
    发表于 2024-12-6 22:34:07 | 显示全部楼层 |阅读模式



    一、下载源码

    FreeRTOS源码
    下载地址:https://github.com/FreeRTOS/Free ... eRTOSv202212.01.zip


    二、添加源码到工程

    2.1、添加FreeRTOS源码到工程
    001.png


    三、程序代码

    3.1、task.c
    1. #include "main.h"

    2. #define START_TASK_PRO                1                               
    3. #define START_STK_SIZE                128
    4. TaskHandle_t StartTask_Handler;

    5. #define TASK1_PRIO      2                  
    6. #define TASK1_STK_SIZE  128                 
    7. static TaskHandle_t            Task1Task_Handler = NULL;  
    8.            
    9. #define TASK2_PRIO      3                  
    10. #define TASK2_STK_SIZE  128                 
    11. static TaskHandle_t            Task2Task_Handler = NULL;  

    12. #define TASK3_PRIO      4                  
    13. #define TASK3_STK_SIZE  128                 
    14. static TaskHandle_t            Task3Task_Handler = NULL;  


    15. void start_task(void *pvParameters);

    16. void task1(void *pvParameters);  
    17. void task2(void *pvParameters);
    18. void task3(void *pvParameters);

    19. void task_create(void)
    20. {
    21.        
    22.         //start_task
    23.         xTaskCreate((TaskFunction_t )start_task,                  
    24.                                                         (const char*    )"start_task",               
    25.                                                         (uint16_t       )START_STK_SIZE,         
    26.                                                         (void*          )NULL,                  
    27.                                                         (UBaseType_t    )START_TASK_PRO,            
    28.                                                         (TaskHandle_t*  )&StartTask_Handler);   

    29.         vTaskStartScheduler();
    30. }

    31. void start_task(void *pvParameters)
    32. {
    33.         taskENTER_CRITICAL();
    34.         //task1
    35.         xTaskCreate((TaskFunction_t )task1,                  
    36.                                                         (const char*    )"task1",               
    37.                                                         (uint16_t       )TASK1_STK_SIZE,         
    38.                                                         (void*          )NULL,                  
    39.                                                         (UBaseType_t    )TASK1_PRIO,            
    40.                                                         (TaskHandle_t*  )&Task1Task_Handler);   
    41.         //task2
    42.         xTaskCreate((TaskFunction_t )task2,                  
    43.                                                         (const char*    )"task2",               
    44.                                                         (uint16_t       )TASK2_STK_SIZE,        
    45.                                                         (void*          )NULL,                  
    46.                                                         (UBaseType_t    )TASK2_PRIO,            
    47.                                                         (TaskHandle_t*  )&Task2Task_Handler);
    48.                                                        
    49.         //task3
    50.         xTaskCreate((TaskFunction_t )task3,                  
    51.                                                         (const char*    )"task3",               
    52.                                                         (uint16_t       )TASK3_STK_SIZE,        
    53.                                                         (void*          )NULL,                  
    54.                                                         (UBaseType_t    )TASK3_PRIO,            
    55.                                                         (TaskHandle_t*  )&Task3Task_Handler);                                                
    56.         taskEXIT_CRITICAL();
    57.         vTaskDelete(StartTask_Handler);                                               
    58. }


    59. //task1
    60. void task1(void *pvParameters)
    61. {
    62.     while (1)
    63.     {
    64.                                 rgbled_red_tog();
    65.         PRINTF("任务1运行 ...\r\n");
    66.         vTaskDelay(100);
    67.     }
    68. }

    69. //task2
    70. void task2(void *pvParameters)
    71. {
    72.     while (1)
    73.     {       
    74.                                 rgbled_green_tog();
    75.         PRINTF("任务2运行 ...\r\n");
    76.         vTaskDelay(200);
    77.     }
    78. }

    79. //task3
    80. void task3(void *pvParameters)
    81. {
    82.     while (1)
    83.     {       
    84.                                 rgbled_blue_tog();
    85.         PRINTF("任务3运行 ...\r\n");
    86.         vTaskDelay(300);
    87.     }
    88. }

    复制代码


    3.2、main.c
    1. #include "main.h"

    2. void init_board(void)
    3. {
    4.         BOARD_InitPins();
    5.         BOARD_BootClockRUN();
    6.         BOARD_InitDebugConsole();
    7.         init_led();
    8. }

    9. int main(void)
    10. {
    11.         uint32_t m_adv=0;
    12.         float vl= 0.0f;
    13.        
    14.         init_board();
    15.        
    16.         task_create();  
    17.         while (1)
    18.         {
    19.         }
    20. }
    复制代码


    四、程序运行


    串口输出运行结果
    002.png

    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10101
    最后登录
    2025-9-4
    发表于 2024-12-7 20:39:08 | 显示全部楼层
    嘿嘿,就喜欢FreeRTOS
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-9 11:59 , Processed in 0.084459 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表