ARM bare-metal programming in D (cont) - volatile
eles
eles at eles.com
Thu Oct 24 04:13:19 PDT 2013
On Thursday, 24 October 2013 at 05:37:49 UTC, Walter Bright wrote:
> On 10/23/2013 5:43 PM, Mike wrote:
> volatile was never a reliable method for dealing with memory
> mapped I/O. The correct and guaranteed way to make this work is
> to write two "peek" and "poke" functions to read/write a
> particular memory address:
>
> int peek(int* p);
> void poke(int* p, int value);
>
> Implement them in the obvious way, and compile them separately
> so the optimizer will not try to inline/optimize them.
I rised the problem here:
http://forum.dlang.org/thread/selnpobzzvrsuyihnstl@forum.dlang.org
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.
Anyway, still better than nothing. *If* they would exist.
IMHO, the embedded and hardware interfacing should get more
attention.
More information about the Digitalmars-d
mailing list