一、启动模式(Boot modes)
阅读:STM32中文参考手册_V10.pdf 查看启动配置(Boot modes)。
在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1)用户闪存 = 芯片内置的Flash。
2)SRAM = 芯片内置的RAM区,就是内存啦。
3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区
域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。
在系统复位后, SYSCLK的第4个上升沿, BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。
在从待机模式退出时, BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后, CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。
因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。 Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。 STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。
根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:
● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问, 0x0000 0000或0x0800 0000。
● 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。(可用于串口下载)
● 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。
注意: 当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之SRAM中。
1 ST-LINK烧写
1.1 ST-LINK烧写的SWD模式
ST-LINK烧写的SWD模式 是ST-LINK烧写的一种方式,只需要4根接线。 分别为VCC,GND,SWCLK,SWDIO;
1.2 ST-LINK烧写的JTAG模式
在JTAG模式下的程序烧写过程中需要进行单独对板子进行供电
2 USB转串口连接线烧写(又称SPI烧写,且使用的串口必须是串口1)
2.1 方法一(该方法是对于开发板的烧写)
①Boot0和Boot1均需要接地;
②USB线必须接USB-232下载口;
③PA9和PA10(PA9和PA10是串口的收发引脚)必须连接USB串口的收发电路;
④需要在烧写软件中选择 DTR的低电平复位,RTS高电平进bootloader
2.2 方法二(该方法是用于USB转串口的模块)
①Boot0和Boot1均需要接地;
②板子上的串口收发引脚需要和USB转串口的收发引脚进行连接;
③需要在烧写软件中选择 DTR的低电平复位,RTS高电平进bootloader
3. 烧写过程中的Boot0和Boot1的接法
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1)用户闪存 = 芯片内置的Flash。
2)SRAM = 芯片内置的RAM区,就是内存啦。
3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
3.1 Main Flash memory
是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序
3.2 System memory
从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader;
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中;
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动
设计资源 培训 开发板 精华推荐
- FMC-ADC01-3-1-0,用于 ADS6442、14 位、4 通道、65 MSPS 模数转换器的 FPGA 夹层卡
- 使用 LTC4162IUFD-L40M 1-8 节、3.2A 降压型开关电池充电器和 PowerPath 的典型应用
- LF33ABDT-TR 3.3V 低压降稳压器的典型应用
- 用于 VIN 和 VDD、5A 同步降压转换器的 NCP3135 双电压轨的典型应用
- 使用 LTC2379CMS-18、18 位、1.6Msps SAR ADC 的典型应用
- NCP508SQ25T1G 50mA、2.5V输出电压低压差稳压器的典型应用
- TDA4863-2、160W PFC 评估板,带有 DCM PFC 控制器和 CoolMOS SPP08N50C3
- IP2325两串锂电15W充电模块
- EVAL-ADAV801EB,用于评估 ADAV801、DVD 可录制音频编解码器的评估板
- AM3G-4805SZ 5V 3 瓦 DC-DC 转换器的典型应用
- 求推荐一款支持四路差分输入,SPI串行输出的高速AD.
- 【大侠们】本科生在学校应加强哪方面的锻炼,才更受青睐
- 辩论一下---8位单片机已过时,16位单片机成不了气候,32位单片机是大势所趋?
- 请教大家一个问题。s3c2440+wince 5.0+摄像头,能实时采集视频,并进行图像处理吗?
- ARM、DSP、FPGA的技术特点和区别
- 东芝光继电器TLP3547小电流导通长时间稳定性
- 关于mega16的T0工作模式的疑问
- EEWORLD大学堂----designing electrical systems vol 1
- 承接硬件控制接口软件的开发。熟悉RS232/RS485,TCP/IP接口技术
- WINCE6移植TD-Modem驱动问题