LightWeight D Runtime targetting ARM Cortex CPU/MCUs
To use this package, run the following command in your project's root directory:
Put the following dependency into your project's dependences section:
LWDR - Light Weight D Runtime
What is this?
This is the light weight D runtime - it is a barebones runtime targeting ARM Cortex CPUs. It works by abstracting hooks that the user can connect to their selected backend (be it an RTOS such as FreeRTOS, ChibiOS, etc or a minimalist system).
- Class allocations and deallocations (via
- Struct heap allocations and deallocations (via
- Contract programming
- Basic RTTI (via
- Static Arrays
What is in progress?
- Exceptions and Throwables (so far are currently working)
What doesn't work?
- Module constructors and destructors
Has this been run on real hardware?
Yes, as of currently it has been run on an STM32F407.
What is untested?
- Virtual functions and overrides
- Abstract classes
- Static classes
How to use this?
You have to hook the functions declared in
rtoslink.d by implementing them in your MCU development environment. For example, with FreeRTOS,
rtosbackend_heapalloc points to a wrapper in the C/C++ land that wraps