Ethernut 3 Memory Map
The following table shows the default memory layout for Ethernut 3 after runtime initialization.
Address | Function | Details |
---|---|---|
0xFFFFFFFF 0xFFC00000 |
On-chip Peripherals | AT91R40008 Datasheet |
0xFFBFFFFF 0x22100000 |
Abort Exception on Access | |
0x220FFFFF 0x22000000 |
Expansion Port Memory Bus | |
0x21FFFFFF 0x21100000 |
Reserved | Abort Exception on Access |
0x210FFFFF 0x21000000 |
CPLD Registers | Ethernut 3 CPLD |
0x20FFFFFF 0x20100000 |
Reserved | Abort Exception on Access |
0x200FFFFF 0x20000000 |
Ethernet Controller | DM9000/DM9000A Datasheet |
0x1FFFFFFF 0x11000000 |
Reserved | Abort Exception on Access |
0x10FFFFFF 0x10400000 |
Reserved | Mirrored NOR Flash |
0x103FFFFF 0x10000000 |
4 MBytes NOR Flash | AT49BV322A Datasheet |
0x0FFFFFFF 0x00400000 |
Reserved | Abort Exception on Access |
0x003FFFFF 0x00040000 |
Reserved | Mirrored SRAM |
0x0003FFFF 0x00000000 |
256 kBytes On-chip SRAM | AT91R40008 Datasheet |
Remapping
The memory interface has two different configurations.
- Reset state
- Normal state
The reset state is activated by switching on the power supply or by pressing the reset button. In this state the external Flash memory is located at address 0x00000000, where the CPU starts execution.
To switch from reset to normal state, the program that is running in reset state has to setup the memory configuration and issue a remap command. This is typically done by the Nut/OS startup code.
The following table shows the memory map which is configured by the BootMon boot loader.
Device | Chip Select | Before Remap | After Remap |
---|---|---|---|
AT91R40008 internal RAM | 0x00300000 - 0x0033FFFF | 0x00000000 - 0x0003FFFF | |
AT49BV322A external FLASH | NCS0 | 0x00000000 - 0x000FFFFF | 0x10000000 - 0x103FFFFF |
DM9000E Ethernet Controller | NCS1 | N/A | 0x20000000 - 0x200FFFFF |
CPLD Registers | NCS2 | N/A | 0x21000000 - 0x210FFFFF |
Expansion Port Memory Bus | CS4 | N/A | 0x22000000 - 0x220FFFFF |