老李的RT THREAD學習05 執行緒

2021-10-19 08:31:25 字數 1888 閱讀 6113

在工程中增加執行緒檔案

完整**

注意2點

用到的函式有2個,分別是「rt_thread_init」「rt_thread_startup」,很顯然第1個是執行緒初始化,第2個是執行緒啟動。

rt_err_t rt_thread_init

(struct rt_thread *thread,

const

char

*name,

void

(*entry)

(void

*parameter)

,void

*parameter,

void

*stack_start,

rt_uint32_t stack_size,

rt_uint8_t priority,

rt_uint32_t tick)

說明如下:

*thread: 執行緒結構體指標,後續對執行緒的操作通過它來進行

*name: 執行緒名,是乙個字串

*parameter: 執行緒的入口引數,沒有的話,就是rt_null

*stack_start:執行緒棧的起始位址,為本執行緒分配記憶體的起始位址

stack_size: 執行緒棧的空間,為本執行緒分配多大的記憶體

priority:執行緒優先順序,數字越小,優先順序越高

tick:執行緒占用的時間長度,單位毫秒

rt_err_t rt_thread_startup

(rt_thread_t thread)

這個簡單,就乙個引數,執行緒結構體

標頭檔案需要指定路徑

//執行緒優先順序

#define thread_stack_size 512

//棧的大小

#define thread_time_slice 5

//時間片的長度,單位是毫秒

#define led0_pin get_pin(a, 7)

align

(rt_align_size)

static rt_uint8_t thread_stack[thread_stack_size]

;static

struct rt_thread thread1;

static

void

thread_led1_flash

(void

*parameter)

//執行緒主體

}void

thread_led1_flash_start

(void

)//啟動執行緒

#endif

1 初始化後一定要啟動執行緒

2 執行緒函式裡面是乙個死迴圈,否則執行緒只執行一次就退出了

Rtthread學習筆記

rt sem init rt sem create rt sem take 等待 訊號量 rt sem release 放出 訊號量 rt sem detach 訊號量脫離2.互斥量 與訊號量不同的是,互斥量只能由持有執行緒釋放,其他執行緒不可釋放 取得互斥量的執行緒與高優先度的優先順序相同 rt ...

RT thread學習筆記之

1 往裸機工程新增 rt thread 原始碼 a 拷貝 rt thread package 到裸機工程根目錄 2 拷貝 rtconfig.h 檔案到 user 資料夾 a 將 rt thread 3.0.3 bsp 資料夾下面的 rtconfig.h 配套檔案拷貝到工程根目錄下面的 user資料夾...

RT Thread核心學習

一 概述 二 執行緒的組成 2.1 執行緒 入口函式 2.2 執行緒控制塊 2.3 執行緒棧 三 執行緒相關的api 3.1 執行緒的建立 3.2 狀態的切換 四 注意事項與補充 4.1 動態建立與靜態建立的優缺點比較?4.2 系統滴答時鐘頻率的選取 4.3 執行緒棧大小分配的小策略 4.4 執行緒...