資料介紹
描述
我是 Pi Pico 的初學者,但第一眼我就明白,與 Arduino 和 ESP16 系列相比,處理速度加上 2 個內核的存在可以提供有趣的潛力。
但是,為了能夠通過傳輸各自處理過程中產生的信息,將不同的任務委托給兩個核心,就必須有一個消息交換和同步系統(tǒng)。
另一方面,我非常了解 Arduino IDE 和 C/C++,但我不具備其他環(huán)境和語言的技能,不幸的是在網(wǎng)上我很難找到有關在 Aduino 環(huán)境中使用 Pi Pico 的有用信息。
也許最有趣的文檔是https://arduino-pico.readthedocs.io/en/latest/multicore.html ,其中“多核處理”一章描述了如何通過使用信號量和FIFO 隊列但限制是任何信息大小都減少到單個 uint32_t 變量。
因此,出于這個原因,我開始考慮一種不同的解決方案,其中交換數(shù)據(jù)緩沖區(qū)的大小可能僅受可用內存的限制。
這個作品的概念
正如https://en.wikipedia.org/wiki/Semaphore_(programming) 中所定義的,信號量是“一種變量或抽象數(shù)據(jù)類型,用于控制多個線程對公共資源的訪問”。
該庫包含 2 個信號量(集成到庫本身),通過指示 2 個數(shù)據(jù)緩沖區(qū)的狀態(tài)來允許在 2 個內核之間協(xié)調信息交換。重要的是要注意2 個緩沖區(qū)的定義留給用戶,用戶可以根據(jù)自己的喜好在結構和大小方面創(chuàng)建它們。
此外,每個數(shù)據(jù)緩沖區(qū)(盡管它是共享資源)都是“單向的” ,這意味著它將由一個內核寫入并由另一個內核使用庫函數(shù)讀取以協(xié)調執(zhí)行任務。
典型的場景可能是數(shù)據(jù)記錄器,其中 core0 向 core1 發(fā)送使用外部傳感器采樣某些數(shù)據(jù)的請求,并且 core1 在生成這些數(shù)據(jù)后返回這些數(shù)據(jù)。在此示例中,從 core0 到 core1 的通信緩沖區(qū)可以限制為幾個字節(jié),而發(fā)送回 core0 的數(shù)據(jù)可能具有更大的大小和不同的結構。
圖書館的使用方法
首先將頭文件包含到您的草圖中并創(chuàng)建一個 istance:
#include "PicoSem.h"
#define PICO_EMPTY true
PicoSem Sem(PICO_EMPTY,PICO_EMPTY);
然后您可以使用以下調用記住有效值為0 和 1:core
void setDataEmptyFor(uint8_t core);
調用表示數(shù)據(jù)緩沖區(qū)為core
空,因此已準備好接受新數(shù)據(jù)集。
bool canISendTo(uint8_t core);
true
如果我可以發(fā)送一個新的數(shù)據(jù)集到core
void setDataReadyFor(uint8_t core);
打電話說我剛寫了一個新的數(shù)據(jù)集core
void setDataReadBy(uint8_t core);
打電話說我剛剛閱讀了最后一個數(shù)據(jù)集。
bool anyDataFor(uint8_t core);
true
如果有新的數(shù)據(jù)集準備好core
- Arduino上的多任務處理
- stm32基于FreeRTOS的多任務程序
- 一種實時嵌入式多任務微內核的分析與改進
- 基于特征和實例遷移的加權多任務聚類算法 3次下載
- 基于層次注意力機制的多任務疾病進展模型 7次下載
- 一種基于多任務聯(lián)合訓練的閱讀理解模型 10次下載
- EDA多任務流調度算法實驗設計 5次下載
- 如何使用51單片機進行多任務機制及應用
- 基于E-CARGO的多任務分配管理 11次下載
- 基于Protothread的實時多任務系統(tǒng)設計 9次下載
- 基于DSP的實時多任務調度內核設計 7次下載
- MapReduce框架下的Skyline結果優(yōu)化算法_馬學森 0次下載
- 基于消息驅動的多任務操作機制 0次下載
- 基于VxWorks的實時多任務軟件設計
- 基于任務鏈的實時多任務軟件可靠性建模
- 使用Raspberry Pi Pico W和MicroPython開發(fā)物聯(lián)網(wǎng)應用 1673次閱讀
- 基于多任務預訓練模塊化提示 582次閱讀
- 簡化網(wǎng)絡自動化任務編排框架Nornir的用法 1933次閱讀
- 使用platformio平臺和Arduino框架開發(fā)STM32G0 3012次閱讀
- 樹莓派之路:Arduino和Raspberry-Pi 1815次閱讀
- 基于M16C62單片機實現(xiàn)實時多任務系統(tǒng)的設計方案 982次閱讀
- 基于時間觸發(fā)多任務調度器的嵌入式系統(tǒng)設計與應用 1958次閱讀
- 基于多任務信息流的CAN總線驅動設計 1064次閱讀
- 單片機多任務處理方案 9315次閱讀
- 遷移學習、多任務學習領域的進展 3860次閱讀
- ABB機器人怎樣多任務?ABB機器人多任務使用方法步驟詳解 3.1w次閱讀
- NLP多任務學習案例分享:一種層次增長的神經網(wǎng)絡結構 4325次閱讀
- 基于ARM9和μC/OSII高速實時多任務數(shù)據(jù)采集的智能化設計 719次閱讀
- uC/OS-II應用的介紹和多任務實現(xiàn)機制分析 2303次閱讀
- 基于高檔數(shù)控系統(tǒng)的實時多任務實現(xiàn) 1294次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 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開發(fā)指南
- 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數(shù)字電路基礎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次下載 | 免費
評論
查看更多