STM32个人学习笔记(HAL库)-2023.10.05

第0章、序章

MAP文件浅析

.o:可重定向对象文件,每个.c/.s文件都对应一个.o文件,由.c和.s生成

.axf:可执行对象文件,由.o文件链接生成,仿真的时候需要用到此文件

.hex:INTEL Hex格式文件,用于下载到MCU运行,由.axf转换而来

.map:连接器生成的列表文件,对分析程序存储占用情况非常有用

其他:.crf、.d、.dep、.lnp、.lst、.htm、.build_log.htm等一般用不到

MAP文件的概念和作用

MAP文件是MDK编译代码后,产生的集程序、数据及IO空间的一种映射列表文件,简单说就是包括了:各种.c文件、函数、符号等的地址、大小、引用关系等信息

MAP的文件组成:

STM32的启动模式

M3/M4/M7等内核复位后,做的第一件事:

1,从地址 0x0000 0000 处取出堆栈指针 MSP 的初始值,该值就是栈顶地址

2,从地址 0x0000 0004 处取出程序计数器指针 PC 的初始值,该值是复位向量

在系统复位后,SYSCLK的第四个上升沿,BOOT引脚的值将被锁存

启动模式选择引脚

启动模式

0x00000000

映射地址

0x00000004

映射地址

BOOT1

BOOT0

x

0

主闪存存储器

0x08000000

0x08000004

0

1

系统存储器

0x1FFFF000

0x1FFFF004

1

1

内置SRAM

0x20000000

0x20000004

  STM32启动过程:

1、初始化MSP-从0x0800 0000获取

2、初始化PC-从0x0800 0004获取

3、设置堆栈大小-Heap_Size(堆)、Stack_Size(栈)

4、初始化中断向量表-__Vectors定义-中断向量表

5、调用初始化函数-可选,如调用:SystemInit函数

6、调用__main-标准C库函数,执行一系列设置,最终调用main函数

Reset_Handler函数:调用该函数才能最终到用户的main函数中。

堆栈简介:

图解STM32的启动过程: 

MSP指针会自动+1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值