91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
初識Arduino:簡單是簡單了點,還是蠻有意思的
基于ESP32快速搭建藍(lán)牙串口透傳應(yīng)用(Arduino)
基于ESP32搭建的藍(lán)牙串口透傳應(yīng)用代碼分析(Arduino)
基于ESP32搭建GPIO-Interrupt應(yīng)用及分析(Arduino)
基于ESP32例程分析Functional-Interrupt(C++淺析)及GPIO-API詳解
基于ESP32——FreeRTOS初識(Arduino)
作者動態(tài) 更多
基于stm32采用PWM驅(qū)動伺服控制器學(xué)習(xí)筆記
05-13 15:25
基于STM32驅(qū)動TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動8位數(shù)碼管設(shè)計分享
02-24 11:26
RT-Thread驅(qū)動之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

基于ESP32——FreeRTOS初識(Arduino)

       我希望:從今天開始你可以徹底拋離裸奔的方式,不論你在開發(fā)多么復(fù)雜的軟件系統(tǒng)還是一個多么簡單的軟件應(yīng)用,不論你對RTOS有多么的陌生,哪怕只是聽說過從沒用過,不論你寫的代碼有多少坑,勇敢去嘗試,我相信他會給你打開一扇新的大門。從今天開始,我也在告誡自己再也不許回到那個裸奔時代,人可以走彎路,但不能走回頭路。

                                                                                                      ————程序小白,

======================萬事開頭皆例程========================

1. 選擇我們的例程,并且保存到本地。

2.  ESP32是有兩個CPU組成的,你可以選擇任務(wù)運(yùn)行在哪個核心上:

3. 在setup中調(diào)用任務(wù)創(chuàng)建函數(shù)xTaskCreatePinnedToCore,創(chuàng)建任務(wù):

4. 創(chuàng)建任務(wù)以后,任務(wù)會自動開始運(yùn)行,這個時候loop函數(shù)其實沒什么用了:

===============setup——loop機(jī)制的由來===================

你好不好奇setup——loop機(jī)制到底從何而來?

當(dāng)你新建一個工程的時候,你會發(fā)現(xiàn)自動給到我們的就是setup和loop函數(shù):

接下來給出答案:

      其實setup和loop本身就是在任務(wù)中被調(diào)用,而我們在loopTask任務(wù)中創(chuàng)建了新的任務(wù),也就是程序開始執(zhí)行就跳入了一個任務(wù)中,后續(xù)所有的代碼運(yùn)行環(huán)境都是任務(wù)級。在我們的例程中實際的運(yùn)行是在三個任務(wù)之間不斷的切換。

      細(xì)心的道友會發(fā)現(xiàn)在app_main()函數(shù)中調(diào)用的任務(wù)創(chuàng)建函數(shù) 和 我們在示例中調(diào)用的任務(wù)創(chuàng)建函數(shù)是不一樣的:

      xTaskCreateUniversal      和  xTaskCreatePinnedToCore 到底有哪些區(qū)別。

      xTaskCreate 和 xTaskCreatePinnedToCore 到底有哪些區(qū)別。

===============ESP32提供了freertos全套的接口文件==================

================freertos源文件以lib庫的形式提供===================

====================xTaskCreate 原型=======================

==================程序員眼中的xTaskCreate ====================

=================freertos眼中的xTaskCreate =====================

任務(wù)句柄:pvCreatedTask用于獲取任務(wù)狀態(tài)的控制塊,改變?nèi)蝿?wù)控制塊就可以控制任務(wù)的狀態(tài)轉(zhuǎn)換。

任務(wù)優(yōu)先級:uxPriority ,一個應(yīng)用中永遠(yuǎn)都不止只有一個任務(wù)準(zhǔn)備就緒,等待獲取CPU資源,同時就緒的任務(wù),就需要任務(wù)優(yōu)先級進(jìn)行排隊處理。

任務(wù)棧:任務(wù)棧的目的時保存當(dāng)一個任務(wù)由運(yùn)行到中斷狀態(tài)切換時,任務(wù)當(dāng)前執(zhí)行的上下文環(huán)境,等任務(wù)再次就緒后,執(zhí)行任務(wù)棧可以從任務(wù)中斷的位置繼續(xù)執(zhí)行該任務(wù)。

結(jié)論:引入了RTOS以后(其實不論他是不是free),實際可控的空間就越來越廣了,以前除了中斷,你無法打斷一個函數(shù)的執(zhí)行,哪怕應(yīng)用中斷任務(wù)化,你也無法將所有的任務(wù)全部放入中斷,中斷只是一個特殊的任務(wù)級切換應(yīng)用。它有助于你理解任務(wù)的切換,但他并不等同與任務(wù)。

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 4
收藏 2
關(guān)注 151
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 崇文区| 辽中县| 融水| 泌阳县| 黎川县| 林口县| 崇信县| 柳江县| 洪雅县| 龙岩市| 建阳市| 蒙阴县| 从江县| 拉孜县| 霍城县| 麟游县| 从化市| 招远市| 福海县| 池州市| 新余市| 贡嘎县| 浦江县| 红河县| 商都县| 铅山县| 沂南县| 灵武市| 富蕴县| 吉隆县| 绵竹市| 南康市| 英吉沙县| 穆棱市| 思茅市| 凤凰县| 华阴市| 汉中市| 潼南县| 陇西县| 高台县|