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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RTThread(一) - 概念及简介

發布時間:2024/3/26 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RTThread(一) - 概念及简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前置說明
  • RTThread框架
  • 線程管理及調度器
  • 線程間通信管理
  • 時鐘管理
  • 內存分布
  • 內存管理
    • 動態內存堆管理
    • 靜態內存池管理
  • RTT啟動過程
  • 自動初始化機制
  • 內核對象管理架構
  • 內核配置&剪裁

前置說明

一般單片機一般只有一個核心,做多線程實際上是 分時復用 CPU,是并發的。線程通常是指操作系統上的概念,而本文介紹的實時操作系統 RTThread 的線程個人感覺應該稱之為 任務 更合理,但為了和官方說法一致,以下仍叫線程。

主要參考: RTThread 內核基礎

RTThread框架

與其他 RTOS 不同,RTThread 不僅僅是一個實時內核,它在努力構造一套開發生態。

其完整版框架如下:


當然這里我們僅學習 RTThread 內核 部分,同時本文大部分內容點到淺嘗輒止,主要是對RTThread 有一個大體的印象。

線程管理及調度器

RTT 的本質是 基于優先級的全搶占式多線程調度系統,在該實時系統中,線程是最小的調度單位。

即在系統中除了中斷處理函數、調度器上鎖部分的代碼和禁止中斷的代碼是不可搶占的之外,系統的其他部分都是可以搶占的,包括線程調度器自身。


注意:RT-Thread 中,實際上線程并不存在運行狀態,就緒狀態和運行狀態是等同的。

RTT 最多支持 256 個線程優先級,0 優先級代表最高優先級,最低優先級留給空閑線程使用。

同時它也支持創建多個具有相同優先級的線程,相同優先級的線程間采用 時間片輪轉調度算法 進行調度,使每個線程運行相應時間。

線程間通信管理

  • 線程同步
    RT-Thread 采用 信號量互斥量事件集 實現線程間同步。線程通過對信號量、互斥量的獲取與釋放進行同步。
  • 線程通訊
    RT-Thread 支持 郵箱消息隊列 等通信機制。郵箱和消息隊列的發送動作可安全用于中斷服務例程中。通信機制支持線程按優先級等待或按先進先出方式獲取。

時鐘管理

任何操作系統都需要提供一個時鐘節拍,以供系統處理所有和時間有關的事件,如線程的延時、線程的時間片輪轉調度以及定時器超時等。

時鐘節拍是特定的 周期性中斷,這個中斷可以看做是 系統心跳,中斷之間的時間間隔取決于不同的應用,時鐘節拍率越快,系統的額外開銷就越大,從系統啟動開始計數的時鐘節拍數稱為系統時間。

RT-Thread 的時鐘管理以時鐘節拍為基礎,時鐘節拍是 RT-Thread 操作系統中最小的時鐘單位。

RT-Thread 的定時器提供兩類定時器機制:

  • 單次觸發定時器
    這類定時器在啟動后只會觸發一次定時器事件,然后定時器自動停止。
  • 周期觸發定時器
    這類定時器會周期性的觸發定時器事件,直到用戶手動的停止定時器否則將永遠持續執行下去。

通常使用定時器定時 回調函數(即超時函數),完成定時服務。用戶根據自己對定時處理的實時性要求選擇合適類型的定時器。

內存分布

首先看一下 RT-Thread Studio 中 編譯完生成的 elf 文件:

  • text
    代碼段,用來存放 代碼 及一些 只讀常量,一般是只讀的區域。

  • data
    數據段,用來存放全局初始化變量,以及全局或局部 靜態變量

  • bss
    BSS 段,用來存放所有 未初始化的數據,用 0 來初始化。

  • dec
    是 decimal 即十進制的縮寫,是 text,data 和 bss 的算術和。

  • hex
    是 hexadecimal 即十六進制的縮寫。

  • filename
    編譯生成的目標文件名,本例中即為:rtthread.elf 。

一般 MCU 包含的存儲空間有:片內 Flash 與片內 RAM。

RAM 相當于內存,Flash 相當于硬盤

  • FLASH(燒錄程序所占的Flash大小) = text + data

  • RAM (運行時占用的RAM大小) = data + bss

內存管理

動態內存堆管理

動態內存堆是根據我們開發需求分配任意大小的內存塊。既然是堆,那么就要我們自己申請及釋放。當不需要再使用這些內存塊時,需要釋放回堆中供其他應用分配使用,否則會造成 內存泄漏

RTT為我們提供了三種動態內存堆的調度算法:

  • 小內存管理算法
  • slab算法
  • memheap 管理算法

靜態內存池管理

內存堆管理器非常靈活和方便,但是會產生以下兩個問題:

  • 分配效率不高,在每次分配時,都要空閑內存塊查找。
  • 容易產生內存碎片。

為了提高內存分配的效率,并且避免內存碎片,RT-Thread 提供了另外一種內存管理方法:內存池(Memory Pool)。

注意:內存池是 靜態變量,其存放位置為 data 段。

