電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PicoSem:Arduino框架下的Raspberry多任務(wù)

PicoSem:Arduino框架下的Raspberry多任務(wù)

2023-06-13 | zip | 0.00 MB | 次下載 | 2積分

資料介紹

描述

我是 Pi Pico 的初學(xué)者,但第一眼我就明白,與 Arduino 和 ESP16 系列相比,處理速度加上 2 個(gè)內(nèi)核的存在可以提供有趣的潛力。

但是,為了能夠通過傳輸各自處理過程中產(chǎn)生的信息,將不同的任務(wù)委托給兩個(gè)核心,就必須有一個(gè)消息交換和同步系統(tǒng)。

另一方面,我非常了解 Arduino IDE 和 C/C++,但我不具備其他環(huán)境和語言的技能,不幸的是在網(wǎng)上我很難找到有關(guān)在 Aduino 環(huán)境中使用 Pi Pico 的有用信息。

也許最有趣的文檔是https://arduino-pico.readthedocs.io/en/latest/multicore.html ,其中“多核處理”一章描述了如何通過使用信號量和FIFO 隊(duì)列但限制是任何信息大小都減少到單個(gè) uint32_t 變量。

因此,出于這個(gè)原因,我開始考慮一種不同的解決方案,其中交換數(shù)據(jù)緩沖區(qū)的大小可能僅受可用內(nèi)存的限制。

這個(gè)作品的概念

正如https://en.wikipedia.org/wiki/Semaphore_(programming) 中所定義的,信號量是“一種變量或抽象數(shù)據(jù)類型,用于控制多個(gè)線程對公共資源的訪問”。

該庫包含 2 個(gè)信號量(集成到庫本身),通過指示 2 個(gè)數(shù)據(jù)緩沖區(qū)的狀態(tài)來允許在 2 個(gè)內(nèi)核之間協(xié)調(diào)信息交換。重要的是要注意2 個(gè)緩沖區(qū)的定義留給用戶,用戶可以根據(jù)自己的喜好在結(jié)構(gòu)和大小方面創(chuàng)建它們。

此外,每個(gè)數(shù)據(jù)緩沖區(qū)(盡管它是共享資源)都是“單向的” ,這意味著它將由一個(gè)內(nèi)核寫入并由另一個(gè)內(nèi)核使用庫函數(shù)讀取以協(xié)調(diào)執(zhí)行任務(wù)。

典型的場景可能是數(shù)據(jù)記錄器,其中 core0 向 core1 發(fā)送使用外部傳感器采樣某些數(shù)據(jù)的請求,并且 core1 在生成這些數(shù)據(jù)后返回這些數(shù)據(jù)。在此示例中,從 core0 到 core1 的通信緩沖區(qū)可以限制為幾個(gè)字節(jié),而發(fā)送回 core0 的數(shù)據(jù)可能具有更大的大小和不同的結(jié)構(gòu)。

圖書館的使用方法

首先將頭文件包含到您的草圖中并創(chuàng)建一個(gè) istance:

#include "PicoSem.h"
#define PICO_EMPTY true
PicoSem Sem(PICO_EMPTY,PICO_EMPTY);

然后您可以使用以下調(diào)用記住有效值為0 和 1:core

void setDataEmptyFor(uint8_t core);

調(diào)用表示數(shù)據(jù)緩沖區(qū)為core空,因此已準(zhǔn)備好接受新數(shù)據(jù)集。

bool canISendTo(uint8_t core);

true如果我可以發(fā)送一個(gè)新的數(shù)據(jù)集到core

void setDataReadyFor(uint8_t core);

打電話說我剛寫了一個(gè)新的數(shù)據(jù)集core

void setDataReadBy(uint8_t core);

打電話說我剛剛閱讀了最后一個(gè)數(shù)據(jù)集。

bool anyDataFor(uint8_t core);

true如果有新的數(shù)據(jù)集準(zhǔn)備好core


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)