D for embedded system

Timo Sintonen t.sintonen at luukku.com
Tue Jan 8 12:13:53 PST 2013


There are hundreds of ARM processors from several vendors from 
megahertz to gigahertz and from kilobytes to gigabytes. When we 
talk about ARMs it should be good to mention what kind of ARM we 
are using.

My interest is stm32f4 but everything I have done should be 
useful in the whole cortex-m series.

A minimum library has been working for a while and I think that D 
really is my choice. There have been a little silence when I have 
investigated linker problems and I am not able to use all my time 
for this anyway. When we now have so many interested people, I 
think I should go on.

My library is done with minimum set of files with minimum changes 
to them. There are about 20 changes required to get it compiled. 
This version can be run with 64 kb rom and 16 kb ram. It would be 
possible to get the library smaller by commenting out all 
unnecessary functions from all files. At this moment I want to 
keep the library as close to the original as possible.

This library does not yet have threads, but I have planned a 
minimun thread library which is somewhere between fiber and 
thread. Garbage collector is the gcstub version, which just calls 
directly malloc and free. The library does not require libc but 
there should be a proper libgcc. (a libgcc for cortex-m3 and -m4 
is not built by default when compiling gcc) The only functions 
needed outside are malloc, free, calloc and realloc and 
__aeabi_read_tp which returns the tls pointer.

Next I think I will make a list of required changes and then I 
will make a simple makefile to compile the library. If anybody is 
interested, please send an email to me and I will send those 
files back to you.



More information about the D.gnu mailing list