STM32启动文件简单分析(STM32F10x.s适用范围)

[复制链接]
 楼主| zhangyang86 发表于 2011-7-7 01:55 | 显示全部楼层 |阅读模式
在<<STM32不完全手册里面>>,我们所有的例程都采用了一个叫STM32F10x.s的启动文件,里面定义了STM32的堆栈大小以及各种中断的名字及入口函数名称,还有启动相关的汇编代码。STM32F10x.s是MDK提供的启动代码,从其里面的内容看来,它只定义了3个串口,4个定时器。实际上STM32的系列产品有5个串口的型号,也只有有2个串口的型号,定时器也是,做多的有8个定时器。比如,如果你用的STM32F103ZET6,而启动文件用的是STM32F10x.s的话,你可以正常使用串口1~3的中断,而串口4和5的中断,则无**常使用。又比如,你TIM1~4的中断可以正常使用,而5~8的,则无法使用。
    所以STM32F10x.s并不能适用所有的STM32型号,这样,我们就得对不同型号的STM32,选择不同的启动文件。ST给我们提供了3个启动文件,分别适用于不同容量的STM32芯片。他们是:
startup_stm32f10x_ld.s
startup_stm32f10x_md.s
startup_stm32f10x_hd.s
其中,ld.s适用于小容量 产品;md.s适用于中等容量产品;hd适用于大容量产品;
这里的容量是指FLASH的大小.判断方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
    我们开发板使用的是STM32F103RBT6,FLASH容量为128K,属于中等容量产品,而STM32F10x.s刚刚好是满足中等容量型号的启动文件,所以我们使用STM32F10x.s是不会有问题的,他相当于startup_stm32f10x_md.s。而如果你的是小容量或者大容量的STM32,则相应的选择startup_stm32f10x_ld.s或startup_stm32f10x_hd.s即可。
    这里上传这几个启动文件。详见附件。
tikelu 发表于 2011-7-7 10:10 | 显示全部楼层
附件呢 ?
tikelu 发表于 2011-7-7 10:10 | 显示全部楼层
没看到呢
lord_fan 发表于 2011-9-27 09:45 | 显示全部楼层
有更新。然后更详细分析一些。就更好了。
pentral0311 发表于 2011-9-30 16:55 | 显示全部楼层
定一个,好东西
定义三 发表于 2014-10-24 23:30 | 显示全部楼层
小容量的stm芯片可以用大容量的启用文件吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:正点原子STM32开发板购买单击这里

80

主题

916

帖子

51

粉丝
快速回复 在线客服 返回列表 返回顶部