日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeRTOS系列|FreeRTOS简介

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeRTOS系列|FreeRTOS简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FreeRTOS簡介

1. RTOS簡介

RTOS全稱為 Real Time Operation System,即實時操作系統。RTOS強調的是實時性,又分為硬實時和軟實時。硬實時要求在規定的時間內必須完成操作,不允許超時;而軟實時里對處理過程超時的要求則沒有很嚴格。RTOS的核心就是任務調度

RTOS的多個工作流如下圖示:

RTOS工作原理如下圖示:

RTOS通用組件如下圖示:


RTOS的特點:

  • 更好的事件實時處理機制
  • 更高效利用CPU資源
  • 通用的任務管理框架

2. FreeRTOS介紹

FreeRTOS是RTOS的一種,尺寸非常小,可運行于微控制器上。微控制器是尺寸小,資源受限的處理器,它在單個芯片上包含了處理器本身、用于保存要執行的程序的只讀存儲器(ROM或Flash)、所執行程序需要的隨機存取存儲器(RAM),一般情況下程序直接從只讀存儲器執行

微控制器用于深度嵌入式應用,一般都有非常明確、專門的工作。尺寸的限制以及專用的終端應用等性質,令其很少能使用完整的RTOS實現。因此FreeRTOS僅為內核提供了實時調度功能、任務間通信、時序和同步原語。更準確地說,它是一個實時內核,或實時執行器。命令控制臺界面、網絡棧等額外的功能可作為附加組件

在實際使用FreeRTOS的時候我們需要根據自已的需求來配置FreeRTOS,不同架構的MCU在使用的時候配置也不同,下面介紹FreeRTOS配置文件詳解

  • 內核配置一
參數名稱參數說明
USE_PREEMPTION定義調度器模式
CPU_CLOCK_HZ定義CPU的主頻
TICK_RATE_HZ定義系統時鐘節拍數
MAX_PRIORITIES定義可供用戶使用的最大優先級數
MINIMAL_STACK_SIZE定義空閑任務的棧空間大小
MAX_TASK_NAME_LEN定義任務名最大的字符數
USE_16_BIT_TICKS系統時鐘節拍計數使用TickType_t數據類型定義
IDLE_SHOULD_YIELD用于使能與空閑任務同優先級的任務
  • 內核配置二
參數名稱參數說明
USE_MUTEXES用于使能互斥鎖
USE_RECURSIVE_MUTEXES用于使能遞歸互斥鎖
USE_COUNTING_SEMAPHORES用于使能計數信號量
QUEUE_REGISTRY_SIZE用于設置可以注冊的信號量和消息隊列個數
USE_APPLICATION_TASK_TAG用于使能任務標記
ENABLE_BACKWARD_COMPATIBILITY用于使能新版本對老版本的兼容特性
USE_PORT_OPTIMISED_TASK_SELECTION用于優化優先級列表中藥執行的最高優先級任務的算法
USE_TICKLESS_IDLE用于使能tickless低功耗模式
USE_TASK_NOTIFICATIONS使能任務間直接的消息傳遞,包括信號量、事件標志組和消息郵箱
  • 內存管理
參數名稱參數說明
MEMORY_ALLOCATION定義內存分配模式
TOTAL_HEAP_SIZE定義動態內存分配總長度
HEAP_NUMBER定義動態內存管理方式
  • 任務運行信息獲取配置
參數名稱參數說明
GENERATE_RUN_TIME_STATS用于使能任務運行狀態參數統計
USE_TRACE_FACILITY使能此配置將添加額外的結構體成員和函數
USE_STATS_FORMATTING_FUNCTIONS用戶配置宏定義 configUSE_TRACE_FACILITY 和configUSE_STATS_FORMATTING_FUNCTIONS都為 1 的時候,將使能函數 vTaskList() 和 vTaskGetRunTimeStats(),如果兩者中任何一個為 0,那么這兩個函數都將被禁能
  • 軟件定時器
參數名稱參數說明
USE_TIMERS用于使能軟件定時器
  • 中斷優先級
參數名稱參數說明
LIBRARY_LOWEST_INTERRUPT_PRIORITY用于配置 FreeRTOS 用到的 SysTick 中斷和 PendSV 中斷的優先級
LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY定義了受 FreeRTOS 管理的最高優先級中斷
  • 函數Include配置
參數名稱參數說明
vTaskPrioritySet設置任務優先級
uxTaskPriorityGet獲取任務優先級
vTaskDelete任務刪除
vTaskCleanUpResources清理任務資源
vTaskSuspend任務掛起
vTaskDelayUntil任務絕對延時
vTaskDelay任務延時
xTaskGetSchedulerState獲取調度器狀態
xTaskResumeFromISR在中斷中恢復任務
xQueueGetMutexHolder獲取互斥鎖持有者
pcTaskGetTaskName獲取任務名稱
uxTaskGetStackHighWaterMark獲取任務堆棧信息
xTaskGetCurrentTaskHandle獲取當前任務句柄
eTaskGetState獲取任務狀態
xEventGroupSetBitFromISR在中斷中設置事件標志組
xTimerPendFunctionCall定時器掛起后回調函數
xTaskAbortDelay終止任務延時
xTaskGetHandle獲取任務句柄

總結

以上是生活随笔為你收集整理的FreeRTOS系列|FreeRTOS简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。