#embedded-devices #dfu #async #ota #no-std

no-std embedded-update

支持多种更新服务的嵌入式设备固件更新

14个版本 (破坏性更新)

0.12.0 2023年10月6日
0.11.0 2023年4月26日
0.10.0 2022年11月28日
0.6.1 2022年6月22日

#1980 in 嵌入式开发

Download history 1/week @ 2024-04-23 69/week @ 2024-07-02

每月 69 次下载
用于 drgdfu

Apache-2.0

44KB
1K SLoC

嵌入式设备固件更新

CI crates.io docs.rs Matrix

embedded-update 包实现了一个用于连接固件更新服务的嵌入式设备固件更新协议,该协议在 no_std(裸机)环境中运行。

待更新的设备和更新服务都是可插拔的,因此该协议可以与任何实现提供的特质的设备和服务一起使用。这意味着您可以直接在嵌入式设备上使用该库,或者在代理多个设备的网关上使用。

该库提供了 InMemorySerialUpdateService 特质的引用实现,以及 SimulatorSerialFirmwareDevice 特质的实现。

当类型和特质用于与设备闪存和网络连接交互更广泛可用时,可以向 embedded-update 添加更新服务和设备实现。

支持的更新服务

  • Serial - 实现了一个适用于设备的串行更新协议,可以通过 UART、USB Serial 等。
  • InMemory - 实现了一个硬编码的更新服务,从内存中提供更新。

有关其他更新服务实现,请参阅 drogue-device

支持的设备

  • Serial - 实现了一个串行更新协议,允许通过 UART、USB Serial 等与实现此协议的设备通信。
  • Simulated - 实现了一个用于测试更新服务的模拟设备。

有关其他设备实现,请参阅 drogue-device

最低支持的 Rust 版本 (MSRV)

当使用 nightly 标志时,embedded-update 需要使用 nightly 的两个功能来编译。

  • async_fn_in_traits
  • impl_trait_projections

依赖

~1–2MB
~42K SLoC