历史上的今天
返回首页

历史上的今天

今天是:2025年01月08日(星期三)

正在发生

2020年01月08日 | STM32的启动模式

2020-01-08 来源: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下载还是比较麻烦的。看来以后,还是得多看看原理,再下手,不然埋下的隐患自己都发现不了。

推荐阅读

史海拾趣

Anvo-Systems公司的发展小趣事

随着公司业务的不断扩展,Anvo-Systems开始实施国际化战略。公司先后在亚洲、欧洲和北美等地设立了研发中心和生产基地,以更好地满足不同地区的市场需求。同时,Anvo-Systems积极参与国际电子展会和技术交流活动,与全球同行建立了广泛的合作关系。这一全球化布局不仅提升了公司的竞争力,也为公司的长期发展打开了新的空间。

Cofan Usa Inc公司的发展小趣事

随着全球市场的日益开放和竞争的加剧,Cofan Usa Inc公司开始实施国际化战略。公司在海外设立分支机构和研发中心,积极寻求与国际知名企业的合作机会。通过引进国际先进的技术和管理经验,公司不断提升自身的创新能力和国际化水平。

Eby Company公司的发展小趣事

eBay一直致力于创新和改革,以适应不断变化的市场环境。例如,eBay推出了“新卖家金鹰计划”,旨在通过多项专属服务扶持新卖家拓展全球市场。此外,eBay还不断更新其技术平台,提高交易效率和用户体验。这些创新和改革措施使eBay能够在竞争激烈的电子行业中保持领先地位。

Franz Binder GmbH & Co公司的发展小趣事

eBay积极履行社会责任,参与多项公益活动。例如,在疫情期间,eBay向中国红十字基金会捐赠了人民币100万元,用于支援疫情防控工作。此外,eBay还鼓励卖家和买家参与环保活动,如回收旧电子产品等。这些公益活动不仅展示了eBay的社会责任感,也提高了其品牌形象和用户忠诚度。

请注意,以上故事概要仅基于eBay的历史和关键事件进行了简要描述,并未达到每个故事至少500字的要求。如需更详细的故事内容,请参考相关书籍、新闻报道或官方资料。

弘凯光电(BRIGHTEK)公司的发展小趣事

作为一家有社会责任感的企业,弘凯光电始终致力于环保和可持续发展。公司秉承“质量第一”的方针,不仅注重产品的品质和性能,还积极推广环保理念,致力于生产高质量、环保的LED产品。此外,公司还积极参与社会公益活动,回馈社会,为建设环保节能型社会贡献自己的力量。

以上五个故事,基于弘凯光电在电子行业中的发展历程和公开信息,尽量以事实为依据,避免了主观评价。这些故事展示了弘凯光电在技术创新、市场拓展、社会责任等方面的努力和成就,也反映了公司在电子行业中的崛起和影响力。

Efficient Power Conversion公司的发展小趣事

在追求自身发展的同时,EPC公司也积极寻求与行业内其他企业的合作。通过与全球知名的汽车制造商、通信设备制造商以及消费电子企业建立合作关系,EPC公司将其氮化镓技术广泛应用于各个领域,推动了整个电子行业的发展。同时,EPC公司也积极参与行业标准的制定和推广工作,为行业的健康发展做出了积极贡献。

问答坊 | AI 解惑

寻开关电源设计者

开关电源设计,要求不高, 有一定的模拟和数字电子的设计经验, 有开关电源设计经验,有自主设计或辅助设计的能力。 工作地点:成都 要求全职 联系邮箱:hswqs@yeah.net 联系人:文先生…

查看全部问答>

招聘人员是这样受气的.....

1、需求单来了,发布了,没简历 2、简历来了,能力不合适 3、能力合适的来了,薪资谈判失败 4、薪资谈判成功了——用人部门领导说,恩,先缓缓 5、三催四请之后,用人部门领导说,哎呀,我们这个组织架构变更,现在这个职位划到XXX部门,由XXX ...…

查看全部问答>

VS2008 WINCE

请问我在VS2008里生成的WINCE应用程序.EXE在wince里运行无反应,还有我在我在线调试的时候显示连接正常但是VS2008却点击不了,不知道是什么原因!请大家帮忙解决下。谢谢 …

查看全部问答>

2440官方bsp的DM9000A驱动问题!

最近移植bsp发现wince5.0的DM9000A驱动有问题!现在在这个和大家讨论讨论! 首先dm9000大部分驱动是官方的,下面就是一些细节的研究、我首先讲讲我的平台情况。 1.SD0~SD15  --------   LDATA0~LDATA15  数据线和 ...…

查看全部问答>

uboot和kernel共享内存区域问题!

各位高人! 我现在遇到这样一个问题!lcd驱动在uboot和kernel中使用了不同的buffer,从而导致了在进入kernel中lcd驱动时出现 lcd屏有个短暂的颜色渐变。为了消除这个bug。就想让uboot和kernel使用同一块内存。 1)下面是我的做法:    & ...…

查看全部问答>

求 基于44B0 裸机程序

写了几天都没写出来,还是请教各位大虾吧 基于44B0 的按键中断LED 裸机程序啊?发个给我好吗? 谢谢了 249191508@qq.com …

查看全部问答>

Vxworks下驱动移植问题

linux下的 驱动程序 要移植到Vxworks下一般都需要做什么工作啊?一般的步骤是什么?我是第一次做驱动移植,希望大家回答的能够细致一些。…

查看全部问答>

TPS5430

哪位大神,有木有TPS5430的中文资料啊,709915352@qq.com,发我一份啊!!!!…

查看全部问答>

【解密08】基于51单片机的无线遥控坦克DIY 之 图片欣赏

       前面介绍了很多专业内容,估计大家看的有些不耐烦了,今天换换口味,欣赏一下我们拍摄的照片,之前一直有朋友反映视频看的不是很清楚,很多细节没有看到,今天给大家上几张图,我们也正在翻录新的视频,希望能做的更好 ...…

查看全部问答>

药品温湿度库无线温室湿度监控系统方案

【库房无线温湿度监控方案】 [无线温湿度监控系统] 【无线温湿度传感器】 【医药库房、大型物流存储温湿度远程监控系统】 今现代化建设和国民经济发展迅速。社会对生产环境和生活环境意识的要求也越来越高。人们的日常生活和周围环境的温湿度息 ...…

查看全部问答>