在trueStudio 9.1/9.2中如何修改MCU的型号?

1. 在工程属性中,进入C/C++ Build -> Settings -> Target,选择MCU的型号。


2. 在工程属性中,进入C/C++ General -> Paths and Symbols -> Symbols

 

对于C8T6型号:

GNU C和S,s,asm中需要宏定义“STM32F10X_MD”和“USE_STDPERIPH_DRIVER”;

对于RCT6型号:

GNU C和S,s,asm中需要宏定义“STM32F10X_HD”和“USE_STDPERIPH_DRIVER”;


3. 修改stm32_flash.ld文件

对于C8T6型号,Flash长度为64K,RAM长度为20K;

对于RCT6型号,Flash长度为256K,RAM长度为48K;

用户模式堆的最高地址,

对于C8T6型号

_estack = 0x20005000;    /* end of 20K RAM */

对于RCT6型号

_estack = 0x2000c000;    /* end of 48K RAM */

最小的堆栈空间可以根据需要修改。


4. 修改Makefile文件

对于C8T6型号:

ASSEMBLER_FLAGS =-c -g -O0 -mcpu=cortex-m3  -mthumb  -D"STM32F10X_MD" \
-D"USE_STDPERIPH_DRIVER"  -x assembler-with-cpp $(INCLUDE_DIR)

COMPILER_FLAGS =-c -g -MMD -mcpu=cortex-m3  -O0 -Wall -ffunction-sections \
-fdata-sections -mthumb  -D"STM32F10X_MD" -D"USE_STDPERIPH_DRIVER" \ $(INCLUDE_DIR) 

对于RCT6型号:

将标红的“STM32F10X_MD”替换为“STM32F10X_HD”。


5. 修改启动文件

对于STM32F103不同型号的启动文件差异主要在于外设初始化配置上。不用容量的单片机的外设差别较多,因此可以直接替换启动文件而不必逐一修改它们。

对于C8T6型号,启动文件选“startup_stm32f10x_md.s”;

对于RCT6型号,启动文件选“startup_stm32f10x_hd.s”;

可以直接在/Libraries/Startup/文件夹中增删相关的文件,也可以在Makefile文件中将指定的文件排除。如下图所示:

# Define sources and objects
SRC := $(wildcard */*/*/*/*/*/*/*.c) \
	$(wildcard */*/*/*/*/*/*.c) \
	$(wildcard */*/*/*/*/*.c) \
	$(wildcard */*/*/*/*.c) \
	$(wildcard */*/*/*.c) \
	$(wildcard */*/*.c) \
	$(wildcard */*.c)
	
SRC := $(filter-out Libraries/Hardware/src/TM1639.c, $(SRC))
SRC := $(filter-out Libraries/SysExtend/src/tiny_printf.c, $(SRC))
SRC := $(filter-out freemodbus/BARE/demo.c, $(SRC))
	
SRCSASM := 	$(wildcard */*/*/*/*/*/*/*/*.s) \
	$(wildcard */*/*/*/*/*/*/*.s) \
	$(wildcard */*/*/*/*/*/*.s) \
	$(wildcard */*/*/*/*/*.s) \
	$(wildcard */*/*/*/*.s) \
	$(wildcard */*/*/*.s) \
	$(wildcard */*/*.s) \
	$(wildcard */*.s)

SRCSASM := $(filter-out Libraries/Startup/startup_stm32f10x_hd.s, $(SRC))

6. 使用了Alwhales库

需要修改eeprom.h中关于flash划分作为eeprom的地址范围。

对于C8T6型号,flash的结束地址为“0x08010000”;

对于RCT6型号,flash的结束地址为“0x08040000”;

猜你喜欢

转载自blog.csdn.net/u013441358/article/details/104375597