#seeed #embedded-hal #no-std #wio-terminal

no-std seeed-erpc

用于与seeed-studio eRPC Wifi设备交互的驱动程序crate

4个版本

0.1.1 2020年12月31日
0.1.0 2020年12月6日
0.0.2 2020年12月2日
0.0.1 2020年12月2日

嵌入式开发中排名1405

Download history 10/week @ 2024-03-14 8/week @ 2024-03-21 26/week @ 2024-03-28 25/week @ 2024-04-04 29/week @ 2024-04-11 33/week @ 2024-04-18 43/week @ 2024-04-25 48/week @ 2024-05-02 16/week @ 2024-05-09 31/week @ 2024-05-16 48/week @ 2024-05-23 33/week @ 2024-05-30 35/week @ 2024-06-06 11/week @ 2024-06-13 13/week @ 2024-06-20 4/week @ 2024-06-27

每月下载量78
用于wio_terminal

MIT/Apache

36KB
913

seeed-erpc-rs

Crates.io usbd-hid

Seeed Studio的eRPC协议的嵌入式/no-std实现,用于与他们的RTL8720固件通信。

最值得注意的是,这是他们Wio Terminal产品中wifi芯片的主要固件。

工作进行中 - 大多数RPC尚未实现。

用法

请参阅Wio终端 BSP实现,了解如何使用此工具的示例。

总结如下

  1. 通过将由RPC::header(sequence_number)生成的字节与由RPC::args(&mut buff)扩展的字节组合来生成请求字节。
  2. 发送FrameHeader::new_from_msg(request_bytes),后跟请求字节本身。
  3. 从远程端接收4个字节(帧头),并使用FrameHeader::parse()进行解析。
  4. 通过读取下一个frame_header.msg_length字节来接收响应有效负载。
  5. 通过调用frame_header.check_crc(&payload_bytes)来验证CRC。
  6. 最后,通过调用RPC::parse(&payload_bytes)来获取RPC的结果。

处理'回调'消息

有时远程端会主动发送数据给你,即使你没有请求。这些是“回调”服务的“单向”RPC。处理这些情况有点麻烦。如果你从RPC::parse()返回错误Err::NotOurs,那么你需要重复上面的步骤3-6。

依赖关系

~2.5MB
~44K SLoC