STM32的启动编译文件

这些启动文件一般位于这个路径下面:

HAL库提供的位置:

./STM32Cube_FW_F1_V1.8.5\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates

标准库提供的位置:

.\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup

启动文件选择

启动文件是针对不同 STM32F1 系列芯片(这里我的库是F1系列的)的。这些启动文件的适用芯片型号和选择方法:


1. 启动文件与芯片型号对应关系

启动文件适用芯片型号Flash 大小RAM 大小
startup_stm32f100xb.sSTM32F100C4, STM32F100R4, STM32F100C616-32 KB4-6 KB
startup_stm32f100xe.sSTM32F100C8, STM32F100R8, STM32F100RC64-128 KB8-10 KB
startup_stm32f101x6.sSTM32F101C4, STM32F101R4, STM32F101T416-32 KB4-6 KB
startup_stm32f101xb.sSTM32F101C6, STM32F101R6, STM32F101T632-128 KB6-10 KB
startup_stm32f101xe.sSTM32F101C8, STM32F101R8, STM32F101RC256-512 KB32-48 KB
startup_stm32f101xg.sSTM32F101RE, STM32F101RG, STM32F101VE512-1024 KB48-80 KB
startup_stm32f102x6.sSTM32F102C4, STM32F102R4, STM32F102T416-32 KB4-6 KB
startup_stm32f102xb.sSTM32F102C6, STM32F102R6, STM32F102T632-128 KB6-10 KB
startup_stm32f103x6.sSTM32F103C4, STM32F103R4, STM32F103T416-32 KB6-10 KB
startup_stm32f103xb.sSTM32F103C6, STM32F103R6, STM32F103T632-128 KB10-20 KB
startup_stm32f103xe.sSTM32F103C8, STM32F103R8, STM32F103RC256-512 KB48-64 KB
startup_stm32f103xg.sSTM32F103RE, STM32F103RG, STM32F103VE512-1024 KB64-96 KB
startup_stm32f105xc.sSTM32F105R8, STM32F105RC, STM32F105V864-256 KB64-80 KB
startup_stm32f107xc.sSTM32F107RB, STM32F107RC, STM32F107VB128-256 KB64-80 KB

2.STM32 链接脚本(Linker Script)

STM32F<系列><型号><Flash大小>_FLASH.ld

STM32F<系列><型号><Flash大小>_FLASH.ld
  • 系列:如 100101102103 等。

  • 型号:如 CRV 等。

  • Flash 大小:如 B(128 KB)、E(512 KB)、G(1 MB)等。

  • 链接脚本的作用定义程序的内存布局,包括 Flash 和 RAM 的起始地址和大小。

  • 选择链接脚本:根据芯片型号和 Flash 大小选择合适的链接脚本。

  • 使用链接脚本:在 Makefile 中指定链接脚本,并编译项目。

编译之前应该选择合适的链接脚本,否则可能出现一下问题:

问题1:链接脚本与芯片不匹配
  • 现象:程序无法正常运行,或运行时进入 HardFault。

  • 解决方案:确保链接脚本与芯片型号和 Flash 大小匹配。

问题2:内存不足
  • 现象:编译时提示内存不足。

  • 解决方案:检查链接脚本中的 Flash 和 RAM 大小,确保其与芯片规格一致。

芯片型号Flash 大小链接脚本
STM32F100 系列
STM32F100C416 KBSTM32F100XB_FLASH.ld
STM32F100C632 KBSTM32F100XB_FLASH.ld
STM32F100R864 KBSTM32F100XE_FLASH.ld
STM32F100RC256 KBSTM32F100XE_FLASH.ld
STM32F101 系列
STM32F101C416 KBSTM32F101X6_FLASH.ld
STM32F101C632 KBSTM32F101XB_FLASH.ld
STM32F101R632 KBSTM32F101XB_FLASH.ld
STM32F101R864 KBSTM32F101XB_FLASH.ld
STM32F101RE512 KBSTM32F101XE_FLASH.ld
STM32F101RG1 MBSTM32F101XG_FLASH.ld
STM32F102 系列
STM32F102C416 KBSTM32F102X6_FLASH.ld
STM32F102C632 KBSTM32F102XB_FLASH.ld
STM32F102R632 KBSTM32F102XB_FLASH.ld
STM32F102R864 KBSTM32F102XB_FLASH.ld
STM32F103 系列
STM32F103C416 KBSTM32F103X6_FLASH.ld
STM32F103C632 KBSTM32F103XB_FLASH.ld
STM32F103C864 KBSTM32F103XB_FLASH.ld
STM32F103R632 KBSTM32F103XB_FLASH.ld
STM32F103R864 KBSTM32F103XB_FLASH.ld
STM32F103RE512 KBSTM32F103XE_FLASH.ld
STM32F103RG1 MBSTM32F103XG_FLASH.ld
STM32F103V864 KBSTM32F103XB_FLASH.ld
STM32F103VE512 KBSTM32F103XE_FLASH.ld
STM32F103VG1 MBSTM32F103XG_FLASH.ld
STM32F103ZET6512 KBSTM32F103XE_FLASH.ld
STM32F103ZGT61 MBSTM32F103XG_FLASH.ld
STM32F105 系列
STM32F105R864 KBSTM32F105XC_FLASH.ld
STM32F105RC256 KBSTM32F105XC_FLASH.ld
STM32F105V864 KBSTM32F105XC_FLASH.ld
STM32F105VC256 KBSTM32F105XC_FLASH.ld
STM32F107 系列
STM32F107RB128 KBSTM32F107XC_FLASH.ld
STM32F107RC256 KBSTM32F107XC_FLASH.ld
STM32F107VB128 KBSTM32F107XC_FLASH.ld
STM32F107VC256 KBSTM32F107XC_FLASH.ld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值