On Saturday, 25 April 2015 at 11:50:19 UTC, Martin Nowak wrote:
On Saturday, 25 April 2015 at 07:31:45 UTC, Jens Bauer wrote:
Static constructors are possible if you strip down ModuleInfo (requires compiler hacking). You should care about that stuff last. It's way more important to make things work without dynamic memory allocation first.

I agree and thanks for reminding me; I don't want to lose my focus. ;)

That means 'new' and 'delete' / 'malloc' and 'free' must be able to handle multiple RAM locations (because there's also external SRAM and external SDRAM).

IIRC then the C/C++ malloc would simply can your sbrk

Heh, I didn't know about sbrk before I almost finished writing mine. This resulted in that mine can be used side-by-side with the standard malloc.
(I named mine m_malloc and m_free).

implementation, so it only supports a single heap, which should be the external if available.

In C++, it's possible to override new and delete on a per-class basis, I'd expect that this is possible in D as well, is this correct ? -If it is, then I think there's no problem, because then the class can handle special cases, when it knows it's working with the DMA.

Allocation could default to SDRAM if SDRAM exists; then external SRAM, then CCMRAM and finally fallback to Local on-chip SRAM. (Note: any external RAM needs to be initialized by the microcontroller's firmware, before the external RAM can be used, I do not know if that could be a problem with the linker-generated static constructors).

Reply via email to