- ARM Cortex M4, with various bus interfaces
- System bus is 32 bits wide, i.e. processor holds 2^32 ~4G different addresses (assuming 4 bytes per address)
0x0000_0000 to 0Xffff_ffff
- Different peripherals are put inside the memory range

- The above means the manufacturer put all registers in this address range; when the processor produces, for example,
0X4002 0000 on system bus, it’s referring to GPIOA registers. The processor wishes to read from this register
- Note that peripherals’ address mappings are highly manufacturer-dependent
- Flash memory base address tends to be the smallest available writable address on the board