當靜態內存池具有可用內存時,系統對內存塊分配的時間將是恒定的。

當靜態內存池為空時,系統將申請內存塊的線程掛起或阻塞掉 (即線程等待一段時間后仍未獲得內存塊就放棄申請并返回,或者立刻返回。

等待的時間取決于申請內存塊時設置的等待時間參數),當其他線程釋放內存塊到內存池時,如果有掛起的待分配內存塊的線程存在的話,則系統會將這個線程喚醒。

ps:內存池的線程掛起功能非常適合需要通過內存資源進行同步的場景。

RTT啟動過程

自動初始化機制

在函數定義處通過宏定義的方式進行申明,就會在系統啟動過程中被執行。

使用該方法,main() 函數會非常簡潔。

內核對象管理架構

RT-Thread 采用內核對象管理系統來訪問 / 管理所有內核對象,內核對象包含了內核中絕大部分設施,這些內核對象可以是靜態分配的靜態對象,也可以是從系統內存堆中分配的動態對象。

通過這種內核對象的設計方式,RT-Thread 做到了不依賴于具體的內存分配方式,系統的靈活性得到極大的提高。對象容器中包含了每類內核對象的信息,包括對象類型,大小等。對象容器給每類內核對象分配了一個鏈表,所有的內核對象都被鏈接到該鏈表上。

推薦:rt-thread的內核對象管理系統分析

內核配置&剪裁

RT-Thread 的一個重要特性是高度可裁剪性,支持對內核進行精細調整,對組件進行靈活拆卸。

配置主要是通過修改工程目錄下的 rtconfig.h 文件來進行,用戶可以通過打開 / 關閉該文件中的 宏定義 來對代碼進行條件編譯,最終達到系統配置和裁剪的目的。

另外,env - menuconfig 是個好東西。

注意:在實際應用中,系統配置文件 rtconfig.h 是由配置工具自動生成的,無需手動更改。

總結

以上是生活随笔為你收集整理的RTThread(一) - 概念及简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人免费看 | 森泽佳奈作品在线观看 | 丰满人妻一区二区三区免费视频棣 | 中文文字幕文字幕高清 | 精品99999 | 中文在线亚洲 | 自拍偷拍18p | 国产精品久久久久久久久久东京 | 色先锋资源网 | 黄色网址免费 | av小说天堂网 | 2025韩国大尺度电影 | 小早川怜子久久精品中文字幕 | 高潮白浆女日韩av免费看 | 欧美自拍第一页 | 污视频在线免费 | 国产精品日韩一区二区三区 | 成人av片在线观看 | 日韩色在线观看 | 午夜欧美日韩 | 性色av浪潮 | 久久爱伊人 | 开心激情五月网 | 老熟妇仑乱视频一区二区 | 日日嗨av一区二区三区四区 | 狠狠影院 | 欧美成人黄色小说 | 大香蕉视频一区二区 | 亚洲AV无码精品久久一区二区 | 滋润少妇h高h | 韩国av在线| 四季av一区二区三区免费观看 | 91久久国产综合久久91 | av大全免费 | 91亚洲一区 | 国产免费一区二区视频 | 中文字幕乱码无码人妻系列蜜桃 | 欧美久久网| 一级片视频免费看 | 欧美日韩中文在线视频 | 黑人巨大精品欧美黑寡妇 | 91丨九色丨蝌蚪丨对白 | 亚洲男人的天堂网 | 久久人人爽人人爽人人片av高清 | 伊人草草 | 屁股夹体温计调教play | 亚洲巨乳av| 国产伦精品一区二区三区照片 | 国产美女视频免费观看下载软件 | 欧美在线观看视频一区二区 | 欧美午夜大片 | 悟空影视大全免费高清观看在线 | 法国空姐在线观看免费 | 欧洲女女同性videoso | 美女视频在线免费观看 | 成人不卡av | 九九热精品视频在线 | 国产夫妻精品 | 国产精品呻吟 | 国内成人自拍 | 正在播放木下凛凛88av | 久国产精品 | 欧美一区不卡 | 中文字幕日产 | 青青草原av在线 | www.久久 | 337p日本欧洲亚洲大胆精筑 | 网站免费在线观看 | 亚洲激情视频在线 | 亚洲精品性 | ts人妖在线观看 | 无码国模国产在线观看 | 中国亚洲老头同性gay男男… | 中文日韩在线 | 欧美成人免费在线 | 日韩不卡在线 | 在线黄网站| 日本边添边摸边做边爱 | 亚洲超碰在线 | 成人午夜天 | 亚洲av综合一区二区 | 国产尤物视频在线 | 国产女女调教女同 | 男女日批网站 | 中文字幕有码在线播放 | 亚洲国产专区 | 春色影视| 成人精品二区 | 成人gav| 黄视频在线免费 | 欧美猛交xxx | 五月综合在线 | 久久久久久激情 | 亚洲男人的天堂网 | 欧美大片aaa| 欧美性猛交xx乱大交 | 精品一区二区三区久久久 | 啪一啪在线 | 午夜成人影片 |