AT32 F435简介3/N Memory Mapping
- 1. 源由
- 2. Memory Mapping
- 2.1 AT32 F435
- 2.2 STM32 F405
- 3. 总结
- 4. 参考资料
1. 源由
- 对比STM32 F405进行AT32 F435 MCU的资料研读,期望获取更多差异化信息;
- 配合ChibiOS的porting工作,有理有据;
- 寻找AT32 F435的一些亮点功能和特性;
2. Memory Mapping
2.1 AT32 F435
- 512MB block0 (Code): 0x0000_0000 ~ 0x1FFF_FFFF
0x0000_0000 ~ 0x002E_FFFF (3008K, 0x0040_0000) Aliased to Flash, SRAM or boot memory depending on BOOT pins
0x002E_FFFF ~ 0x003E_FFFF ???
0x003F_0000 ~ 0x07FF_FFFF Reserved
0x0800_0000 ~ 0x081F_FFFF (2MB) Internal Flash memory bank 1
0x0820_0000 ~ 0x082E_FFFF (960K) Internal Flash memory bank 2
0x082F_0000 ~ 0x083E_FFFF ???
0x083F_0000 ~ 0x0FFF_FFFF Reserved
0x1000_0000 ~ 0x1000_FFFF (64K) SRAM1 mapping
0x1001_0000 ~ 0x1FFE_FFFF Reserved
0x1FFF_0000 ~ 0x1FFF_3FFF (16K) Boot memory
0x1FFF_4000 ~ 0x1FFF_BFFF Reserved
0x1FFF_C000 ~ 0x1FFF_CFFF (4K) User system data
0x1FFF_D000 ~ 0x1FFF_FFFF Reserved
- 512MB block1 (SRAM): 0x2000_0000 ~ 0x3FFF_FFFF
0x2000_0000 ~ 0x2000_FFFF (64K) SRAM1
0x2001_0000 ~ 0x2003_7FFF (160K) SRAM2
0x2003_8000 ~ 0x21FF_FFFF Reserved
0x2200_0000 ~ 0x22BF_FFFF (12M) Bit-band alias of SRAM
0x22C0_0000 ~ 0x3FFF_FFFF Reserved
- 512MB block2 (Peripherals): 0x4000_0000 ~ 0x5FFF_FFFF
0x4000_0000 ~ 0x4007_FFFF (512K) Peripheral 1
0x4008_0000 ~ 0x41FF_FFFF Reserved
0x4200_0000 ~ 0x42FF_FFFF (16M) Bit-band alias of peripheral 1
0x4300_0000 ~ 0x4FFF_FFFF Reserved
0x5000_0000 ~ 0x5005_03FF (321K) Peripheral 2
0x5005_0400 ~ 0x5FFF_FFFF Reserved
- 512MB x 2, block3/4: 0x6000_0000 ~ 0x9FFF_FFFF
0x6000_0000 ~ 0x6FFF_FFFF XMC(PSRAM/SRAM/NOR)
0x7000_0000 ~ 0x8FFF_FFFF XMC(NAND)
0x9000_0000 ~ 0x9FFF_FFFF QSPI1
- 512MB block5: 0xA000_0000 ~ 0xBFFF_FFFF
0xA000_0000 ~ 0xA000_0FFF XMC registers
0xA000_1000 ~ 0xA000_2FFF QSPI registers
0xA000_3000 ~ 0xA7FF_FFFF Reserved
0xA800_0000 ~ 0xAFFF_FFFF XMC(PC Card)
0xB000_0000 ~ 0xBFFF_FFFF QSPI2
- 512MB Bank6: 0xC000_0000 ~ 0xDFFF_FFFF
0xC000_0000 ~ 0xDFFF_FFFF XMC(SDRAM)
- 512MB Bank7: 0xE000_0000 ~ 0xFFFF_FFFF
0xE000_0000 ~ 0xFFFF_FFFF Cortex-M4 internal peripherals
2.2 STM32 F405
- 512MB block0 (Code): 0x0000_0000 ~ 0x1FFF_FFFF
0x0000_0000 ~ 0x000F_FFFF (1M) Aliased to Flash, system memory or SRAM depending on BOOT pins
0x0010_0000 ~ 0x07FF_FFFF Reserved
0x0800_0000 ~ 0x080F_FFFF (1MB) Flash
0x0810_0000 ~ 0x0FFF_FFFF Reserved
0x1000_0000 ~ 0x1000_FFFF (64K) CCM data RAM
0x1001_0000 ~ 0x1FFE_FFFF Reserved
0x1FFF_0000 ~ 0x1FFF_7A0F (30K+) System memory + OTP
0x1FFF_7A10 ~ 0x1FFF_7FFF Reserved
0x1FFF_C000 ~ 0x1FFF_C007 (8B) Option Bytes
0x1FFF_C008 ~ 0x1FFF_FFFF Reserved
- 512MB block1 (SRAM): 0x2000_0000 ~ 0x3FFF_FFFF
0x2000_0000 ~ 0x2001_BFFF (112K) aliased by bit-banding
0x2001_C000 ~ 0x2001_FFFF (16K) aliased by bit-banding
0x2202_0000 ~ 0x3FFF_FFFF Reserved
- 512MB block2 (Peripherals): 0x4000_0000 ~ 0x5FFF_FFFF
0x4000_0000 ~ 0x4000_7FFF (32K) APB1
0x4000_8000 ~ 0x4000_FFFF Reserved ???
0x4001_0000 ~ 0x4001_57FF (22K) APB2
0x4001_5800 ~ 0x4001_FFFF Reserved
0x4002_0000 ~ 0x4007_FFFF (384K) AHB1
0x4008_0000 ~ 0x4FFF_FFFF Reserved
0x5000_0000 ~ 0x5006_0BFF (387K) AHB2
0x5006_0C00 ~ 0x5FFF_FFFF Reserved
- 512MB x 4, block3/4/5/6: 0x6000_0000 ~ 0xDFFF_FFFF
0x6000_0000 ~ 0xA000_0FFF (4K) AHB3
0xA000_1000 ~ 0xDFFF_FFFF Reserved
- 512MB Bank7: 0xE000_0000 ~ 0xFFFF_FFFF
0xE000_0000 ~ 0xE00F_FFFF Cortex-M4 internal peripherals
0xE010_0000 ~ 0xFFFF_FFFF Reserved
3. 总结
从内存功能映射角度,AT32 F435和STM32 F405完全不一样。
因此,HAL适配需要很大的工作量。
PS:从上图对比分析中看出,仍然存在???重叠或者漏地址的问题,需要进一步确认。
4. 参考资料
【1】Ardupilot开源飞控之ChibiOS简介
【2】ARTERY AT32F435
【3】ST STM32F405/415