Conventionally, addresses of peripheral registers are hard-coded
in project source or header files. You can also declare structures
that map on to peripheral registers, and place these structures
in the description file.

For example, a target might have a timer peripheral with two
memory mapped 32-bit registers. Example 2.13 shows a C structure that maps to these
registers.

To place this structure at a specific address in the memory
map, create a new execution region to hold the structure.

The description file shown in Example 2.14 locates the timer_regs structure
at 0x40000000.

It is important that the contents of these registers are not
initialized to zero during application startup, because this is
likely to change the state of your system. Marking an execution
region with the UNINIT attribute prevents ZI
data in that region from being zero initialized.