山姆的編程實作分享。。。

Sam Blog, Sam Sharing, Sam Studio

2019年3月5日

[Arduino 學堂 #12] 解放ESP32吧!


影片內容:
1. 告訴你在 Arduino ESP32 Library裡的Setup()以及Loop()函數, 事實上是跑在FreeRTOS的一個Task上
2. 並且, 若你沒有以Multi-Tasking 的概念來撰寫你的程式的話, 代表你只有用到ESP32的單核心而已,以一個雙核心的SoC而言, 真的浪費了!
3. 分享一個 Three Tasks 範例模板給大家
4. 範例下載路徑是 https://mega.nz/#!LrwUjQAK!kP4l7R6DEaZip_y8tq6Q9hjHPH5wXmTjgBxSc_iI-Bc
5. 從範例的UART-Log,可以看到雙核心被充分利用到
6. 另外在Task Create的建立宣告時, 最後一個參數 "xCoreID", 建議填入 "taskNO_AFFINITY", 交由RTOS來做CPU核心的最佳化
7. 當然你也可以直接指定哪個Task跑在哪一個核心上, 如何你認為你的直接指定比FreeRTOS的Task Scheduler做的更好的話

以下為影片部分畫面:



[Arduino 學習筆記 #1] 軟體安裝及開發環境建構
[Arduino 學習筆記 #2] 葵花寶典導讀及IO實作
[Arduino 學習筆記 #3] Arduino 的屠龍刀 & 倚天劍
[Arduino 學習筆記 #4] 一窺 Arduino UNO 電路設計
[Arduino 學習筆記 #5] ADC的使用及電表程式教學
[Arduino 學習筆記 #6] Arduino Inside - Core Start-up & Initialization
[Arduino 學堂 #7] Debounce 及 外部中斷 (上)
[Arduino 學堂 #8] Debounce 及 外部中斷 (下)
[Arduino 學堂 #9] FreeRTOS is ready to Go!
[Arduino 學堂 #10] Fast PWM, Phase correct PWM 分清楚 ?
[Arduino 學堂 #11] ESP32 安裝及WiFi/BT測試
[Arduino 學堂 #12] 解放ESP32吧!
[Arduino 學堂 #13] Android / iOS App 開發平台/方式

熱門文章