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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RTX5 | 线程管理01 - 创建线程(静态堆栈方式)

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RTX5 | 线程管理01 - 创建线程(静态堆栈方式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、前言
  • 二、代碼
    • 2.1、main.h
    • 2.1、main.c
  • 三、DEBUG
  • 四、細節補充
    • 4.1、使用靜態堆棧方式創建的線程只占用一點點RTX5上的內存
    • 4.2、通過RTX RTOS窗口,可以觀察線程的細節。
    • 4.3、不建議將控制塊定義為全局變量,應該由RTX動態分配。

一、前言

RTX5與其他RTOS一樣,創建線程的方式分別靜態堆棧與動態堆棧兩種。
今天先學習使用靜態堆棧方式創建RTX5線程,分別是LED線程與Start線程。LED線程用于翻轉兩個LED,Start線程用于創建其他線程,并printf一些信息出來。

靜態堆棧方式創建線程,線程的內存由用戶自己分配,但RTX5也要繼續為線程分配80bytes的內存。如果喜歡用靜態堆棧方式創建線程的話,可以將RTX5的Global Dynamic Memory size設置小一些,因為Global Dynamic Memory是用于動態堆棧方式,且RTX5默認將它設置32K啊。所以,如果只用靜態堆棧方式創建線程的話,必須將Global Dynamic Memory設小一些,將內存預留出來。

一定要多看官方手冊。官方手冊上對應的內容:

二、代碼

2.1、main.h

可以不包含 “rtx_os.h”,因為不需要使用控制塊方式創建線程。

2.1、main.c


至于,堆棧的類型為什么是uint64_t,官方有說明:



最后,編譯程序。

三、DEBUG

從Event Recorder的Debug Viewer看到Start線程正在運行。觀察板子,兩個LED也在閃爍。

四、細節補充

4.1、使用靜態堆棧方式創建的線程只占用一點點RTX5上的內存

靜態堆棧方式創建線程,相當于用戶自己為線程分配內存。雖然說靜態堆棧方式創建線程時,線程的內存由用戶自己分配,但是并不代表完全不需要RTX5為線程繼續分配內存。經過使用Event Recorder調試發現,靜態堆棧方式創建線程,RTX5也需要繼續為此線程分配80bytes內存。

4.2、通過RTX RTOS窗口,可以觀察線程的細節。

4.3、不建議將控制塊定義為全局變量,應該由RTX動態分配。

osThreadAttr_t結構體的成員cb_mem使用默認NULL,cb_size使用默認0。它們都使用默認,RTX5負責管理控制塊。

cb_mem與cb_size不使用默認值時,將無法在RTX RTOS上查看到線程的細節

總結

以上是生活随笔為你收集整理的RTX5 | 线程管理01 - 创建线程(静态堆栈方式)的全部內容,希望文章能夠幫你解決所遇到的問題。

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