搜索
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F0] STM32知识点分享+STM32F0的启动模式

[复制链接]
2228|5
 楼主 | 2017-9-18 01:42 | 显示全部楼层 |阅读模式
本帖最后由 xscc 于 2017-9-18 01:43 编辑

     STM32F0系列Cortex控制器,和其他ARM架构一样,提供了BOOT0和BOOT1两个管脚用于启动选择。
      在芯片(上电)复位时,BOOT0和BOOT1两个管脚的状态将决定芯片从何处启动。
1. BOOT1=*, BOOT0=0 从用户闪存启动,这是正常的工作模式(此时通常BOOT1也接0)。
2. BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置(在stm32中称为下载模式)。(如用串口下载的时候就接成这样,此时系统的功能就是将代码写入用户闪存,下载完又得接成正常工作模式才能正常使用)(用于串口ISP)ISP的英文是Internet Service Provider,翻译为互联网服务提供商
3. BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。

http://www.stmcu.com.cn/Product/pro_detail/cat_code/STM32F0/family/81/sub_family/123/layout/product
STM32F0.jpg

STM32F0三种启动模式对应的存储介质均是芯片内置的,它们是:
1)用户闪存 = 芯片内置的Flash。
2)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader(就是在操作系统内核运行之前运行的一段小程序),就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦
3)SRAM = 芯片内置的RAM区,就是内存啦。除,即它是一个ROM区。


| 2017-9-18 09:23 | 显示全部楼层
在使用bootloader+APP 结构时。
对于没有VTOR设置中断向量的早期版本,一般都是拷贝中断向量到SRAM中。

但本来这类IC的RAM就不大,是否可以在ram的固定地址设置一个 flag,
中断入口还是放在FLASH的0地址,当ram中的flag合法时,自动读取APP中的ISR地址去执行。

这样感觉一下子就省了好几百字节,缺点是bootloader中要对所有的ISR放置入口,同时要做一个判断。
因为一般在bootloader都不会放完整的中断向量表,只放必须用的几个,甚至尽量不在bootloader中使用中断。

使用特权

评论回复
| 2017-9-18 09:29 | 显示全部楼层
aozima 发表于 2017-9-18 09:23
在使用bootloader+APP 结构时。
对于没有VTOR设置中断向量的早期版本,一般都是拷贝中断向量到SRAM中。

使用特权

评论回复
| 2017-9-22 09:59 | 显示全部楼层
本帖最后由 lihui567 于 2017-9-22 10:00 编辑

我们再工作中都是选择第一种,两个都接地了,都是从flash启动?第二种模式不太懂,怎么涉及到操作系统啊

使用特权

评论回复
| 2017-9-22 16:43 | 显示全部楼层
正常都是设置为0

使用特权

评论回复
| 2017-9-22 16:50 | 显示全部楼层
启动模式正常都是选择内存启动。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表