STM32的三种Boot模式差异
三种Boot模式
闪存存储器是用电可bai擦写弄成的Flash存储器,就是U盘,内存卡
系统存储器 指的是存放系统数据的存储区域,类如BIOS
内嵌SRAM是一种内存技术,静态存数据,不用经常用像DRAM那样用电去刷新就能长时间保存数据
主闪存存储器
是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。
系统存储器
这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用得比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序, 这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但这个下载方式需要以下步骤:
- 将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader。
- 最后在BootLoader的帮助下,通过串口下载程序到Flash中。
- 程序下载完成后,又需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动。
内置SRAM
一般用于程序调试,没有程序存储的能力。
基于MDK创建纯汇编语言的STM32工程
1、新建工程,并保存(自己设置工程名)。
2、配置环境,根据自己所买芯片,本文基于STM32F103C8
2.1选择运行环境
ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择即可;
1、CMSIS下选择CORE;
2、Device下Startup,其中包含了启动文件;
2.3添加源文件
鼠标右键单击Source Group 1。
- Asm File (.s) ,创建汇编文件;
- 设置源文件的名称,保存
完成后,会出现如下
3、测试代码
程序代码
AREA MYDATA, DATA
AREA MYCODE, CODE
ENTRY
EXPORT