This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can a member variable be declared const in a class without initialization?

Note: This was originally posted on 5th January 2010 at http://forums.arm.com

I am trying to define a class providing an interface to hardware registers. Some of the registers are read-only. I would like to declare these registers const so they cannot be written, but the compiler is insisting I initialize them. But by initializing them, it is guranteed they will be written.

Does anyone have a solution to this dilemma?

Thanks.

Sincerely,
Steve.
Parents
  • Note: This was originally posted on 6th January 2010 at http://forums.arm.com

    IMHO, using pragmas and modifying scatter file is overkill for this.
    But if you desperately have to do it this way, just initialize the const variables.
    These const variables will be put in place long before you powerup that hardware.

    I dont know your particular hardware but there should be no problem. Even if the
    hardware block is running, writing to a read-only hardware register should not matter.
    That particular hardware should simply ignore that write request, and that is all...


    Thanks for your response.  Wouldn't there be benefit in having the linker know about the register space within the memory map?  Similar to using 'const' to catch unwanted register writes to a read only register at compile time, this would allow the linkage to catch infringements on the memory mapped registers.
Reply
  • Note: This was originally posted on 6th January 2010 at http://forums.arm.com

    IMHO, using pragmas and modifying scatter file is overkill for this.
    But if you desperately have to do it this way, just initialize the const variables.
    These const variables will be put in place long before you powerup that hardware.

    I dont know your particular hardware but there should be no problem. Even if the
    hardware block is running, writing to a read-only hardware register should not matter.
    That particular hardware should simply ignore that write request, and that is all...


    Thanks for your response.  Wouldn't there be benefit in having the linker know about the register space within the memory map?  Similar to using 'const' to catch unwanted register writes to a read only register at compile time, this would allow the linkage to catch infringements on the memory mapped registers.
Children
No data