任務(wù)的創(chuàng)建
創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元赤峰林西做網(wǎng)站,已為上家服務(wù),為赤峰林西各地企業(yè)和個人服務(wù),聯(lián)系電話:189808205751 任務(wù)需要 RAM 來保存與任務(wù)有關(guān)的狀態(tài)信息(任務(wù)控制塊)
2 需要一定的 RAM 來作為任務(wù)堆棧
xTaskCreate()就會從FreeRTOS的堆中分配,必須提供內(nèi)存管理文件
默認(rèn)使用heap_4.c
3 宏 configSUPPORT_DYNAMIC_ALLOCATION 必須為 1
4 函數(shù) xTaskCreateStatic()創(chuàng)建的話這些 RAM 就需要用戶來提供了
configSUPPORT_STATIC_ALLOCATION設(shè)置為1
5 任務(wù)調(diào)度器啟動前還是啟動后,都可以創(chuàng)建任務(wù)
最常用的一個
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,
const char * const pcName,
const uint16_t usStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
TaskHandle_t * const pxCreatedTask )
pxCreatedTask 任務(wù)句柄,就是任務(wù)的任務(wù)堆棧,其他API可能會用到
返回值 是反映任務(wù)創(chuàng)建成功或出錯碼
pdPASS: 任務(wù)創(chuàng)建成功。
6 不常用
TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode,
const char * const pcName,
const uint32_t ulStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
StackType_t * const puxStackBuffer,
StaticTask_t * const pxTaskBuffer )
pxTaskBuffer: 任務(wù)控制塊。
返回值:NULL : 任務(wù)創(chuàng)建失敗
其他值: 任務(wù)創(chuàng)建成功,返回任務(wù)的任務(wù)句柄。
7 vTaskDelete( TaskHandle_t xTaskToDelete )
xTaskToDelete: 要刪除的任務(wù)的任務(wù)句柄。
可以使用NULL做參數(shù),刪除任務(wù)本身
8 關(guān)鍵實(shí)驗(yàn)(學(xué)習(xí)動態(tài)創(chuàng)建):
任務(wù)創(chuàng)建:
#define START_TASK_PRIO 1 //任務(wù)優(yōu)先級
#define START_STK_SIZE 128 //任務(wù)堆棧大小
TaskHandle_t StartTask_Handler; //任務(wù)句柄
void start_task(void *pvParameters); //任務(wù)函數(shù)
xTaskCreate((TaskFunction_t )start_task, //任務(wù)函數(shù)
(const char* )"start_task", //任務(wù)名稱
(uint16_t )START_STK_SIZE, //任務(wù)堆棧大小
(void* )NULL, //傳遞給任務(wù)函數(shù)的參數(shù)
(UBaseType_t )START_TASK_PRIO, //任務(wù)優(yōu)先級
(TaskHandle_t* )&StartTask_Handler); //任務(wù)句柄
vTaskStartScheduler(); //開啟任務(wù)調(diào)度
開始任務(wù):
taskENTER_CRITICAL(); //進(jìn)入臨界區(qū)
//創(chuàng)建 TASK1 任務(wù)
。。。。。。
//創(chuàng)建 TASK2 任務(wù)
vTaskDelete(StartTask_Handler); //刪除開始任務(wù)
taskEXIT_CRITICAL(); //退出臨界區(qū)
任務(wù)堆棧、任務(wù)句柄、任務(wù)函數(shù)聲明等,這樣方便修改。這些東
西可以放到一個.h 頭文件里面去,
開始任務(wù):創(chuàng)建其他應(yīng)用任務(wù)和信號量、隊(duì)列等內(nèi)核對象
分享標(biāo)題:學(xué)習(xí)筆記-RTOS任務(wù)創(chuàng)建-創(chuàng)新互聯(lián)
文章位置:http://muchs.cn/article10/heogo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、電子商務(wù)、微信小程序、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容