# 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)
3. 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`](https://crates.io/crates/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`](https://crates.io/crates/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`](https://crates.io/crates/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
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT) at your option.
### 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.