你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于stm32F1启动过程经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 18:52
STM32启动模式
+ a6 I9 c8 [: Q/ y. i- z7 \M3/M4/M7等内核复位后,做的第一件事:1 Z' |6 [- M8 @" [1 R
1.从地址 0x0000 0000 处取出 堆栈指针 MSP 的初始值,该值为栈顶地址2.从地址 0x0000 0004 处取出程序计数器指针 PC 的初始值,该值是复位向量(Reset_Hander)
: @; u& M6 F3 p- b
通过BOOT0和BOOT1两个引脚的输入选择启动模式: K. R' c/ O- E( m. {* B4 J# k
在系统复位后,sysclk的第4个上升沿,BOOT引脚的值将被锁存(锁存后该引脚的值改变不影响已选择模式); E( Q, l9 n# M5 m: ~+ o* ]3 c
) k. l5 [6 s; b- T$ L% q
U4(38()3`0{E30}3{@G28%O.png   \, z; S! M1 v3 W7 f) u. H

8 X  S8 b2 ^! uSTM32三种启动模式对应的存储介质均是芯片内置的,它们是:) P1 f( f/ V! A* n
1.用户闪存 = 芯片内置的Flash。从用户闪存启动,这是正常的工作模式。; H3 n8 P& b+ R' p
2.SRAM = 芯片内置的RAM区,就是内存啦。从内置SRAM启动,这种模式可以用于调试8 {) b' L7 o, B. Z5 x) w
3.系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 从系统存储器启动,这种模式启动的程序功能由厂家设置。5 P" Q# X( f" W, g8 v/ n
! {) s% ], ^4 }. W( d; @, l# o' U
STM32启动过程(以内部flash启动为例), i7 s, E7 |# W$ S' Q$ J$ b$ `
总体概述:  h5 W, b2 j5 h+ b
) {" B. R9 [) t# q. L/ c4 j( ~" w
011d8df70cb84a3b9a294c2d5865b7b2.png
' R8 D! [/ z' `. _6 Q) V
5 `2 |9 k' O- ]启动文件功能. A4 j( {9 j( `+ D2 ^
启动文件由汇编编写,是系统上电复位后第一个执行的程序。+ W1 c  X. A" u, {  O) E
启动文件主要做了以下工作:
. q/ a- C1 u  l1 i' B初始化堆栈指针 SP = _initial_sp (从 0x8000 0000 获取)! o, g/ {; Q. \$ K3 I7 N, u
初始化程序计数器指针 PC = Reset_Handler (从 0x8000 0004 获取)
' _' @4 M% e1 S  ?设置堆和栈的大小 Heap_Size(堆)、Stack_Size(栈)& y9 k) `4 |1 _+ c0 F, k
初始化中断向量表
& U% Y; @& q' o* O7 L: A$ E配置外部 SRAM 作为数据存储器(可选)8 m8 L/ b, R) A, j
配置系统时钟,通过调用 SystemInit 函数(可选)* F& q4 l; ?* }
调用 C 库中的 _main 函数初始化用户堆栈,最终调用 main 函数
! G' ?8 y* l& o! T& v( w5 A8 P( u
  b4 T1 ~% d+ e6 I3 Z- b
启动文件常用汇编指令及说明* o# T( c1 a# h  m
. I- L; A2 X  |, e# y
(8J0XMW2(]ELJ1~]9SU2BOD.png 5 Z! \/ K, E; z
W_T5)296@FI$D{Y2HJ1ELO9.png
1 W6 j3 x$ r5 F- w& a1 d9 o$ \. z, j. `3 W  C. S
————————————————
( b5 R# P. h$ x版权声明:up up day
7 Y! h* Z6 [' p) N! \( y, e如有侵权请联系删除1 J: Z' f  _' Z

' k& U$ |% G& ^: h5 r) J3 j3 I7 A9 k8 x: k+ G

0 i- _9 d8 U2 i! z, D6 T, k. V
4 K& u1 z/ N, r/ i0 R4 h- h
收藏 评论0 发布时间:2023-5-14 18:52

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版