• 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