AT32 F435简介3/N Memory Mapping

2023-12-18 18:08:03

1. 源由

  1. 对比STM32 F405进行AT32 F435 MCU的资料研读,期望获取更多差异化信息;
  2. 配合ChibiOS的porting工作,有理有据;
  3. 寻找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

文章来源:https://blog.csdn.net/lida2003/article/details/135056051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。