STM32入门系列-复位程序

发布者:angelbaby最新更新时间:2022-11-17 来源: zhihu关键字:STM32  入门系列  复位程序 手机看文章 扫描二维码
随时随地手机看文章

已经对启动文有了大致了解,再来看看系统在复位过程中做了哪些工作。复位程序如下:


; Reset handler

Reset_Handler PROC

EXPORT Reset_Handler [WEAK]

IMPORT SystemInit

IMPORT __main

LDR R0, =SystemInit

BLX R0

LDR R0, =__main

BX R0

ENDP


在复位程序内,声明了外部文件标号SystemInit和__main(__main 是一个标准的C语言库函数,用于初始化用户堆栈,最终还是进入main),因此需要在外部文件中按照这个标号名写出对应的函数,否则编译器将报错。在库文件system_stm32f10x.c内就写了SystemInit()函数;在main.c 文件内也写了一个main()函数。所以主函数是main这个名字。


系统复位后进入复位函数,首先调用SystemInit()函数,初始化STM32系统时钟,然后再进入我们熟悉的main()函数。


关键字:STM32  入门系列  复位程序 引用地址:STM32入门系列-复位程序

上一篇:STM32入门系列-使用库函数点亮LED,LED初始化函数
下一篇:STM32入门系列-使用库函数点亮LED软硬件分析

推荐阅读最新更新时间:2024-11-04 18:18

关于stm32中串口重定向问题详解
usart这部分代码我也是从网上copy出来的,一下是作者的解释: 简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式), 标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下: #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker- Libraries- Small printf set to 'Yes') calls
[单片机]
关于<font color='red'>stm32</font>中串口重定向问题详解
stm32实用篇4: stm32数据类型长度
由于经常会忘记stm32的数据类型长度,测试一下: DEBUG_INFO( stm32数据类型长度 ); DEBUG_INFO( char = %d byte. , sizeof(char)); DEBUG_INFO( short = %d byte. , sizeof(short)); DEBUG_INFO( int = %d byte. , sizeof(int)); DEBUG_INFO( long = %d byte. , sizeof(long)); DEBUG_INFO( long long = %d byte. , sizeof(long long)); DEBUG_INF
[单片机]
<font color='red'>stm32</font>实用篇4: <font color='red'>stm32</font>数据类型长度
基于STM32的甲醛浓度检测报警proteus仿真设计
仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 设计编号:C0083 1.主要功能 功能说明: 1、以STM32单片机和控制核心设计甲醛浓度检测报警设计; 2、通过液晶屏LCD1602和串口上位机显示甲醛浓度,MV表示检测值,ALM表示报警值; 3、可以通过按键设置甲醛浓度ALM报警值大小。 4、监测甲醛浓度大于报警值时蜂鸣器报警电路导通,蜂鸣器报警。 5、默认监测到甲醛浓度高于0.100mg/m3蜂鸣器报警。 主要硬件设备:STM32F103单片机 资料下载链接: https://docs.qq.com/doc/DS0FkcGdVRlFGcVhN 以下为本设计资料展示: 2.仿真设计 本实验利用ST
[单片机]
基于<font color='red'>STM32</font>的甲醛浓度检测报警proteus仿真设计
5050 RGB8路LED灯驱动(PWM驱动,STM32
一、前期准备 单片机:STM32F103ZET6 开发环境:MDK5.14 库函数:标准库V3.5 RGB LED模块:淘宝有售 二、实验效果 类似奥迪转向灯,灯以此亮起,如此循环。颜色256 * 256 * 256色可调。 三、驱动原理 模块上面的RGB引脚低电平有效,LED灯IO口也是低电平有效。 四、驱动代码 led.h #ifndef __LED_H__ #define __LED_H__ #include stm32f10x.h #include gpio.h #include pwm.h #define LED_R PAout(1) #define LED_G PAout(2) #de
[单片机]
5050 RGB8路LED灯驱动(PWM驱动,<font color='red'>STM32</font>)
STM32ADC模块速度配置问题
简介:本文介绍了STM32单片机时钟配置问题以及精度和速度之间的关系 STM32F103xx系列称为增强型产品,增强型产品的最高时钟频率可以达到72MHz。增强型产品的英文名称为Performance Line。 STM32F101xx系列称为基本型产品,基本型产品的最高时钟频率可以达到36MHz。基本型产品的英文名称为Access Line。 根据设计,当ADC模块的频率为14MHz时,可以达到ADC的最快采样转换速度。 要得到14MHz的ADC频率,就要求SYSCLK的频率是14MHz的倍数,即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;对于基本型产品14MHz和28MHz处于它的
[单片机]
stm32的库文件的用法解释
1、我们需要加那些文件进来才能跑动一个程序: 首先我们要对库文件有一定的了解,其中STM32F10xR.LIB是封装好了的.C文件,它包括stm32f10x_conf.c stm32f10x_adc.c stm32f10x_gpio.c等等,要用这些C函数,直接包含头文件stm32f10x_conf.h stm32f10x_adc.h stm32f10x_gpio.h就行了,但是头文件也能用stm32f10x_lib.h直接包含就行了,所以我们看到的keil中只用添加GROUP中的SOURCE中的四个文件就行了 其中的stm32f10x_vector.s是启动文件,有的版本是startup_stm32f10x_hd.
[单片机]
<font color='red'>stm32</font>的库文件的用法解释
cw32和stm32的区别
cw32和stm32的区别 CW32和STM32是两种常见的单片机,分别由芯源半导体和STMicroelectronics公司生产。单片机是一种嵌入式系统,它集成了处理器、内存、输入/输出接口和其他组件,被广泛应用于各种电子设备中。在本文中,我们将深入探讨CW32和STM32之间的区别和优劣势。 1. 硬件性能 硬件性能是衡量单片机性能的一个重要因素。CW32使用ARM Cortex-M0内核,最高主频为48MHz,内置64KB闪存和12KB SRAM,可扩展至256KB闪存和32KB SRAM。而STM32则使用更强大的Cortex-M3/M4内核,最高主频可达200MHz,内置至少64KB闪存和20KB SRAM,同时支持高达
[单片机]
stm32休眠_RTC定时唤醒来喂狗
在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起的故障,低功耗模式是为了在CPU不需要继续运行时进入到休眠模式用以节省电能。其中独立看门狗的时钟由独立的RC振荡器(STM32F10x一般为40kHz)提供,即使在主时钟出现故障时,也仍然有效,因此可以在停止和待机模式下工作。而且独立看门狗一旦启动,除了系统复位,它不能再被停止。但这样引发的一个问题是当MCU进入到低功耗模式后由于CPU停止运行无法喂狗,会导致系统频繁复位。那如何解决这个问题呢,难道独立看门狗和低功耗模式没法同时使用? 一个很好的方式是在休眠模式下通过RTC定时唤醒来喂狗,喂完够在进入继续进入到休眠模式。比如看门
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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