5 releases

0.2.1 Jan 29, 2024
0.2.0 Jan 12, 2024
0.1.2 Dec 24, 2023
0.1.1 Dec 19, 2023
0.1.0 Dec 19, 2023

#13 in #tx


Used in threadx-rs

Custom license

53KB
1.5K SLoC

Rust bindings for ThreadX

This crate provides the Rust bindings for the ThreadX RTOS.

Supported Targets

  1. thumbv6m-none-eabi # Cortex-M0 and Cortex-M0+
  2. thumbv7m-none-eabi # Cortex-M3
  3. thumbv7em-none-eabi # Cortex-M4 and Cortex-M7 (no FPU)
  4. thumbv7em-none-eabihf # Cortex-M4F and Cortex-M7F (with FPU)
  5. thumbv8m.base-none-eabi # Cortex-M23
  6. thumbv8m.main-none-eabi # Cortex-M33 (no FPU)
  7. thumbv8m.main-none-eabihf # Cortex-M33 (with FPU)

Building for one of the above targets will select the right ThreadX build configuration for the target.

Pre-requisites

gcc-arm-none-eabi must be installed on your system.

sudo apt install gcc-arm-none-eabi

This will only give you the ThreadX static library

Your application must include the following files as described in https://learn.microsoft.com/en-us/azure/rtos/threadx/chapter2

  1. xxx_crt0.S
  2. xxx_vectors.S
  3. tx_initialize_low_level.S

I have started working on safe rust bindings for threadx which will do all this for you in pure Rust. This will be available soon. Contact me to collaborate! PRs welcome.

TX USER CONFIGURATION

Set the TX_USER_FILE environment variable to point to the specific configuration for the ThreadX build.

Dependencies

~0–2.1MB
~42K SLoC