This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: volatile pointers


>>>>> "Neville" == Neville Mair <nev@snet.net> writes:

    Neville> I tried this #define SIMCR (( volatile unsigned short
    Neville> *)0Xfffa00)

    Neville> This creates a 'volatile pointer' to short.  Everytime
    Neville> the register (SIMCR) is accessed, the pointer is
    Neville> reloaded.

    Neville> What is the syntax to create a pointer to a 'volatile
    Neville> short'.

    Neville> Sorry for the simple question, but I couldn't find an
    Neville> answer anywhere else.

Typically, what you want is a pointer that is a constant, but that
points to some hardware memory mapped I/O device register.  You say it
in C++ like this:

  volatile unsigned short int* const foo = 0xfffa00;

I do not think C has such flexibility in declaring such thins.  I
always prefer to declare a const to a #define.  A good compiler treats
it the same way when optimizing.

-- 
--------  "And there came a writing to him from Elijah"  [2Ch 21:12]  --------
Robert Jay Brown III  rj@eli.wariat.org  http://eli.wariat.org  1 847 705-0424
Elijah Laboratories Inc.;  37 South Greenwood Avenue;  Palatine, IL 60067-6328
-----  M o d e l i n g   t h e   M e t h o d s   o f   t h e   M i n d  ------