STM32单片的启动过程解析

发布者:Huixin8888最新更新时间:2023-05-19 来源: elecfans关键字:STM32  单片  启动过程 手机看文章 扫描二维码
随时随地手机看文章

一、STM32启动文件详细解析

STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例

;********************(C)COPYRIGHT2011STMicroelectronics********************

;*FileName:startup_stm32f10x_hd.s

;*Author:MCDApplicationTeam

;*Version:V3.5.0

;*Date:11-March-2011

;*Description:STM32F10xHighDensityDevicesvectortableforMDK-ARM

;*toolchain.

;*Thismoduleperforms:

;*-SettheinitialSP

;*-SettheinitialPC==Reset_Handler

;*-SetthevectortableentrieswiththeexceptionsISRaddress

;*-Configuretheclocksystemandalsoconfiguretheexternal

;*SRAMmountedonSTM3210E-EVALboardtobeusedasdata

;*memory(optional,tobeenabledbyuser)

;*-Branchesto__mainintheClibrary(whicheventually

;*callsmain())。

;*AfterResettheCortexM3processorisinThreadmode,

;*priorityisPrivileged,andtheStackissettoMain.


;*《《》》

;*******************************************************************************

;THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS

;WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVETIME.

;ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANYDIRECT,

;INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISINGFROMTHE

;CONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHECODING

;INFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.

;*******************************************************************************

;Amountofmemory(inbytes)allocatedforStack

;Tailorthisvaluetoyourapplicationneeds

;StackConfiguration;栈定义

;StackSize(inBytes)《0x0-0xFFFFFFFF:8》

;

Stack_SizeEQU0x00000400;EQU伪指令,作用是左边的符号名代表右边的表达式

AREASTACK,NOINIT,READWRITE,ALIGN=3;定义栈段:名称为STACK,未初始化,可读写,ELF的栈段按2^3=8对齐

Stack_MemSPACEStack_Size;分配一片连续的存储区域并初始化为0,栈空间:0x400个字节

__initial_sp;栈空间顶地址

;HeapConfiguration;堆定义

;HeapSize(inBytes)《0x0-0xFFFFFFFF:8》

;

Heap_SizeEQU0x00000200

AREAHEAP,NOINIT,READWRITE,ALIGN=3

__heap_base;堆空间起始地址

Heap_MemSPACEHeap_Size;堆空间:0x200个字节

__heap_limit;堆空间结束地址

PRESERVE8;PRESERVE8指令指定当前文件保持堆栈八字节对齐

THUMB;告诉汇编器下面是32位的Thumb指令,如果需要汇编器将插入位以保证对齐

;VectorTableMappedtoAddress0atReset;中断向量表定义

;实际上是在CODE区(假设STM32从FLASH启动,则此中断向量表起始地址即为0x8000000)

AREARESET,DATA,READONLY;定义一块数据段,只可读,段名字是RESET

EXPORT__Vectors;EXPORT:在程序中声明一个全局的标号__Vectors,该标号可在其他的文件中引用


关键字:STM32  单片  启动过程 引用地址:STM32单片的启动过程解析

上一篇:2023年 STM32中国峰会开启全新篇章
下一篇:STM32的GPIO工作原理详解

推荐阅读最新更新时间:2024-11-11 07:05

