一、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,该标号可在其他的文件中引用
相关推荐
1,新建项目,在新建工程的目录下新建几个文件夹:
A,CORE (用来存放启动文件)
B...
发表于 2021-04-23 14:43
?
2次阅读
STM32的串口有监测总线是否处于空闲的功能,我们可以使用这个功能,当数据传输完总线变成空闲状态时产...
发表于 2021-04-23 14:33
?
4次阅读
先占优先级的概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断先占优先级如果没有后...
发表于 2021-04-23 16:17
?
27次阅读
1 /*
2 ::按键控制
3 PA8接LED,PE2接按键
4 */
5 ...
发表于 2021-04-23 16:14
?
42次阅读
STM32有两个DMA控制器(DMA2只存在于大容量产品中),DMA1有7个通道,DMA2有5个通道...
发表于 2021-04-23 15:40
?
25次阅读
TFTLCD使用80并口,80 并口有如下一些信号线:
CS: TFTLCD 片选信号。
...
发表于 2021-04-23 14:42
?
54次阅读
若出现如下编译错误:Error: L6915E: Library reports error: __...
发表于 2021-04-23 15:43
?
59次阅读
一、总体原则
PID调试一般原则
a.在输出不振荡时,增大比例增益P。
b.在输出...
发表于 2021-04-23 15:31
?
70次阅读
名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总...
发表于 2021-04-23 15:30
?
35次阅读
STM32—数组作为被调用函数的入口参数时,要两个条件,
1:数组首地址
2:数组长度
...
发表于 2021-04-23 15:05
?
54次阅读
当STM32F105配置为USB设备时, PA9/OTG_FS_VBUS是用来检测presense ...
发表于 2021-04-23 15:10
?
85次阅读
其实,SysTick能实现的功能,都可以由TIM来实现。SysTick无非就是定时中断的功能,它完全...
发表于 2021-04-23 14:27
?
56次阅读
STM32的定时器除了基本定时器TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高...
发表于 2021-04-23 16:27
?
217次阅读
bootloader设置:
static void check_boot_mode(void)...
发表于 2021-04-23 15:53
?
78次阅读
(TIM_GetITStatus(TIM3,TIM_IT_CC1)==SET)//{ic1=TIM_...
发表于 2021-04-23 14:50
?
92次阅读
开始只是谈到别人对FSMC的理解,注意这里只讨论FSMC控制TFT,也就是在FSMC的NOR\PSR...
发表于 2021-04-23 14:22
?
70次阅读
NAND Flash的容量较大。整片Flash分为若干个块(Block),每个Block分为若干个页...
发表于 2021-04-23 15:47
?
466次阅读
用途:
1.产生操作系统的时钟节拍
2.便于不同处理器之间程序移植
SysTick...
发表于 2021-04-23 15:44
?
80次阅读
IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运...
发表于 2021-04-23 15:33
?
82次阅读
IWDG是一个独立看门狗,具有独立于系统的时钟,与片外看门狗更为相似,使用片内独立的阻容时钟发生电路...
发表于 2021-04-23 15:28
?
117次阅读
沿用之前CM3核的STM32F10X系列的加入RDP功能,之后在Segger的Unsecured C...
发表于 2021-04-23 15:22
?
87次阅读
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM3...
发表于 2021-04-23 16:01
?
92次阅读
1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。32的独立...
发表于 2021-04-23 15:55
?
76次阅读
STM32中的高级控制定时器(Tim1)是由一个16位的自动装载计数器组成,它由一个可编程预分频器驱...
发表于 2021-04-23 15:25
?
121次阅读
在SPI通信中,可以同时开启发送和接收DMA请求,自动数据的发送和接收,完成数据的交换
基本步...
发表于 2021-04-23 15:26
?
111次阅读
先占优先级也就是抢占优先级,概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断先占...
发表于 2021-04-23 15:09
?
87次阅读
在这个公式上,共有三个变量,其中两个我们是知道的,Fck和Tx/Rx波特率这两个是已知的,USART...
发表于 2021-04-23 16:15
?
122次阅读
先使用USART中断函数接收数据,判断是否接收到每帧数据的起始标记字符。如果接收到就关闭USART中...
发表于 2021-04-23 15:36
?
87次阅读
STM32产生PWM是非常的方便的,要需要简单的设置定时器,即刻产生!
(1)使能定时器时钟:...
发表于 2021-04-23 15:36
?
134次阅读
在工程文件下,新建Startup、Headers、User、Libraries、CMSIS、List...
发表于 2021-04-23 14:52
?
105次阅读
全速的USB设备,最大速度12Mb/s,但是如果跑的是HID之类慢速设备的协议,那么速度就没有那么快...
发表于 2021-04-23 15:06
?
164次阅读
工程概要说明:定义一个按键(可自己定义),每按键一次,响应中断一次,在中断函数中LED提示灯变化一次...
发表于 2021-04-23 15:04
?
118次阅读
对于GPIO端口,每个端口有16个引脚,每个引脚的模式由寄存器的四个位控制,每四位又分为两位控制引脚...
发表于 2021-04-23 14:54
?
176次阅读
ADS1246的SPI时序,这个是需要提一下的,一般来说,SPI协议在上升沿锁存数据,下降沿更新数据...
发表于 2021-04-23 14:39
?
111次阅读
CAN_InitStructure.CAN_TTCM=DISABLE;//禁止时间触发通信模式
...
发表于 2021-04-23 14:31
?
202次阅读
SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时...
发表于 2021-04-23 14:27
?
97次阅读
LCD有如下控制线:
CS:Chip Select片选,低电平有效
RS:Registe...
发表于 2021-04-23 14:17
?
96次阅读
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR...
发表于 2021-04-23 16:22
?
135次阅读
这个宏定义的作用就是检查参数PERIPH,判断参数PERIPH是否为GPIOX(A.。.G)基址中的...
发表于 2021-04-23 16:10
?
119次阅读
void SPI_cfg(void){
SPI_InitTypeDef SPI_InitStr...
发表于 2021-04-23 15:56
?
128次阅读
红外接收头一般是接收、放大、解调一体头,一般红外信号经接收头解调后,数据“0”和“1”的区别通常体现...
发表于 2021-04-23 15:32
?
116次阅读
// 1:复制用户代码中的中断向量表到SRAM首地址
// 2: 开启SRAM的重映射功能,将...
发表于 2021-04-23 15:24
?
110次阅读
收获:对于I2C通信协议的理解更加深刻,对ADS1115也能进行单通道的使用。I2C的开始、发送/读...
发表于 2021-04-23 16:49
?
127次阅读
GPIO_InitTypeDef GPIO_InitStructure;
//配置SPI2管脚...
发表于 2021-04-23 16:35
?
104次阅读
外部中断(EXTI)中与AFIO有关的寄存器是AFIO-EXTICR1、2、3,它们是用来选择EXT...
发表于 2021-04-23 16:27
?
79次阅读
这里使用的是3362电位器(10K),即用STM32来测量PB0和GND两端的电压,这样的电路设计比...
发表于 2021-04-23 16:12
?
132次阅读
此算法是基于操作系统的,理论上不限于任何操作系统,只要有任务调度就可以。本文将以FreeRTOST为...
发表于 2021-04-23 16:01
?
316次阅读
针对F4系列,STM32F4库函数中,已经取消了GPIO_*PinRemapConfig()函数,对...
发表于 2021-04-23 16:43
?
115次阅读
usb_pwr.c 这个文件看文件名就知道跟功耗有关了,有很多的状态:上电、掉电、挂起、恢复。
发表于 2021-04-23 16:35
?
106次阅读
在使用STM32的CAN控制器进行数据收发,当用到位屏蔽模式的时候,就要设置过滤器了,这个关系到是否...
发表于 2021-04-23 16:25
?
123次阅读
最近在一个项目中用到了nRF24L01这个无线2.4G收发芯片,项目中有主机和分机,默认都是使用数据...
发表于 2021-04-23 15:53
?
104次阅读
ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LT...
发表于 2021-04-23 16:49
?
149次阅读
STM32正交编码器驱动,引入(突变)带进位的位置环和速度环
发表于 2021-04-23 16:12
?
70次阅读
一、STM32有自己的字符发送函数。
void PC_SendChar(uint8_t Dat...
发表于 2021-04-23 15:26
?
123次阅读
RCC_DeInit();//将外设RCC寄存器重设为缺省值
/*EnableHSE*/
...
发表于 2021-04-23 15:20
?
108次阅读
将程序下载到开发板上后,LED灯会不断地亮灭,当按下KEY2键超过3s时,LED灯灭,标志着单片机进...
发表于 2021-04-23 14:40
?
117次阅读
//先配置IO口:
ADC_InitTypeDef adcInitStruct;
///...
发表于 2021-04-23 15:40
?
111次阅读
这里的ADC转换也来使用DMA---这个也是STM32的ADC转换最常见的方式。
第一步是了解...
发表于 2021-04-23 15:30
?
201次阅读
开发环境:KIEL4,芯片STM32F103VCT6:釼C3.5
1.配置开发环境。
2....
发表于 2021-04-23 15:01
?
79次阅读
首先有一点需要注意:FWLib固件库目前的最新版应该是V2.0.x,V1.0.x版本固件库中,TIM...
发表于 2021-04-23 16:20
?
143次阅读
发表于 2021-04-23 06:54
?
803次阅读
发表于 2021-04-23 03:08
?
603次阅读
发表于 2021-04-23 01:20
?
207次阅读
发表于 2021-04-23 20:37
?
6346次阅读
评论