如何使用 raspberry pi pico 执行系统命令

How to execute system commands using raspberry pi pico

我想知道是否可以在计算机上使用 raspberry pi pico 将其插入 USB 时 运行 系统命令?

我试过像普通的 C 程序那样做:

#include "pico/stdlib.h"
#include <stdlib.h>
#include <stdio.h>

int main() {
    printf("Start");
    stdio_init_all();
    char *cmd = "ls";
    system(cmd);
    return 0;

}

虽然printf很好用,但是系统函数(如:readfile)不可用

有什么方法可以 运行 使用 pico usb 输出在 PC 上进行某种操作吗?

此外,还有一个名为 picoducky 的项目允许 pico 在系统上执行 运行 命令,但不幸的是它已经用 python 编写,我正在寻找 c 代码。

为了能够在嵌入式系统中运行 system() C 函数调用,您首先需要了解几件事:

  • system() 使用作为参数传递的字符串调用用户 shell。您 运行 正在安装操作系统吗? shell 通常是一个操作系统组件,它通常不存在于许多嵌入式系统中。
  • system() 需要 /bin/sh 才能正常工作。要 运行 ls,您还需要安装它(ls 命令)。

你没有说你的 Raspberry pi pico 中有什么操作系统,但我担心它不是 linux(或任何 unix 风格)所以可能所有这些都是被禁止的给你。

通常,在小型系统中需要类似 unix 的环境会阻碍在此类系统中使用高科技操作系统。 Linux需要大内存(正常raspberry pi有,小版本没有),大容量存储系统(U盘,闪存卡等,但一般最小安装数 Gb)

在您的情况下,264kb 的 ram 对于非 mmu 处理的微处理器来说非常小,能够寻址虚拟内存 spaces。此外,2Mb 的闪存可以让您编写大型程序,但不能安装像 linux.

这样的操作系统

如果你有 system() 的模拟器,你应该可以 运行 其他程序,但是如何?一个 raspberry pi pico 有 space 到 运行 只有一个程序(你写入闪存的那个,没有别的)即使你写一个多任务操作系统的内核,你也会缺少 space 到 运行 文件系统存储的程序,因为您通常对安装程序的闪存的访问权限有限。

Pico 使用 usb-to-serial 与 Pc 通信,反之亦然。除非 Pc 上有一个服务器可以解释通过串行发送的数据而不是执行 cmd 命令,否则传统的方式是不可能的。但是,您可以让 Pico 模拟 USB HID 设备并发送击键。检查 Tinyusb and this pico-superkey-board 个项目