基于80C51单片机——中断小结
最近看了一下80C51单片机的中断部分的实验,做一些笔记,方便以后学习查找。 首先说一下什么是中断吧,中断是指CPU在执行当前程序的过程中,由于某种随机出现的外设(外部设备)请求或CPU内部的异常事件,使CPU暂停正在执行的程序而转去执行相应的服务处理程序;当服务处理程序运行完毕之后,CPU再返回到暂停处继续执行原来的程序。 那什么是中断嵌套呢?简单点说就是低优先级的中断可以被高优先级的中断源所中断,等高优先级中断服务程序结束后,再返回去执行被中断的的低优先级的中断服务程序。 举个简单的栗子吧(之前写过但不知道怎么删了,,又让我重新编辑):比如我们就是一个CPU,我们当前在洗衣服(当前程序),突然电话铃声响了(中断来了)
[单片机]
STM32晶振不起振
1.外部晶振虚焊 2.外部晶振的电容不匹配,可能是器件盒里面混入了大容值电容 3.芯片挂了 4.STM32f103有内部晶振。刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的。 在RCC_Configuration(void)看相关设置,有没有启动外部晶振HSE. PS:如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:  2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。  2.2)分别重映射OSC_
[单片机]
MCS51单片机采用什么样的抗干扰技术
普及型MCS-51系列单片机(如8031和8032)既然无复位指令,又没有集成WATCHDOS电路,那么普及型MCS-51单片机是采用什么样的抗干扰技术呢?如果没有外接硬件WATCHDOG电路,就必须采用软件抗干扰技术。常用的软件抗干扰技术有:软件陷阱、指令冗余、软件WATCHDOG等,它们的作用是在系统受干扰时能及时发现,再用软件的方法使系统复位。所谓软件复位就是用一系列指令来模仿复位操作,这就是MCS-51系列单片机所特有的软件复位技术。
[单片机]
学习单片机的步骤
  学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验和教授徒弟学习的感受,提出笔者的学习方法和步骤。   第一步:基础理论知识学习   基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。笔者始终认为,扎实的电子技术基
[单片机]
STM32输入捕获--“PWM输入模式”(可拓展多路同时捕获)
前言 博文基于STM32F103ZET6和标准固件库V3.5.0在MDK5环境下开发; 本博文只讨论输入捕获的PWM输入模式,这个模式是STM32输入捕获检测脉宽和频率的一种硬件处理机制,说白了就是STM32芯片专门用来进行对PWM进行捕获的一个功能;此方法相比较于传统的PWM的捕获方法,大大减小了代码量,提高了检测效率,而实际上对于PWM信号的检测还有其他方法(下面我会介绍,就是原子教程提供的方法),并且关于繁琐的寄存器的介绍这里就不多说了,有兴趣的话可以直接去我的另外一个博客里去看: https://blog.csdn.net/wuyuzun/article/details/73135662 ;(备注:此链接里的博客里有一个配
[单片机]
<font color='red'>STM32</font>输入捕获--“PWM输入模式”(可拓展多路同时捕获)
谈几点单片机工程师的职业规划问题
首先,单片机不是万能的,但没有单片机那是万万不能的。从NN年前的单片机,到现在的单片机,单片机只是单片机,其性质并没有太多的改变。只是从原来的 神秘 、 暴利 、 有趣 等等,回归了她原来的真是面目罢了--那只是在说明社会在进步,更加的合理和趋于理性。只是现在的这样回归,有点走了极端罢了,从一个极端走了另一个极端罢了。但相反社会在这方面的需求却是越来越大,至少在我们的有生之年,这样的 自动化 过程一直会贯穿下去。所以你有什么好担心的,怕自己没有用武之地吗?!怕自己的资薪没有或不高吗?! 我自己在单片机和自己熟悉的行业上做了快10年了,不说自己的水平怎么样。说牛不牛,说不牛也牛--该骄傲的时候还是要骄傲的,那是对自己的肯定。该谦虚
[单片机]
UCOS2_STM32_任务间信号量通信(一)_ 应用实例描述
Ⅰ、写在前面 本文主要讲述UCOS2基于STM32硬件平台下,两个任务之间利用信号量进行通信实现的方法,具体实现原理将在后面文章讲述。 本文主要站在应用的角度来分析信号量通信,与芯片相关的底层这里不过多描述。本文虽然是STM32F1的芯片,但也适合其他芯片的学习(应用层)。 今天提供的工程代码也适用于STM32其他系列芯片(下载我前面移植好的其他系列工程,替换bsp和app下面相关文件就行。 当然,里面LED、按键和串口驱动如果不是对应的引脚,请适当改一下)。 与本文相关的UCOS移植和内核的讲述可以进入我微信公众号“历史消息”查看。 关于本文的更多详情请往下看。 Ⅱ、本文要点 1.软件工程源代码下载 我将今天所讲述内容源
[单片机]
UCOS2_STM32_任务间信号量通信(一)_ 应用实例描述
PIC单片机开发存在的几个问题
1 怎样进一步降低功耗 功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。 具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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