STM32启动模式及程序下载原理总结
发布日期:2021-11-20 10:17:29
浏览次数:21
分类:技术文章
本文共 996 字,大约阅读时间需要 3 分钟。
STM32启动模式及程序下载原理总结
最近在学习STM32过程中,对其串口实现程序下载的原理不甚了解,查阅网上资料及官方手册后,明朗了不少,总结如下:
要了解其程序下载原理,必须对STM32的启动模式有一定了解。官方参考手册里可以查到,在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式:
以下是正点原给出的解释:-一般情况下如果我们想用用串口下载代码,则必须配置BOOT0为1,BOOT1为 0,而如果想让 STM32 一按复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设置都可以,为了电路设计方便也选择0。
正点原子战舰 STM32F103 专门设计了一键下载电路,通过串口的 DTR 和RTS 信号,来自动配置 BOOT0 和 RST 信号,因此不需要用户来手动切换跳线帽来改变他们的状态,直接串口下载软件自动控制。串口下载程序过程:
1. 用串口下载代码,先配置BOOT0为1,BOOT1为 0,从而进入 ISP 模式,下载代码。(从系统存储器启动,而内嵌的自举程序存放在系统存储区,由ST在生产线上写入,用于通过串行接口对闪存存储器(Flash)进行重新编程.) 2. BOOT0 为 0,BOOT1 随便设置都可以。从Flash启动,执行程序。 补充:因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。 ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。转载地址:https://blog.csdn.net/weixin_43217963/article/details/98352170 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月25日 11时10分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
6重常用的排序算法代码
2019-04-26
VUE CLI 4.x v-for 图片不显示解决方法
2019-04-26
VUE CLI 4.x 打包成APP后白屏解决办法&&打包APP教程
2019-04-26
解决Vue history模式下路由跳转时页面404问题
2019-04-26
Vue项目页面跳转时,窗口上方显示进度条(Vue使用NProgress)
2019-04-26
Vue+axios下载文件
2019-04-26
Element UI table宽度自适应
2019-04-26
Vue引入ECharts图表
2019-04-26
Vue watch监听数据 ECharts异步加载数据
2019-04-26
Vue 3.0引入axios
2019-04-26
网页自动适配 Mac 的 Dark Mode
2019-04-26
The server encountered an unexpected condition that prevented it from fulfilling the request.
2019-04-26
linux安装FastDFS+Nginx
2019-04-26
FastDFS上传文件示例
2019-04-26
Zookeeper集群
2019-04-26
SpringDataJPA入门及四种查询方式
2019-04-26
Spring Cloud Eureka & Spring Cloud Feign
2019-04-26
Spring Cloud Config & Spring Cloud Bus
2019-04-26
微服务容器部署与 jenkins 持续集成
2019-04-26