在移植过程中,CPPDEFINES 中的芯片宏定义需根据目标芯片的 Flash容量 和 引脚封装 来确定。对于 STM32F103VC 芯片,选择步骤如下:
1. 确认芯片容量分类
2. 确定具体宏定义
- 大容量芯片包含三类宏:
STM32F103xC:涵盖 256KB Flash 的型号(如 STM32F103RC/VC)。
STM32F103xD:涵盖 384KB Flash 的型号。
STM32F103xE:涵盖 512KB Flash 的型号。
- STM32F103VC 对应
STM32F103xC(因 VC 的 Flash 为 256KB)。
3. 在 SConscript 中修改
将 CPPDEFINES 中的宏替换为 STM32F103xC:
# 修改前(适用于中容量芯片)
# CPPDEFINES = ['STM32F103xB']
# 修改后(适用于 STM32F103VC)
CPPDEFINES = ['STM32F103xC']
4. 验证关键点
- 头文件匹配:确保工程包含
stm32f103xc.h(而非 stm32f103xb.h)。
- 启动文件:使用大容量对应的启动文件(如
startup_stm32f103xc.s)。
- 链接脚本:确认 ROM/RAM 地址范围与大容量芯片匹配(ROM: 0x08000000-0x0803FFFF)。
附加说明
- 若使用 HAL/LL 库:
stm32f1xx.h 会根据宏 STM32F103xC 自动包含正确的设备头文件。
- 引脚封装:STM32F103VC 的封装为 LQFP100,宏
STM32F103xC 已覆盖此封装,无需额外定义封装宏。
总结
在 SConscript 中修改为:
CPPDEFINES = ['STM32F103xC'] # 适用于 STM32F103VC(256KB Flash,大容量)
在移植过程中,CPPDEFINES 中的芯片宏定义需根据目标芯片的 Flash容量 和 引脚封装 来确定。对于 STM32F103VC 芯片,选择步骤如下:
1. 确认芯片容量分类
2. 确定具体宏定义
- 大容量芯片包含三类宏:
STM32F103xC:涵盖 256KB Flash 的型号(如 STM32F103RC/VC)。
STM32F103xD:涵盖 384KB Flash 的型号。
STM32F103xE:涵盖 512KB Flash 的型号。
- STM32F103VC 对应
STM32F103xC(因 VC 的 Flash 为 256KB)。
3. 在 SConscript 中修改
将 CPPDEFINES 中的宏替换为 STM32F103xC:
# 修改前(适用于中容量芯片)
# CPPDEFINES = ['STM32F103xB']
# 修改后(适用于 STM32F103VC)
CPPDEFINES = ['STM32F103xC']
4. 验证关键点
- 头文件匹配:确保工程包含
stm32f103xc.h(而非 stm32f103xb.h)。
- 启动文件:使用大容量对应的启动文件(如
startup_stm32f103xc.s)。
- 链接脚本:确认 ROM/RAM 地址范围与大容量芯片匹配(ROM: 0x08000000-0x0803FFFF)。
附加说明
- 若使用 HAL/LL 库:
stm32f1xx.h 会根据宏 STM32F103xC 自动包含正确的设备头文件。
- 引脚封装:STM32F103VC 的封装为 LQFP100,宏
STM32F103xC 已覆盖此封装,无需额外定义封装宏。
总结
在 SConscript 中修改为:
CPPDEFINES = ['STM32F103xC'] # 适用于 STM32F103VC(256KB Flash,大容量)
举报