STM32启动解析

启动方式对的不同下载模式

STM32可以通过BOOT引脚的配置,来选择不同的启动模式------对应不同的下载方式。
在这里插入图片描述
仿真器下载—— 内部FLASH的启动方式
串口下载 —— 系统存储器的启动方式

内部SRAM一般不用,不讲

启动过程

以内部FLASH的启动方式为例:
启动文件用汇编编写,是系统上电复位后第一个执行的程序。启动文件主要做了以下工作:
在这里插入图片描述
当芯片上电后,会读取0x00000000 地址的值赋值给栈指针 MSP,读取0x00000004 地址的值赋值给程序指针 PC。但因为采样到 BOOT0 引脚为低电平时,0x000000000x00000004 地址被映射到内部 FLASH 的首地址 0x08000000 和 0x08000004。完成这两个操作后,内核就可以开始从 PC 指向的地址中读取指令执行了。
在.map文件里可以看到中断向量表的地址就是0x08000000 。
因为0x08000004地址存放的是
0x08000004存放的就是Reset_Handler函数的地址,重新就会从Reset_Handler函数开始执行。在这里插入图片描述
可以看到,在Reset_Handler函数里完成了SystemInit函数(系统时钟)的调用,以及调用main函数(用户程序)。
在这里插入图片描述

相关推荐

  1. stm32 I2C结构体

    2023-12-26 14:30:05       39 阅读
  2. STM32 | 看门狗+RTC源码

    2023-12-26 14:30:05       24 阅读
  3. Flutter 启动流程

    2023-12-26 14:30:05       45 阅读
  4. 探秘STM32MDK:编译过程与文件类型

    2023-12-26 14:30:05       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 14:30:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 14:30:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 14:30:05       82 阅读
  4. Python语言-面向对象

    2023-12-26 14:30:05       91 阅读

热门阅读

  1. 使用代码生成器生成代码 mybatis-plus-generator

    2023-12-26 14:30:05       64 阅读
  2. Hermite矩阵

    2023-12-26 14:30:05       41 阅读
  3. rk3568 Android UVC

    2023-12-26 14:30:05       72 阅读
  4. 嵌入式linux开发——stm32mp1完成视觉检测(一)

    2023-12-26 14:30:05       59 阅读
  5. 2024 十大AI预测

    2023-12-26 14:30:05       58 阅读
  6. Cassandra入门试用

    2023-12-26 14:30:05       56 阅读
  7. 《微信小程序开发从入门到实战》学习六十三

    2023-12-26 14:30:05       57 阅读
  8. redis相关问题

    2023-12-26 14:30:05       50 阅读