#free-rtos #low-level #target #user #api #function #cfgs

freertos-sys2

Low-level bindings to FreeRTOS. User's responsibility to provide the FreeRTOS

3 unstable releases

0.2.1 Jun 1, 2023
0.2.0 Apr 13, 2022
0.1.0 Apr 5, 2022

#4 in #free-rtos

23 downloads per month

Apache-2.0 OR MIT

8KB
80 lines

freertos-sys2

Raw/direct bindings to FreeRTOS functions and types

Principles

  1. Support APIs for directly interacting with FreeRTOS APIs and datastructures
  2. Keep the build fast and robust
  • Right now, this means we don't use bindgen (but bindgen is not totally excluded)
  1. Make sure that check can always pass
  • cargo check is important for developer tooling. Make sure this always can complete check regardless of features selected (unless they are specifically incompatible) and the rust target used
  • Right now, there are no target cfgs or feature cfgs (this can change)

Other freertos bindings that might work for your project

  1. freertos-rust
    • Like freertos-sys2, this assumes that FreeRTOS is built seperately and linked in by some external mechanism
    • Unlike freertos-sys2, this binds all FreeRTOS APIs by using stub functions written in C.
    • Unlike freertos-sys2, this provides higher level APIs directly. Does not expose direct bindings to FreeRTOS APIs
  2. freertos-sys
    • Unlike freertos-sys2, builds FreeRTOS in it's build.rs script
    • Unlike freertos-sys2, does not export any FreeRTOS specific functions, instead exporting cmsis-rtos2
  3. freertos_rs
    • Unlike freertos-sys2, uses shims written in C to interact with FreeRTOS rather than binding the symbols directly
    • Unlike freertos-sys2, does not expose the low level function calls. Only high level abstractions are exposed
    • Like freertos-sys2, assumes that FreeRTOS is built seperately and linked together by some external mechanism.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps