历史上的今天
返回首页

历史上的今天

今天是:2024年11月24日(星期日)

正在发生

2021年11月24日 | STM32 BOOT0和BOOT1对于下载程序的应用

2021-11-24 来源:eefocus

前言

本博文基于STM32F103ZET6和MDK5以及库V3.5.0编写;

本博文以原子开发板为例;

如有不足之处,还请多多指教;

其实本没有必要写这篇文章,因为只要按照开发板配套的教程去做就可以对芯片写入程序即可,而且开发板上往往设计的都有一键下载的相关电路,能够产生DTR和RTS信号,从而将程序直接下载到芯片,对于用户来说,大大多短了下载程序的时间,提高了效率;但是毕竟以后如果要做开发这块的,总不能碰见一个项目就买一个买开发板,然后才能下载程序,这简直有点不可思议,还是要懂得脱离开发板,对一个芯片进行下载程序,从而形成一个完整的系统,这算得上是一个稍微成熟的开发;


STM32开发板下载程序的两种方式

一: 仿真器下载(J-Link,ULink等等)

步骤:

① 给开发版供电(DC5V),插上J-Link;

② 点击MDK工具栏中的Load按键就可将编译好的程序下载到开发板的Flash;

③ 下载好后根据配置可自动运行,也可以不自动运行(通过对下图中的操作控制);

在这里插入图片描述

** 二:** 串口USART1下载(注意,只能是USART1)

步骤:

① 给开发板供电(DC5V),拔掉J-Link,插上串口线;

② 使用FlyMcu软件下载编译好的.Hex文件,搜索串口为开发板硬件串口,一般为COMx,波特率选为115200,其配置如图;(红色箭头处要注意:因为今天我们想通过单纯的串口去下载程序,所以此选项处选择“不使用RTS和DTR”)

在这里插入图片描述

STM32F10x.h的存储器以及启动配置(这个知识作为对今天研究概念的补充)

STM32F10x.h的存储结构看下面这位前辈总结的:

https://blog.csdn.net/Vinfcent/article/details/78921974

BOOT0和BOOT1的不同配置决定的CPU启动模式(备注:“x”代表接高电平低电平都可)

在这里插入图片描述

三种启动地址所对应的内存映射地址:

在这里插入图片描述

图片中数字符号的含义:

1: 主闪存存储器 Flash

2: 系统存储器SYSTEMMEMORY

3: SRAM(掉电丢失);

这个启动模式类似于咱们给电脑换系统的时候,可以选择从机械硬盘,固态,或者U盘启动;

注意:虽然有三种启动模式,但是程序无论是从串口下载还是J-Link下载,最后都是下载到Flash里

针对BOOT0和BOOT1的不同接线方式(高电平,低电平,不接线),开发板的下载情况分析如下图:(“x”代表不接线,“√”代表能成功下载)

在这里插入图片描述

总结:


从图片中可以看出,J-Link下载的程序在勾选“Reset and Run”后直接运行,程序是一定能下载成功的,但是不一定能运行成功,并且,J-Link下载模式下,但凡BOOT0=1,都不能执行代码,为什么?因为J-Link将代码下载到Flash中,而决定启动模式的BOOT0和BOOT1配置为了启动方式不是从FLash开始的,读不到代码;

在串口下载模式下(注意不使用DTR和RTS电路下载),程序同样被写入Flash;

无论是用哪一种方式下载程序,程序存储的位置都在Flash,然而BOOT0和BOOT1决定了程序从何处开始处理(PC指针的初始值被配置成什么);所以如果程序下载好了之后,需要将BOOT0和BOOT1的接线方式配置成使程序从Flash处开始启动即可,例如:BOOT0 = 0,BOOT1=1即可;

推荐阅读

史海拾趣

Exar [Exar Corporation]公司的发展小趣事

进入21世纪后,数字视频应用的兴起为Exar提供了新的发展机遇。为了抓住这一机遇,公司在2000年推出了视频处理器和编解码器产品。这些产品不仅满足了市场对高质量视频处理的需求,也进一步巩固了Exar在通信和视频处理领域的地位。

Asia Electronics Ind Co Ltd公司的发展小趣事

Asia Electronics Ind Co Ltd深知人才是企业发展的核心。因此,公司注重人才培养和团队建设。公司定期举办各类培训活动,提升员工的技能和素质。同时,公司还建立了一套完善的激励机制,鼓励员工积极创新、勇于担当。这些举措有效激发了员工的工作热情和创造力,为公司的发展注入了源源不断的动力。

Clever Little Box公司的发展小趣事

在市场竞争日益激烈的情况下,Clever Little Box意识到,单打独斗很难取得长久的成功。于是,公司开始积极寻求与其他企业的合作,通过共赢的战略选择,实现资源共享、优势互补。这种合作模式不仅帮助公司扩大了市场份额,还提高了公司的品牌知名度和影响力。

EKIT公司的发展小趣事

2023年10月,华为坤灵(HUAWEI eKit)在德国慕尼黑成功举办了分销品牌发布会,这是其在欧洲市场的首个国家级发布活动。通过简化交易流程、打造高效的平台和工具、整合伙伴体系等措施,HUAWEI eKit为德国及欧洲市场的中小企业提供了灵活易用的产品解决方案。同时,HUAWEI eKit还致力于为中小企业市场的各种业务场景开发易买易卖、易装易维、易学易用的分销产品,赢得了市场的广泛认可。

Hantronix公司的发展小趣事

面对电子行业的快速变化,HANBIT Electronics始终保持敏锐的市场洞察力。2025年,公司宣布与一家领先的物联网技术公司达成战略合作,共同开发智能家居解决方案。这一跨界合作不仅为HANBIT Electronics带来了新的增长点,也使其能够借助物联网技术的力量,进一步拓展在智能家居、智慧城市等新兴领域的应用。通过不断探索和尝试,HANBIT Electronics在保持传统业务优势的同时,也为公司的未来发展开辟了新的道路。

Digital View公司的发展小趣事

Digital View公司成立于1995年,当时正值电子显示技术快速发展的时期。公司创始人凭借对数字显示技术的深刻理解和前瞻性的市场洞察力,决定专注于平板数字显示市场连接解决方案的研发和生产。在创业初期,公司面临资金短缺、技术瓶颈等多重困难,但团队凭借坚韧不拔的精神,成功开发出多款具有竞争力的产品,逐渐在市场上获得认可。

问答坊 | AI 解惑

谁有点阵生成软件

我现在找了很久没找到一个点阵生成软件,我现在急需它,如果谁有能帮帮我吗?发我邮箱  lijianhuijgsdx@163.com   QQ535233725.非常感谢!!!!!!…

查看全部问答>

DSP的C语言心得记录-利用CCS分析DSP的时钟运行周期

分别用C语言和汇编语言进行程序设计,计算正弦函数值,并比较代码效率。 1)C语言编程 #include #define NX 180 //最大正弦角度 #define pi 3.14159 short i; double x[NX] //定义输入正弦角度数组(弧度值) double r[NX] //定义输出 ...…

查看全部问答>

ARM的中断处理和SWI参数问题

我现在知道的在ARM里软件中断(SWI call)是用来将模式转换成超级用户模式的(SVC mode) 然后用这两句话可以将SWI的参数储存在R0里面 LDR R0,[LR,#-4] BIC R0,R0, #0xFF000000 因为刚刚学习ARM, 现在我不理解的是这个SWI的参数到底可以用来干什么 ...…

查看全部问答>

求助:VS.NET 2008下WINCE模拟器 需要带网络连接功能

VS.NET 2008不像03提供了WINCE模拟器 求助 刚折腾了一个版本 不带网络功能 即希望在模拟器上可以配置IP PING通 这样可以测试一些访问MSSQL的程序 谢谢 不知道表达清楚了没有……汗…

查看全部问答>

流小驱动SRB.NumberOfPhysicalPages时钟为0

修改DDK中testcap 做的摄像头驱动,想使用DMA得到数据。DDK文档中说SRB的ScatterGatherBuffer就是作为DMA使用的,NumberOfPhysicalPages是其中的元素个数。但是我在生成图像的ImageSynth函数中得到的NumberOfPhysicalPages却始终为0.    ...…

查看全部问答>

NandFlash块大小为16K,如果写一个不足16K的文件进去,是不是要把该块剩下的空间写成0?

NandFlash块大小为16K,如果写一个不足16K的文件进去,是不是要把该块剩下的空间写成0?…

查看全部问答>

求助:WINCE触摸屏校准问题?

利用控制面板中的“校准”,校准后总是不能正常退出。串口打印提示 : M 474,507  507,520  33,13M 2061,1655  2099,1655  38,0Maximum Allowed Error 7: Maximum error 13325 exceeds calibration th ...…

查看全部问答>

如果采用USB<->1394 进行WinDbg调试

目标机是6芯的1394接口,本本只有USB接口,不知该如何设置WinDbg,有知道的DX请告知,谢谢。…

查看全部问答>

智能手机影响汽车信息娱乐

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 苹果公司的iPhone把智能手机从专注于通讯的设备变成了以应用为中心的多用途移动平台,可以用于许多产业之中。据iSuppli公司,其它智能手机平台迅速跟进,纷纷增加了多点触控用户界面、应用开发 ...…

查看全部问答>

求助:zigbee两个测温节点总有一个为0

我设计的无限温度传感网络由一个路由设备和两个温度测量节点组成。两个测温节点的程序应该是一样的吧?我是通过长地址(IEEE地址)来在路由设备上区分两个节点的数据的,部分原代码如下:unsigned int current_temperature1 = 0;unsigned int curre ...…

查看全部问答>