1、stm32的Device下载网址
进去之后找对应的 Device Family Pack,如:
https://www.keil.com/dd2/stmicroelectronics/stm32f401ccux/
2、stm32官网标准库、例程下载网址
3、SYSCFG时钟
有关内存空间重映射、与EXIT配置操作,打开:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE)
4、IRAM1、IRAM2
若使用如下:
#define SRAM 0X20000000
uint32_t a __attribute__((at(SRAM)))=0;
uint32_t b __attribute__((at(SRAM+4)))=0;
配置区需为:
 IRAM2必须分配出内存,对勾打不打无所谓,IRAM1的对勾必须要打否则编译报错。编译完之后,在生成的 ***.sct** 分散加载文件为:
*.sct
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00010000 { ; load region size_region
ER_IROM1 0x08000000 0x00010000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000008 0x00010000 { ; RW data
.ANY (+RW +ZI)
}
}
而如果IRAM2打钩,则
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00010000 { ; load region size_region
ER_IROM1 0x08000000 0x00010000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000008 0x00010000 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM2 0x20000000 0x00000008 {
.ANY (+RW +ZI)
}
}
此IRAM地址可在上面设置,也可以自己加载分散文件 *.sct ,如:
将Use Memory Layout From Target Dialog前的对勾去掉,在Scatter File中加载自己写的分散文件。
注:
IRAM1与IRAM2的地址分配可互换