lwdr 0.1.0-beta
LightWeight D Runtime targetting ARM Cortex CPU/MCUs
To use this package, run the following command in your project's root directory:
Manual usage
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).
What works?
- Class allocations and deallocations (via
new
anddelete
) - Struct heap allocations and deallocations (via
new
anddelete
) - Invariants
- Asserts
- Contract programming
- Basic RTTI (via
TypeInfo
stubs) - Interfaces
- Static Arrays
What is in progress?
- Exceptions and Throwables (so far are currently working)
What doesn't work?
- Arrays
- Module constructors and destructors
- ModuleInfo
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 pvPortMalloc(...)
.
Credit
Credit to Adam D. Ruppe for his webassembly project that forms the basis of this project.
- Registered by Dylan Graham
- 0.1.0-beta released 3 years ago
- 0dyl/LWDR
- FOSS
- Dependencies:
- none
- Versions:
-
0.4.0-beta.1 2021-Oct-15 0.3.0 2021-Jun-19 0.3.0-beta.3 2021-Jun-19 0.3.0-beta.2 2021-Jun-17 0.3.0-beta.1 2021-Jun-17 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
27 downloads total
-
- Score:
- 1.6
- Short URL:
- lwdr.dub.pm