2.4 STM32启动过程

news/2024/10/17 2:33:14/

目录

一,启动Flow

1.1 初始化MSP

1.2 初始化PC

1.3 设置堆栈大小

1.4初始化中断向量表

1.5 调用初始化函数(可选)

1.6 调用__main

二,Reset_Handler函数


一,启动Flow

下面是stm32在内部FLASH启动的启动建议流程图,在stm32复位到执行我们程序的main函数的过程中,最重要的就是我们的启动文件。

1.1 初始化MSP

MSP指向主堆栈的顶部,所有函数的局部变量、参数、返回值等都会存储在堆栈中。初始化MSP是为后续的程序运行准备堆栈空间。

系统复位后,处理器会从地址0x08000000处读取一个32位的值,这个值就是主堆栈指针MSP的初始值。

1.2 初始化PC

PC指向当前要执行的指令,是程序执行的控制中心。

紧随MSP之后,处理器从地址0x08000004处读取一个32位的值,这个值就是程序计数器的初始值,即程序开始执行的第一条指令的地址。


http://www.ppmy.cn/news/1539605.html

相关文章

【进阶OpenCV】 (6)--指纹识别

文章目录 指纹识别1. 计算指纹间匹配点的个数2. 获取指纹编号3. 获取对应姓名4. 代码实现 总结 指纹识别 假设,现在我们有一个小的指纹库,此时,有一个指纹图片需要我们识别是不是指纹库中某一个人的。如果是,是谁的呢&#xff1f…

mysql用户管理(user表列信息介绍,本质,管理操作),数据库的权限管理(权限列表,权限操作)

目录 用户管理 介绍 user表 介绍 列信息 Host User *_priv authentication_string 用户管理的本质 操作 创建用户 删除用户 修改用户信息 修改密码 自己修改 root用户修改指定用户的密码 数据库的权限 权限列表 给用户授权 查看权限 回收权限 刷新权限 …

恺撒密码/置换密码案例

恺撒密码是移位密码的一个典型应用。恺撒密码据传是古罗马恺撒大帝用来保护重要军情的加密系统通过将字母按顺序推后3位起到加密作用。改进版的恺撒密码可以将一个字母利用字母表中该字母后面的第k个字母替代,k有 25 种可能的密钥。 案例:如果对明文“bo…

将SpringBoot的Maven项目打成jar包和war包

先需要明确的是,该项目打包的形态是可执行的jar包,还是在tomcat下运行的war包。 springboot自带的maven打包 1.创建一个springboot web项目 1.api控制层HelloWorld.java RestController RequestMapping("/hello") public class HelloWorld …

关于oracle数据库/加载机密码中含有特殊字符@:><等的解决办法

一、前提交代 我最近项目中需要通过把特定的数据文件(.gz文件)导入到oracle库中,一般情况我们是通过shell来实现该功能,然后再通过作业调度调用shell来实现。在shell中肯定要连接数据库和加载机(存放数据文件的服务器),但是数据库…

foxy moveit2 小鱼

ros2 foxy 下安装moveit2 通过小鱼安装包(极简): 通过小鱼配置好git连接,注意start.sh前面有一个. git clone https://gitee.com/ohhuo/d2lmoveit2_tutorials cd d2lmoveit2_tutorials . start.sh 注意观察上面的运行过程,如果没报错啥的&…

Elasticsearch Suggester

概述 Elasticsearch里设计了4 种类别的 Suggester Term Suggester:词条建议器。对给输入的文本进进行分词,为每个分词提供词项建议。Phrase Suggester:短语建议器,在term的基础上,会考量多个term之间的关系Completio…

【Android】在安卓中使用 `mobile-ffmpeg` 压缩后的视频,浏览器在线播放提示“没有找到支持的视频格式和 MIME 类型”的解决方案

在安卓中使用 mobile-ffmpeg 压缩后的视频,浏览器在线播放提示“没有找到支持的视频格式和 MIME 类型”的解决方案 你可能在安卓开发中使用了 mobile-ffmpeg 进行视频压缩,而当你尝试在浏览器中在线播放压缩后的视频时,看到提示:…