『引脚』敢问路在何方,STM32迈出的第一步,却注定了它非凡的一生
敢问路在何方 , 路在脚下 。。。STM32启动运行的过程就像人的一生 。人生的第一步可以有很多选择 , 而STM32运行的第一步却已经被限制在了三种 , 没错 , 这三种就是它的启动方式 。
文章图片
文章图片
STM32如何选择启动方式
在了解STM32微处理的启动方式这个问题之前 , 我们首先要弄清楚STM32微处理的存储结构 。我们以STM32L系列微处理中的一款为例 , 可以看到存储器结构图中从0x0000 0000到0Xffff ffff地址的分布情况 。而处理器的启动只会从图中三个箭头标注的其中之一的地方进行启动 , 这个三个地方分别是Flash system memory , Systerm memory和SRAM 。
文章图片
文章图片
图1 STM32的存储器结构
下面我们来详细介绍一下这三个存储区域:
(一) Flash system memory:故名思议 , 既然是Flash, 那就是属于ROM的一种 , 即数据断电情况下是可以保存的 , 类似于我们常用的NANDFlash , NORFlash等等 。我们最终产品的应用程序固件也都是烧写口下载到这个区域并进行运行的 。
(二) System memory:系统存储区 , ST公司在生产芯片的过程中会将嵌入式的启动代码固件下载到这个区域 , 用户可以通过USART1,USART2,SPI1或者SPI2来重新烧写第一部分中Flash system memory中的程序 。这个过程也可以被称作是自举 , System memory的固件程序也被称作是自举程序 , ST公司为不同的STM32的子产品分别烧写了不同版本的自举程序 。
【『引脚』敢问路在何方,STM32迈出的第一步,却注定了它非凡的一生】下图是USART1接口 , USART2接口与自举程序进行通讯 , 并将我们用户应用程序下载到Flash system memory的示例:
文章图片
文章图片
图2 通过自举程序将应用程序下载到Flash
系统复位以后 , 对时钟 , GPIO , 指令看门狗 , systick分别进行初始化 , 自举程序会循环检测USART1和USART2接口 , 当其中一个接口接收到0x7F数据后 , 禁止所有中断源并配置相对应的接口 , 等待上位机发出自举程序命令 。
(三) SRAM:SRAM一般很小 , 只有几K字节的大小 , 且掉电会丢失 , 所以不能存放很大的程序 , 只能临时运行比较小的程序进行在线调试仿真使用 。当然了 , 它也有它的优点 , 那就是运行速度特别快 , 因为CPU可以通过系统总线或者I-Code/D-Code总线直接访问SRAM 。
上面介绍了三种启动方式一般用于什么情况以及该如何选择 , 那下面介绍具体配置成其中一种方式 。其实也非常简单 , 就是把BOOT0引脚和BOOT1引脚进行组合即可 。
文章图片
文章图片
图3 STM32启动方式的选择
只要将BOOT0引脚接低电平 , BOOT1引脚无论为什么电平 , 都会从Flash system memory启动;当BOOT0引脚接高电平 , BOOT1引脚接低电平时 , 会从System memory启动;当BOOT0引脚接高电平 , BOOT1引脚接高电平时 , 会从SRAM启动 。
我们做产品 , 最终的代码都是存储在Flash system memory中的 , 当系统上电复位后 , 会在systick时钟的第四个上升沿读取BOOT0和BOOT1的高低电平 , 来选择期望的启动模式 。对于低功耗系列芯片从待机模式退出后也会重新采样这两个引脚的高低电平 。
推荐阅读
- 【社区】疫情过后,被催熟的社区团购将走向何方?
- 小米,电视:电视机市场量价齐跌,国产电视路在何方?
- 月球■水熊虫是何方神圣?竟有可能在月球上生存?
- 『上观新闻』腾讯阿里之后,B 站再获战略投资人入股,来自何方占比多少?
- 说一说手机■性价比之王争霸!OV接连发力,小米路在何方?
- 电商■2020,生鲜电商巨头之战走向何方丨36氪新风向
- 「广告」智能电视开机广告315前一键叫停,24亿广告费流向何方?
- ##国产MCU的路在何方?
- [三星S20]这款“哒哒哒”手机到底是何方神圣?网友评论疑似揭发真相
