历史上的今天
返回首页

历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2019年09月06日 | STM32的启动模式

2019-09-06 来源:eefocus

刚开始接触STM32,最先遇到的问题就是下载程序。我按照教程,使用串口下载,感觉很简单。但是,最近需要使用LCD12864,就把以前的MSP430上的程序移植了一下,结果我发现了一个奇怪的现象,每次下载完程序后,断电,再上电后,液晶屏就不再显示了。这让我感到无比的头疼,因为我总以为是我的程序有问题,反反复复修改了好多遍,经过几个小时的调试,我最终找到了问题的缘由:那就是启动模式。


STM32不同于51或者430的地方是,它有两个管脚:BOOT0,BOOT1用来控制单片机上电复位后启动的位置。如下图所示:

image.png?imageView2/2/w/550

● 第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆!

● 第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32 中自带的BootLoader就是在这种启动方式中,如果出现程序硬件错误的话可以切换BOOT0/1到该模式下重新烧写Flash即可恢复正常。

● 第三种启动方式是STM32内嵌的SRAM启动。该模式用于调试。


由于我手头上有一个串口转USB模块,索性就拿它来给STM32F103下载程序了。我也没有深入研究启动模式到底是干什么的。这就是造成我后面问题的罪魁祸首。


在系统上电的时候,cpu首先根据这两个脚来确定是哪种模式的启动,然后就是把相应模式的起始地址映射到0地址处,并从0地址处开始执行。


在芯片出厂时,ST烧写了一个bootloader到rom中,也就是system memory。这个bootloader的主要任务就是通过uart1下载程序到内置flash中去。工作流程如下:


1)  Bootloader是在System Memory,这个区域必须通过设置Boot1和Boot0引脚才能启动,正常工作状态下,这部分区域是被隔离开的,自动被绕开,Bootloader绝对不占用任何用户程序的资源。


简单地说:当你要使用ISP烧写数据到Flash时,需要设置Boot1和Boot0启动System Memory中的Bootloader;这时候bootleader会帮助你将程序烧写到Flash中去,烧写完成后,再重新设置Boot1和Boot0启动(将boot1和boot0都置0)Flash中你自己的程序,进入正常操作。


2)STM32中的Bootloader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。

由此可见,使用ISP下载还是比较麻烦的。看来以后,还是得多看看原理,再下手,不然埋下的隐患自己都发现不了。

推荐阅读

史海拾趣

EQCOLOGIC公司的发展小趣事

在电子产品行业,品质是企业生存和发展的关键。EQCOLOGIC公司从成立之初就高度重视品质控制,建立了严格的质量管理体系。公司投入大量资金购买先进的检测设备,确保每一批产品都符合质量要求。同时,EQCOLOGIC还注重员工培训和技能提升,提高员工对品质控制的意识和能力。正是对品质的坚守,让EQCOLOGIC在竞争激烈的市场中赢得了良好的口碑。

Aptiv公司的发展小趣事

作为一家具有社会责任感的企业,Aptiv始终关注社会公益事业。公司积极参与各项社会活动和慈善捐赠,为改善社会环境和提升公众生活质量做出了积极贡献。同时,Aptiv还注重在运营所在城市推动社区发展,通过创造就业岗位、支持教育事业等方式,为当地社会经济的繁荣做出了贡献。

欧密格光电(Amicc)公司的发展小趣事

随着自动驾驶技术的日益成熟,Aptiv开始加快全球布局的步伐。公司不仅在多个国家和地区设立了生产基地和研发中心,还与众多知名汽车厂商建立了紧密的合作关系。通过提供先进的自动驾驶解决方案和技术支持,Aptiv成功赢得了众多客户的信赖和认可,进一步扩大了在全球市场的份额。

Dfx公司的发展小趣事

随着汽车电子化程度的不断提高,某汽车制造商面临着如何在极端环境下保证汽车电子产品稳定性的挑战。通过DFX的设计理念,该公司对汽车电子产品的设计进行了全面优化,包括选用耐高温、抗腐蚀的材料、优化电路布局和散热设计等。这些改进措施显著提高了汽车电子产品的可靠性和耐久性,确保了汽车在恶劣环境下的正常运行。

无锡友达公司的发展小趣事

随着产品性能的不断提升和市场需求的扩大,无锡友达开始积极拓展国内外市场。公司的产品不仅覆盖国内二十多个省、市,还远销欧美、中东、港澳台等国家和地区。通过与国际知名企业的合作,无锡友达不断提升自身的品牌影响力,逐渐在全球电子行业中占据一席之地。

Fluke公司的发展小趣事

无锡友达注重企业文化建设和团队建设,致力于为员工创造一个良好的工作环境和发展空间。公司设有完善的培训及考核晋升制度,员工上升空间广阔。同时,无锡友达还积极与省内各大高校合作,建立产学研基地,培养出一二级工程师50余名。这些优秀的人才为公司的发展提供了有力的人才保障。

请注意,以上故事均为根据公开信息概括的框架性内容,具体细节可能因实际情况而有所不同。

问答坊 | AI 解惑

WINCE图像

我想将一个HBITMAP另存为一个GIF或者JPG格式的文件,在WINCE上能实现吗?好像WINCE的系统是16位的,XP系统是32位的,这有什么驱别吗?有哪位朋友有实现的方法呀?…

查看全部问答>

关于如何学习嵌入式 高手 们进

大家好,我是一名大三的学生,学的是嵌入式方向的,但我们现在才学嵌入式操作系统,都TMD还是理论,学了等于没学,就上学期还学了个汇编,现在一学期都快过完了,感觉什么关于嵌入式方面的都没学到,如果靠下学期再来学点东西,以后出去就别想混了 ...…

查看全部问答>

wince+S3C2440功耗问题

用核心板做一款机器,最后做电源管理才发现PWREN给悬空了,且VDDi,VDDiarm和VDDalive一起供电,休眠省电基本不用想了,现在我想仅靠降低CLOCK时钟降低功耗,比如进入SLOW模式,能将2440电流降低到多少?哪位试验过? 另外在wince系统运行时候转换n ...…

查看全部问答>

100分 关于一个程序流程的问题

请教各位帮忙单步跟踪一下下面这个程序 #include   \"stdafx.h\"      #include         #include         using   namespace  &n ...…

查看全部问答>

***IPCamera嵌入式开发合作,有意向者请进***

本公司(知名国企)正在寻求IPCamera(网络摄像机)的技术合作,包括嵌入式开发+硬件设计、中心 管理平台开发。有特色的产品,可提供整机、主板,或者能提供优秀的硬件方案的亦可。     合作方式多种,可技术转让、兼职或者全职。 &nb ...…

查看全部问答>

谁有STM单片机的中文汇编资料,请分享一下

                                 在官方网上找到了一个英文的,看的真累,那位大虾翻译一下,分享出来.…

查看全部问答>

USB口防真器程序编译的问题

程序先前一直没问题,后来改程序又加了几条语句,在编译过程中就有一个错误:Code size limit exceeded(4096 code bytes)for this version of the compiler 4212bytes of CODE memory 10bytes of CONST memory(+4bytes shared) 544bytes of DATA me ...…

查看全部问答>