資料介紹
描述
我是 Pi Pico 的初學者,但第一眼我就明白,與 Arduino 和 ESP16 系列相比,處理速度加上 2 個內核的存在可以提供有趣的潛力。
但是,為了能夠通過傳輸各自處理過程中產生的信息,將不同的任務委托給兩個核心,就必須有一個消息交換和同步系統。
另一方面,我非常了解 Arduino IDE 和 C/C++,但我不具備其他環境和語言的技能,不幸的是在網上我很難找到有關在 Aduino 環境中使用 Pi Pico 的有用信息。
也許最有趣的文檔是https://arduino-pico.readthedocs.io/en/latest/multicore.html ,其中“多核處理”一章描述了如何通過使用信號量和FIFO 隊列但限制是任何信息大小都減少到單個 uint32_t 變量。
因此,出于這個原因,我開始考慮一種不同的解決方案,其中交換數據緩沖區的大小可能僅受可用內存的限制。
這個作品的概念
正如https://en.wikipedia.org/wiki/Semaphore_(programming) 中所定義的,信號量是“一種變量或抽象數據類型,用于控制多個線程對公共資源的訪問”。
該庫包含 2 個信號量(集成到庫本身),通過指示 2 個數據緩沖區的狀態來允許在 2 個內核之間協調信息交換。重要的是要注意2 個緩沖區的定義留給用戶,用戶可以根據自己的喜好在結構和大小方面創建它們。
此外,每個數據緩沖區(盡管它是共享資源)都是“單向的” ,這意味著它將由一個內核寫入并由另一個內核使用庫函數讀取以協調執行任務。
典型的場景可能是數據記錄器,其中 core0 向 core1 發送使用外部傳感器采樣某些數據的請求,并且 core1 在生成這些數據后返回這些數據。在此示例中,從 core0 到 core1 的通信緩沖區可以限制為幾個字節,而發送回 core0 的數據可能具有更大的大小和不同的結構。
圖書館的使用方法
首先將頭文件包含到您的草圖中并創建一個 istance:
#include "PicoSem.h"
#define PICO_EMPTY true
PicoSem Sem(PICO_EMPTY,PICO_EMPTY);
然后您可以使用以下調用記住有效值為0 和 1:core
void setDataEmptyFor(uint8_t core);
調用表示數據緩沖區為core
空,因此已準備好接受新數據集。
bool canISendTo(uint8_t core);
true
如果我可以發送一個新的數據集到core
void setDataReadyFor(uint8_t core);
打電話說我剛寫了一個新的數據集core
void setDataReadBy(uint8_t core);
打電話說我剛剛閱讀了最后一個數據集。
bool anyDataFor(uint8_t core);
true
如果有新的數據集準備好core
- Arduino上的多任務處理
- stm32基于FreeRTOS的多任務程序
- 一種實時嵌入式多任務微內核的分析與改進
- 基于特征和實例遷移的加權多任務聚類算法 3次下載
- 基于層次注意力機制的多任務疾病進展模型 7次下載
- 一種基于多任務聯合訓練的閱讀理解模型 10次下載
- EDA多任務流調度算法實驗設計 5次下載
- 如何使用51單片機進行多任務機制及應用
- 基于E-CARGO的多任務分配管理 11次下載
- 基于Protothread的實時多任務系統設計 9次下載
- 基于DSP的實時多任務調度內核設計 7次下載
- MapReduce框架下的Skyline結果優化算法_馬學森 0次下載
- 基于消息驅動的多任務操作機制 0次下載
- 基于VxWorks的實時多任務軟件設計
- 基于任務鏈的實時多任務軟件可靠性建模
- 使用Raspberry Pi Pico W和MicroPython開發物聯網應用 1673次閱讀
- 基于多任務預訓練模塊化提示 582次閱讀
- 簡化網絡自動化任務編排框架Nornir的用法 1933次閱讀
- 使用platformio平臺和Arduino框架開發STM32G0 3012次閱讀
- 樹莓派之路:Arduino和Raspberry-Pi 1815次閱讀
- 基于M16C62單片機實現實時多任務系統的設計方案 982次閱讀
- 基于時間觸發多任務調度器的嵌入式系統設計與應用 1958次閱讀
- 基于多任務信息流的CAN總線驅動設計 1064次閱讀
- 單片機多任務處理方案 9315次閱讀
- 遷移學習、多任務學習領域的進展 3860次閱讀
- ABB機器人怎樣多任務?ABB機器人多任務使用方法步驟詳解 3.1w次閱讀
- NLP多任務學習案例分享:一種層次增長的神經網絡結構 4325次閱讀
- 基于ARM9和μC/OSII高速實時多任務數據采集的智能化設計 719次閱讀
- uC/OS-II應用的介紹和多任務實現機制分析 2303次閱讀
- 基于高檔數控系統的實時多任務實現 1294次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多