Github
https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FreeRTOS/Class02_SuspendResume
簡(jiǎn)介
任務(wù)掛起與繼續(xù)的作用,用于暫停運(yùn)行某些任務(wù)與繼續(xù)運(yùn)行某些任務(wù)。就像用視頻播放器看電影的播放按鍵與暫停按鍵一樣簡(jiǎn)單。
在STM32CubeMX上配置FreeRTOS非常的簡(jiǎn)單,幾乎不需要做任何操作,只需要勾選
移植FreeRTOS就成功了,關(guān)于在非Cube上的RTOS配置文件內(nèi)的相關(guān)內(nèi)容,也在下方的Configuration欄中給好了
所有的配置都可以在這里完成
任務(wù)創(chuàng)建
有別于在沒(méi)有使用Cube下的創(chuàng)建方式,在Cube中它專門(mén)提供了可視化的創(chuàng)建方式,并且增加了中間文件cmsis_os.c將freertos中提供的方法進(jìn)行了再一次的封裝(猜測(cè)可能是為了支持更多的OS吧)
可視化創(chuàng)建方式
在Tasks and Queues中可以點(diǎn)擊Add按鈕添加新的任務(wù)
1、任務(wù)名字
2、任務(wù)優(yōu)先級(jí)(因?yàn)樵黾恿艘粋€(gè)層級(jí)結(jié)構(gòu),導(dǎo)致不再是以數(shù)字來(lái)決定優(yōu)先級(jí)了)
3、棧大小
4、函數(shù)名(有別于第一條,第一條是字符串格式的,這條是定義代碼中的函數(shù)名字)
5、代碼生成設(shè)置(生成與否?還是生成弱函數(shù)——希望自行編寫(xiě)函數(shù)的選As External,希望自動(dòng)生成的選Default)
6、傳入的數(shù)據(jù)/指針,一般為NULL,有希望傳入的數(shù)據(jù)可以修改
7、創(chuàng)建方式(動(dòng)態(tài)或靜態(tài),一般動(dòng)態(tài),很少使用靜態(tài)方式)
代碼創(chuàng)建方式
osThreadId LED_Blink2Handle;
osThreadDef(LED_Blink2, Blink_PB1, osPriorityNormal, 0, 128);
LED_Blink2Handle = osThreadCreate(osThread(LED_Blink2), NULL);
代碼創(chuàng)建也很簡(jiǎn)單,實(shí)際上osThreadCreate對(duì)xTaskCreate進(jìn)行了封裝,而osThreadDef與osThread都是宏定義,用于描述初始化變量的,通過(guò)預(yù)編譯器巧妙的生成了函數(shù)名(字符串)與相關(guān)初始化變量賦給了函數(shù)osThreadCreate
LED_Blink2:希望生成的中間結(jié)構(gòu)體名稱也會(huì)被預(yù)編譯器生成同名的字符串
Blink_PB1:真實(shí)的函數(shù)名稱
osPriorityNormal:優(yōu)先級(jí)
0:最大實(shí)例化個(gè)數(shù)(估計(jì)是以后會(huì)用到,目前這個(gè)變量還沒(méi)什么作用,默認(rèn)0就好)
128:??臻g
任務(wù)掛起與繼續(xù)
/* USER CODE BEGIN Header_blink01 */
/**
* @brief Function implementing the Blink_PB0 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_blink01 */
void blink01(void const * argument)
{
/* USER CODE BEGIN blink01 */
int i = 0;
/* Infinite loop */
for(;;)
{
if(i == 10)
vTaskSuspend(Blink_PB1Handle);
if(i == 20)
vTaskResume(Blink_PB1Handle);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
osDelay(500);
i++;
}
/* USER CODE END blink01 */
}
/* USER CODE BEGIN Header_blink02 */
/**
* @brief Function implementing the Blink_PB1 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_blink02 */
void blink02(void const * argument)
{
/* USER CODE BEGIN blink02 */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
osDelay(1000);
}
/* USER CODE END blink02 */
}
真的是很簡(jiǎn)單,直接調(diào)用vTaskSuspend用于掛起某個(gè)任務(wù),調(diào)用vTaskResume用于繼續(xù)某個(gè)任務(wù)
上一篇:STM32 RTOS系統(tǒng) 學(xué)習(xí)筆記(一)
下一篇:stm32 FreeRTOS中如何創(chuàng)建任務(wù)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 晶心科技:只需提供兩個(gè)設(shè)計(jì)文件,就能輕松擴(kuò)展RISC-V指令集
- 艾邁斯歐司朗先進(jìn)的高精度溫度傳感器助推動(dòng)物健康管理
- Microchip與臺(tái)達(dá)電子簽署碳化硅解決方案合作協(xié)議,共創(chuàng)電源管理未來(lái)
- 馬斯克被曝將旗下腦機(jī)接口公司 Neuralink 登記為“小微企業(yè)”
- 寒武紀(jì)宣布將募資 39.85 億元加碼 AI 大模型芯片與軟件平臺(tái)
- 如何加快基于RISC-V的SoC項(xiàng)目上市時(shí)間?西門(mén)子EDA給出了解法
- 負(fù)責(zé)任的賦能技術(shù)實(shí)現(xiàn)邊緣AI全面適用
- 半導(dǎo)體創(chuàng)新推動(dòng)能源格局演變的三種方式
- 大模型怎么幫助RISC-V設(shè)計(jì)和驗(yàn)證?Nuclei Model讓芯來(lái)的IP更有競(jìng)爭(zhēng)力
- 合見(jiàn)工軟如何幫助“香山”解決高性能多核RISC-V驗(yàn)證難題?
- EEworld&TI 喊你來(lái)玩BLE+ZigBee+6lowpan!
- 解鎖 TE 掌上信息智庫(kù),獲取一站式資源!
- ADI有獎(jiǎng)下載活動(dòng)之16 太陽(yáng)能光伏逆變器解決方案
- 你評(píng)論,我送禮!《玩轉(zhuǎn)TI MSP430 Launchpad》TI社區(qū)與EEWORLD聯(lián)合首發(fā)!
- 有獎(jiǎng)活動(dòng) | 來(lái) Pl BridgeSwitch™ 技術(shù)中心探秘半橋電機(jī)驅(qū)動(dòng)器新技術(shù)
- 閱讀 TI工業(yè)應(yīng)用方案(電器、電力傳輸)精彩專題,挑戰(zhàn)你的記憶力!好禮相送
- 參加MSP430F5529培訓(xùn),長(zhǎng)知識(shí)、免費(fèi)送、超低團(tuán)、搶樓得!
- 如果人工智能普及,會(huì)造成經(jīng)濟(jì)危機(jī)嗎?
- 軟銀集團(tuán)計(jì)劃通過(guò)軟銀公司IPO獲利 然后投資AI領(lǐng)域
- 一年一度科技盛宴開(kāi)啟在即,RoboMaster機(jī)甲大師總決賽亮點(diǎn)提前看
- 小候鳥(niǎo)與機(jī)器人智能大挑戰(zhàn)
- 智能教育機(jī)器人,還不是真正的人工智能
- 凸版印刷將在華生產(chǎn)最尖端半導(dǎo)體用掩模板
- 展訊RDA正式宣布合并,曾學(xué)忠任CEO
- 85后吳忌寒創(chuàng)立的比特大陸替臺(tái)積電帶來(lái)10萬(wàn)片訂單
- CEVA:掌握市場(chǎng)動(dòng)態(tài) 迎向成功的未來(lái)
- 美銀美林上調(diào)英偉達(dá)目標(biāo)股價(jià) 因看好其游戲圖形芯片業(yè)務(wù)
- 工藝審查難度越來(lái)越大,如何才能快刀斬亂麻?
- ARM里面沒(méi)有EEPROM,掉電以后怕丟失的數(shù)據(jù)存在哪里?
- 請(qǐng)教,同相放大電路中的這個(gè)電阻和電容的作用?
- -------- win ce 模擬問(wèn)題 ------------
- Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)專業(yè)論壇--www.linuxdriver.cn開(kāi)通散分(100)
- 硅片上的藝術(shù)(2)
- wince任務(wù)欄可以做成XP那樣嗎?
- 硬件工程師必讀攻略
- 對(duì)于個(gè)人獲獎(jiǎng)消息的提醒功能建議
- 【LPC8N04測(cè)評(píng)】之OTA UPDATE評(píng)測(cè),失敗了