STM32的启动文件的选择(由容量大小决定)

发布者:少年不识愁滋味最新更新时间:2018-08-14 来源: eefocus关键字:STM32  启动文件  容量大小 手机看文章 扫描二维码
随时随地手机看文章

         给STM32写程序时,我们需要在工程文件中加入厂家提供的启动文件(这里以STMf10x系列为例),里面包含的是启动代码,启动代码是一段和硬件相关的汇编代码。是必不可少的!这代码主要作用如下:

    1、堆栈(SP)的初始化;

    2、初始化程序计数器(PC);

    3、设置向量表异常事件的入口地址;

    4、调用 main 函数。

    这些都是准备工作,如果看不懂目前初学也没什么关系,毕竟该文件是用汇编写的。。。。。

   下面我们来看看ST公司提供的三个文件,他们分别用于不同容量的STM32芯片,这三个文件是:

     startup_stm32f10x_ld.s

     startup_stm32f10x_md.s

     startup_stm32f10x_hd.s

 

    其中,ld.s 适用于小容量 产品;md.s 适用于中等容量产品;hd.s 适用于大容量产品;

这里的容量是指 FLASH 的大小.判断方法如下:

    小容量:FLASH≤32K

    中容量:64K≤FLASH≤128K

    大容量:256K≤FLASH

 

    也就是说需要根据自己STM32容量的大小选择不同的启动文件,不然就容易出现各种错误。


关键字:STM32  启动文件  容量大小 引用地址:STM32的启动文件的选择(由容量大小决定)

上一篇:STM32启动文件深度解析
下一篇:ucOS_II移植:Stm32启动代码分析

推荐阅读最新更新时间:2024-03-16 16:10

STM32的BKP寄存器问题
尝试着使用了下STM32的BKP数据寄存器,试着RESET后仍旧保持之前的RTC,但是遇到了问题,BKP_DR寄存器中的值RESET之后就不见了。(试过BKP_DR34这个貌似直接写不进去,BKP_DR3可以写进去,写完后读出来也对,但RESET之后就没有了) 请教下为什么?应该怎么做能让BKP_DR在RESET后依旧有值。 贴代码: C/C++ code? int main() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
[单片机]
STM32固件库学习(1)
一、为什么要学习stm32固件库 使用寄存器编程费时、费力、程序移植性差且容易出错。 st公司考虑到上述缺点故推出一套便于编程的API。 stm32固件库的开发的本质是API函数的使用。 举例:使用GPIO点亮一个LED灯(GPIO控制输出一个低电平) 使用寄存器 先要查找所需的寄存器哪一位是控制那个引脚。那个寄存器控制它的输出等。比较费劲。 使用stm32固件库 stm32固件库提供的API函数,有对GPIO的操作。通过此函数实现对GPIO的控制。 此函数就是对GPIO的相关寄存器操作的封装。 二、CMSIS标准 CMSIS(Cortex Microcontroller saftware Interfac
[单片机]
<font color='red'>STM32</font>固件库学习(1)
STM32|4-20mA输出电路
  为工业场合开发的设备通常情况下都会具有4-20mA输出接口,在以往没有DAC模块的单片机系统,需要外加一主片DAC实现模拟量的控制,或者采用PWM来摸拟DA,但也带来温漂和长期稳定性问题。在以STM32为中心的设备中,使用它自带的DAC即可非常方便的实现4-20mA的输出接口,具有精度高、稳定性好、漂移小以及编程方便等特点。   在STM32单片机系统中,100脚以下没有外接出VREF引脚,但这样使得DAC的参考端和VCC共用,带来较大误码差,为解决这一问题,可以使用廉价的TL431来解决供电问题,TL431典型温漂为30ppm,所以在一般应用中已非常足够。选用两只低温漂电阻,调整输出使TL431的输出电压在3V-3.6V之间
[单片机]
<font color='red'>STM32</font>|4-20mA输出电路
stm32定时器时间计算方法
STM32中的定时器有很多用法: (一)系统时钟(SysTick) 设置非常简单,以下是产生1ms中断的设置,和产生10ms延时的函数: void RCC_Configuration(void) { RCC_ClocksTypeDef RCC_ClockFreq; SystemInit();/源自system_stm32f10x.c文件,只需要调用此函数,则可完成RCC的配置. RCC_GetClocksFreq(RCC_ClockFreq); /SYSTICK分频--1ms的系统时钟中断 if (SysTick_Config(SystemFrequency / 1000)) { w
[单片机]
STM32的优先级NVIC_PriorityGroupConfig的理解
STM32的优先级NVIC_PriorityGroupConfig的理解及其使用M3定义8位STM32只使用4位 写作原由:因为之前有对stm32 优先级做过研究,但是没时间把整理的东西发表,最近项目需要2个串口,但是不是两个串口同时使用,只是随机使用其中一个,程序对2个串口的优先级需要配置; 此文思路:“中断优先级”思维导图-- 关键要点--- 结合图和要点相关程序应用例程讲解; 我们先来看ST公司的一张图: 我自己依据此图理解,应用思维导图画了一张方便理解:(如果看不清可通过ctrl+鼠标滑轮 放大看;) 前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0 N
[单片机]
<font color='red'>STM32</font>的优先级NVIC_PriorityGroupConfig的理解
STM32之CAN---工作/测试模式浅析
1 bxCAN工作模式 bxCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在硬件复位后,bxCAN工作在睡眠模式以节省电能,同时CANTX引脚的内部上拉电阻被激活。软件通过对CAN_MCR寄存器的INRQ或SLEEP位置’1’,可以请求bxCAN进入初始化或睡眠模式。一旦进入了初始化或睡眠模式,bxCAN就对CAN_MSR寄存器的INAK或SLAK位置’1’来进行确认,同时内部上拉电阻被禁用。 当INAK和SLAK位都为’0’时,bxCAN就处于正常模式。在进入正常模式前,bxCAN必须跟CAN总线取得同步;为取得同步,bxCAN要等待CAN总线达到空闲状态,即在CANRX引脚上监测到11个连续的隐性位
[单片机]
<font color='red'>STM32</font>之CAN---工作/测试模式浅析
STM32——高级定时器的应用
/定时器1的配置 输出两路PWM信号 PA8 PA11,计数时钟为400KHZ 计数溢出大小为40000 / void Tim1Init(void) { GPIO_InitTypeDef GPIO_InitStruct; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_OCInitTypeDef TIM_OCInitStruct; u16 LeftMotor_CCR; u16 RightMotor_CCR; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1|RCC_APB2Periph_GPIOA|RCC_APB2P
[单片机]
一文全面掌握stm32的GPIO知识
1 初学者重要提示 本文主要是以stm32H7系列为主。 对于不使用的引脚,推荐设置为模拟模式,悬空即可。 GPIO的速度等级高的时候,最好使能IO补偿单元。 2 GPIO功能简介 STM32H7的GPIO特性如下: 输出状态:开漏/推挽 + 上拉/下拉电阻。 通过输出数据寄存器(GPIOx_ODR)或者外设(GPIO设置为复用模式时)输出数据。 GPIO速度等级设置。 输入状态:浮空,上拉/下拉,模拟。 通过输入数据寄存器(GPIOx_IDR)或者外设(GPIO设置为复用模式)输入数据。 通过寄存器GPIOx_BSRR实现对寄存器GPIOx_ODR的位操作。 通过配置寄存器GPIOx_LCKR的锁机制,实现冻结IO口配置。
[单片机]
一文全面掌握<font color='red'>stm32</font>的GPIO知识
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved