我有一 block 带有 ARM 处理器和 micrium 实时操作系统的电路板。我需要从 USB 内存棒读取/写入文件。例如标准函数,重命名文件是下一个 -
int FS_Rename (const char * sExistingName,
const char * sNewName);
我需要将哪个路径写入 sExistingName 以指向我的 USB 内存棒上的文件?
最佳答案
拥有“正确的道路”并不那么简单; RTOS 本身不包括文件系统或 USB 支持,如果您使用 Micrium 的文件系统,您仍然需要 USB 大容量存储设备支持才能访问此类设备。
如果您透露您使用的是什么 ARM 设备(如果是 COTS,甚至是什么板),这将有所帮助; ARM 内核本身不定义任何特定的外设集;这是由在许可下使用 ARM 内核的芯片供应商决定的。
如果 USB Controller 在芯片上,微 Controller 供应商可能会免费提供示例大容量存储设备代码。然而,您需要的 USB 主机或 OTG 堆栈(相对于设备堆栈)更复杂,而且很少免费而且通常很昂贵。
此外,您的微 Controller 将需要一个主机或 OTG Controller ,而不是一个更简单、更常见的设备 Controller 。使用设备 Controller ,您的目标可以 大容量存储设备,但它不能访问。
[编辑]
Micrium 提供 USB host stack与他们的文件系统兼容。如果您正在使用他们的文件系统,那将是阻力最小的路径,但您仍然需要目标上的主机 Controller 硬件。
关于c - 在 uC-OS/II 中从 USB 内存棒读取/写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4398754/