本帖最后由 林堪堪 于 2021-12-30 17:53 编辑
新产品AT32F435/437的如何选择选择代码启动地址
为了使SDRAM和QSPI2也可以执行代码,AT32F435/437的XMC包含了SWAP功能。这里介绍下相关的两个控制位MEM_MAP_SEL[2:0]和SWAP_XMC[1:0]。
1、MCU复位之后,会首先根据BOOT0和BOOT1引脚的电平来选择启动区域,如下:
2、存储器地址映射选择位MEM_MAP_SEL[2:0]
此控制位用来设定将哪个存储器地址映射到 0x0000 0000地址,也就是设定启动地址。复位后,此控制位的复位值与 BOOT0 引脚和BOOT1 的配置值保持一致,用户修改此控制位后,由用户来决定将哪个存储器地址映射到 0x0000 0000 地址。具体定义如下:
000:主存存储器
001:启动程序存储器
010:XMC BANK1
011:内置 SRAM
100:XMC SDRAM BANK1
其他: 保留未用,请勿使用
也就是下图红框五选一映射到蓝框处(启动区域)。
3、XMC 存储器地址映射交换控制位SWAP_XMC[1:0]
00:XMC 地址映射无交换
01:SDRAM 存储器地址交换到 0x6000 0000 和 0x70000000 地址,同时 NOR/PSRAM /SRAM/NAND2 存储器地址交换到 0xC000 00000 和 0xD000 0000 地址10:QSPI2 存储器地址交换到 0x8000 0000,同时NAND3 存储器交换到 0xB000 0000
11:SDRAM 存储器地址交换到 0x6000 0000 和 0x70000000 地址,同时 NOR/PSRAM /SRAM/NAND2 存储器地址交换到 0xC000 00000 和 0xD000 0000 地址; QSPI2存储器地址交换到 0x8000 0000,同时 NAND3 存储器交换到 0xB000 0000
也就是如下表:
|