ARM bare-metal programming in D (cont) - volatile
eles
eles at eles.com
Sat Oct 26 07:48:23 PDT 2013
On Friday, 25 October 2013 at 20:10:13 UTC, Walter Bright wrote:
> On 10/24/2013 4:13 AM, eles wrote:
>> Anyway, poke's and peek's are a bit more cumbersome than
>> volatile variables,
>> since they do not cope so well, for example, with arithmetic
>> expressions.
>
> Why wouldn't they work with arithmetic expressions?
>
> poke(0x888777, peek(0x12345678) + 1);
>
>
>> Anyway, still better than nothing. *If* they would exist.
>
> T peek(T)(T* addr) { return *addr; }
>
> void poke(T)(T* addr, T value) { *addr = value; }
Frankly, if it is not a big deal, why don't you put those in a
std.hardware or std.directaccess module?
If I have to compile those in D outside of main program, why
don't allow me to disable the optimizer *for a part* of my D
program? Or for a variable?
And if I have to compile those in C, should I go entirely with it
and only let the D program to be an "extern int main()"?
OOH you show me it is not a big deal, OTOH you make a big deal
from it refusing every support inside the compiler or the
standard library.
Should I one day define my own "int plus(int a, int b) { return
a+b; }"?
More information about the Digitalmars-d
mailing list