在工程中增加執行緒檔案
完整**
注意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 執行緒...