ARM Cortex-M Microcontroller startup files

Jens Bauer via Digitalmars-d digitalmars-d at puremagic.com
Sat May 2 08:12:54 PDT 2015


On Saturday, 2 May 2015 at 08:46:56 UTC, Timo Sintonen wrote:
> On Saturday, 2 May 2015 at 04:53:51 UTC, Jens Bauer wrote:
>>
> Std.format, as suggested, would be too big. I tis easty to copy 
> the printf formatter from libc sources. Or just write an own. 
> It does not have to support all the features. It is a matter of 
> taste if it is a c like printf function or a formatter class. 
> Or both if we like. Only the used ones are picked from the 
> library.

I like this solution. Very, very few people use %1$08x, but 
instead they add the argument twice, for instance. Also very few 
people set a length on %s.
Most of the time, it's just %s, %d and %x, which is used (where 
%d and %x might have a length like %3d or %08x).

>>> That looks small and tight, but should be written in D :-)
>>
>> It looks small and quite quick, but I think it would choke if 
>> allocating 256 blocks of 1 byte each and then freeing the 
>> first 255 of them. But I absolutely like the simplicity.
>>
> Every solution has its sides. This would perform poorly in a 
> solution that allocates and frees big amounts of small blocks. 
> But it is good when resources are allocated at the beginning 
> and then used trough the whole lifetime of the program.

Yes. I think that if I had both, I would sometimes pick the one 
and sometimes the other, depending on my needs. If instantiating 
classes at startup, it's definitely great for small devices.
I think it's possible to extend it slightly, so when two or three 
neighbouring blocks are free, they can be combined into one free 
block; the remaining of the array just have to be moved towards 
the first entry.


More information about the Digitalmars-d mailing list