embedded ARM support
Timo Sintonen via Digitalmars-d
digitalmars-d at puremagic.com
Mon Nov 9 10:45:03 PST 2015
On Monday, 9 November 2015 at 11:39:16 UTC, Kagamin wrote:
> On Monday, 9 November 2015 at 10:14:17 UTC, Timo Sintonen wrote:
>> There are some register definitions but it is far from
>> complete.
>> Suggestions and contributions are welcome.
>
> https://github.com/JinShil/stm32f42_discovery_demo/tree/master/source/stm32f42 like these ones? Not sure about usage of classes though.
A little overkill to me but may very well be what op wants.
But this is not the whole thing.
I think this is what op and many others are looking for:
- D compiler that is able to compile code for the target processor
- Build system that uses the compiler, linker etc
- Register and bit definitions
- Library code to do basic operations
It is too much work if everybody writes an own version. We should
make one complete set and publish that as the official Cortex-m
toolset. It could be possible to translate existing C headers and
use the C library but it is also lots of work and the library is
quite complex.
What made me to look at D in the first place was the ability to
put register definitions in a struct and then make member or
property functions to do the basic operations. At this level I
think it is important to know the actual hex codes of bitfields
anyway and the bit names are not so important. If this is well
done, there is little need to use individual bits outside of the
struct. For example, to use an uart, usually we need only select
7 or 8 bits and with or without parity. The property functions
can handle this.
If something else is needed, it is possible to access the
registers directly. The bit names can be defined even in another
file and imported when needed. I think enums are suitable for
that.
What I currently want to add to my library is register
definitions and basic use of the most common peripherals of the
most common processor types. A newcomer would then just select
the processor and build the example and send it to the board.
More information about the Digitalmars-d
mailing list