我想知道是否有可能使用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)却无法工作。
有任何方法,我可以运行某种行动在PC上使用微微usb输出?
此外,还有一个名为皮科达基的项目,它允许pico在系统上运行命令,但不幸的是,它已经用python编写了,我正在寻找c代码。
发布于 2021-08-27 13:01:11
要在嵌入式系统中以C语言运行system()函数调用,首先需要了解以下几点:
system()使用作为参数传递的字符串调用用户shell。你在运行操作系统吗?shell通常是操作系统组件,在许多嵌入式系统中通常不存在。system()要求/bin/sh正常工作。要运行ls,需要在adition中安装它( ls命令)。您没有说明您在Raspberry pi pico中有什么操作系统,但恐怕它不是linux (或任何unix风格的),所以可能所有这些都是禁止的。
通常,在小型系统中使用类似unix的环境的要求阻碍了在这样的系统中使用高技术的操作系统。Linux需要大量内存(就像正常的raspberry pi中的内存,而不是小型版本中的内存),一个大容量的存储系统(在usb磁盘、闪存卡等中),但通常是几Gb的最小安装)。
在您的例子中,264 to的ram非常小,因为有一个非mmu处理的微处理器,能够寻址虚拟内存空间。另外,2Mb的闪存使您可以编写大型程序,但不需要安装像linux这样的操作系统。
您是否是system()的模拟器,您应该能够运行其他程序,但如何运行?raspberry pi pico只有运行一个程序的空间(写入闪存的程序,而没有其他程序),即使您编写了多任务操作系统的内核,您也缺乏运行文件系统存储程序的空间,因为您通常对安装程序的闪存有有限的访问权限。
https://stackoverflow.com/questions/68941622
复制相似问题