RT Thread 執行緒的建立

2021-10-22 09:24:50 字數 1702 閱讀 5959

基本概念

執行緒是實現任務的載體,它是rt-thread中最基本的排程單位,它描述了乙個

任務執行的執行環境,也描述了這個任務所處的優先等級。

rt-thread中,執行緒由三部分組成:執行緒**(入口函式)、執行緒控制塊、執行緒堆疊

1、建立程序

(1)建立靜態執行緒

rt_err_t rt_thread_init(struct rt_thread *thread,                //執行緒控制塊位址

const char *name,                             //執行緒名稱(自定義哦)

void (*entry)(void *parameter),           //執行緒入口**

void *parameter,                              //執行緒**傳參,無參設0

void *stack_start,                            //執行緒棧空間起始位址

rt_uint32_t stack_size,                     //執行緒棧空間大小

rt_uint8_t priority,                          //執行緒優先順序

rt_uint32_t tick);                            //執行緒時間片引數

(2)建立動態執行緒

rt_thread_t rt_thread_create(const char *name,              //執行緒名稱

void (*entry)(void *parameter),

void parameter,

rt_uint32_t stack_size,               //執行緒棧空間大小

rt_uint8_t priority,                  //執行緒優先順序

rt_uint32_t tick);                    //執行緒時間片引數

2、啟動執行緒

rt_err_t rt_thread_startup(rt_thread_t thread);呼叫此函式後建立的執行緒會被加入到執行緒的就緒佇列,執行排程。

3、靜態執行緒 vs 動態執行緒

(1)相關資源分配形式

靜態執行緒需要先編譯出來,動態的不用。

靜態執行緒的執行緒棧和執行緒控制塊以靜態的形式定義出來,而動態的是執行時自動分配的。

(2)執行效率

如果靜態程序的執行緒棧和執行緒控制塊,動態程序的執行緒棧和執行緒控制塊都處於晶元內部的ram時兩者區別不大,若使用外擴ram則動態的執行效率會較低。

RT Thread建立靜態 動態執行緒

rt thread 實時作業系統核心是乙個高效的硬實時核心,它具備非常優異的實時性 穩 定性 可剪裁性,當進行最小配置時,核心體積可以到 3k rom 占用 1k ram 占用。rt thread 中的 執行緒 一般由三部分組成 執行緒 函式 執行緒控制塊 執行緒堆疊。指向執行緒控制塊的指標 sta...

RT Thread建立靜態 動態執行緒

rt thread 實時作業系統核心是乙個高效的硬實時核心,它具備非常優異的實時性 穩 定性 可剪裁性,當進行最小配置時,核心體積可以到 3k rom 占用 1k ram 占用。rt thread 中的 執行緒 一般由三部分組成 執行緒 函式 執行緒控制塊 執行緒堆疊。指向執行緒控制塊的指標 sta...

RT Thread學習記錄2 執行緒的建立

在rt thread中,與小任務對應的程式實體就叫做 執行緒 或任務 rt thread就是乙個能對這些小 執行緒 進行管理和排程的多 執行緒 作業系統。執行緒是實現任務的載體,它是rt thread中最基本的排程單位,它描述了乙個任務執行的執行環境,也描述 了這個任務所處的優先等級。rt thre...