I know it looks strange, but, other than the number of bits for each internal address bus, the information was obtained directly off the datasheet.
The data buses 32-bit wide.
The external address bus is 24 bits wide. This will allow you to access up to 16 MB of memory. It also has 8 chip selects.
The internal memory address is as follows. Since this memory is internal, You cannot add to it.
SRAM: 96 KB (two banks: 64KB (16-bit) and 32KB (15 bits)). The number of bits for each is implied, and not directly given by the datasheet. but that is what it takes for each bank.
Flash memory 512K (19 bits). again the number of bits is implied.
in general, the C programming language does not dictate the number of address bits available on any particular chip. and although it can augmented through the I/O port , The amount of physical addressable memory cannot be changed. if you want to argue with someone, argue with the person who wrote the datasheet.
The following is a direct quote from the datasheet.
" 7.3 External Memories
The 144-pin SAM3X and 217-pin SAM3X8H(1) feature one External Memory Bus to offer interface to a wide range
of external memories and to any parallel peripheral.
Note: 1. This device is not commercially available. Mounted only on the SAM3X-EK evaluation kit.
7.3.1 External Memory Bus
Integrates Four External Memory Controllers:
. Static Memory Controller
. NAND Flash Controller
. SLC NAND Flash ECC Controller
. Single Data Rate Synchronous Dynamic Random Access Memory (SDR-SDRAM)
Up to 24-bit Address Bus (up to 16 Mbytes linear per chip select)
Up to 8 chip selects, Configurable Assignment "
Refer to the datasheet for more information on each type controller/memory.