资料介绍
描述
我是 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次下载 | 免费
评论
查看更多