This is a quick demo of a technique originally presented here
http://yogiken.files.wordpress.com/2010/02/c-register-access.pdf
with the original, admittedly pouty :), preamble
http://yogiken.wordpress.com/2010/02/10/on-publishing/
The technique, in a nutshell, lets you write high level register access statements with strong safety guarantees without sacrificing low level performance. Find a more complete example for an actual CPU here.
https://github.com/kensmith/cortex-from-scratch
If you need an ARM toolchain, this makefile might do the trick.
https://github.com/kensmith/build-arm-none-eabi-gxx
Here is a quick explanation of what's going on here.
vim:tw=60: