历史上的今天
返回首页

历史上的今天

今天是:2025年03月06日(星期四)

正在发生

2019年03月06日 | Stm32 IAP程序编写及用户程序编写

2019-03-06 来源:eefocus

Stm32f10x系列MCU Bootloader 流程

芯片:stm32f103ze


所需软件:SecureCRT (用于使用Ymode协议发送Application文件),其实应该我们自己写个上位机,这里借助SecureCRT来充当我们自己写的应用程序(用于验证Bootloader是否成功)。

keil版本:μVision V5.11.0.0

用途:使用通信接口用于软件的更新(免去拆机繁琐的流程)。


BootLoader其实看上去挺复杂的样子,但也还好~仔细查找网上的资料都有很多介绍,以下为自己做bootloader的过程以及应注意的事项,帮助大家少走弯路~

请先下载我上传的资源: 

http://download.csdn.net/detail/jimoxiaosage/9451290


首先确定自己要做个串口能更新固件的程序出来~,听说名字叫Bootloader,网上也是挺多资料,网上资料找了找,看了看基本了解其流程:在程序起始位置(0x0800 0000)写Bootloader程序,在另一个偏移位置写应用程序(比如0x0800 3000,那么bootloader 的程序空间就只能被限定为0x3000大小,超出了就不行咯)。在Bootloader程序中通过检测标志位(按键按下,或是Flash中的数据等等)来判断是否进行更新。(此处的更新指的是更新用户应用程序区域,即0x0800 3000 之后的flash 数据)通过串口,使用Ymodem协议将要更新的镜像--xxx.bin烧写入Flash,烧写完成后程序跳转到应用程序(0x0800 3000 ),固件更新完成。

 

BootLoader工程Stm32官网上有,当然也可以使用我的(有简单修改过):在这个工程中需要注意的地方:


1.用户程序起始地址:#define ApplicationAddress    0x8003000 。(该地址需要与另一个工程-用户应用程序的起始地址一样,具体看后面)。

2.需要配置烧写时擦除的位置,如图:

 

Stm32 <wbr>IAP程序编写及用户程序编写
  

3.默认程序地址就是0x8000 0000 ,大小需要修改为0x3000,如下图:

 

Stm32 <wbr>IAP程序编写及用户程序编写
 

4.注意串口是否可用,该工程串口引脚PA9,PA10,特别注意时钟是否配置正确(主频72M)否则会出现乱码~~~。

5.附带我修改过的程序流程图,按键就是PA0,


Stm32 <wbr>IAP程序编写及用户程序编写
 

//----------------------------------- 以上 BootLoader 做好了-----------------------------------

下面就需要写个应用程序来验证该BootLoader~~

如下是我的工程需要注意的地方:

1.修改keil配置,将起始地址修改为 0x0800 3000,大小根据自己的flash大小来设定,如图:


Stm32 <wbr>IAP程序编写及用户程序编写
  

2.同样要擦除的Flash区域也要勾选下(不然debug时会把本来写进去的Bootloader擦掉了~)如图:

 

Stm32 <wbr>IAP程序编写及用户程序编写
 

3.由于我们将程序起始地址改成了0x0800 3000,复位时其实仍然是从0x0800 0000开始跑的~所以要在main函数最前面加:NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000); 同时,还需要修改如下定义的值:

#define VECT_TAB_OFFSET                  0x3000

改值原本为0,修改为偏移量。

4.使用keil自带的fromelf 来输出***.bin文件~,这部分网上找的挺多都不能用的,可能跟keil软件版本有关吧,详细问题还是查看keil帮助文档会比较清楚,以下贴上我的设置:


Stm32 <wbr>IAP程序编写及用户程序编写
 

fromelf --bin --output=1s.bin ..\OutPut\Stm32f103Templete.axf,这样编译完成就会出现一个1s.bin的文件咯~

简单看下我的main函数~实际就是个闪灯的程序~(可以把时间修改为500ms,再生成一个500ms.bin文件来验证我们的Bootloader)

//-------------------------------- 以上为用户应用程序部分------------------------------

以上步骤结束后我们会有:

1.Stm3210xIAP   (Bootloader)

2.Stm3210xIapApplication (user application)

3.1s.bin   500ms.bin

4.SecureCRT软件

首先先把1的工程编译,烧到芯片中~,接下来把2的工程编译烧到芯片中~此时如果PA2接个LED灯会看到灯交替闪烁。

接着打开SecureCRT软件,设置好相应波特率,打开串口~,

接着PA0接到地(模拟一个按键按下)再将开发板上电,此时就会进入固件升级,打印相关信息~此时芯片等待Ymodem协议发送文件过来,使用secureCRT软件,send Ymodem,选中我们所需要更新的文件如:1s.bin,烧写完成后会发现LED灯变成每1s交替闪烁了。

可以重复以上过程烧写500ms.bin文件试试~。

 

以上整个过程结束。


推荐阅读

史海拾趣

CT Micro公司的发展小趣事
  1. 创业初期与技术创新

CT Micro公司最初由几位电子工程领域的专家创立,他们看到了微型计算机断层扫描(Micro-CT)技术在电子行业中的巨大潜力。初期,公司面临着资金短缺和技术难题,但他们通过不断研发和创新,成功开发出了一款具有高性价比的Micro-CT设备,迅速获得了市场的认可。

  1. 市场拓展与合作伙伴关系

随着产品的成熟,CT Micro开始积极寻求市场拓展。他们与多家电子制造企业建立了合作关系,为这些企业提供Micro-CT设备的定制服务。通过与这些企业的合作,CT Micro不仅扩大了市场份额,还进一步提升了产品的技术水平和应用范围。

  1. 研发升级与产品迭代

面对日益激烈的市场竞争,CT Micro不断投入研发力量,对Micro-CT设备进行升级和迭代。他们成功推出了多款新型设备,具有更高的分辨率、更快的扫描速度和更低的辐射剂量。这些新产品的推出,进一步巩固了CT Micro在电子行业中的领先地位。

  1. 国际化战略与市场拓展

随着国内市场的饱和,CT Micro开始实施国际化战略。他们积极参与国际展览和研讨会,展示自己的产品和技术实力。同时,他们还在海外设立了销售和服务中心,为国际客户提供更加便捷的服务。通过这些努力,CT Micro成功打开了国际市场的大门。

  1. 社会责任与可持续发展

在快速发展的同时,CT Micro也积极履行社会责任。他们注重环保和可持续发展,采用环保材料和节能技术生产产品。此外,他们还积极参与公益事业,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实基础。

请注意,这些故事框架是虚构的,并不代表CT Micro公司的实际发展情况。如果您需要了解CT Micro公司或类似公司的真实故事,建议您查阅相关公司的官方网站、新闻报道或行业分析报告。

Applied Micro Circuits (MACOM)公司的发展小趣事

MACOM公司上市后,成功募得了充足的资金,使其财务能力得到了显著增强。这使得公司能够有更多的资源进行研发、生产和市场推广,进一步巩固其在电子行业的地位。同时,上市也为MACOM带来了更广泛的投资者关注和市场认可,为其未来的发展提供了有力支持。

Amplitronix LLC公司的发展小趣事

随着公司的发展,Amplitronix LLC逐渐在电子测量仪器领域站稳脚跟。然而,他们并没有满足于现状,而是继续投入研发,寻求技术突破。经过数年的努力,公司成功开发出一种具有颠覆性的新技术,显著提高了测量仪器的精度和稳定性。这一技术突破为公司赢得了更多的客户和市场份额,也为公司的未来发展奠定了坚实的基础。

AF International公司的发展小趣事

在电子行业发展日新月异的背景下,AF International始终坚持技术创新,不断推出新产品、新技术。公司投入大量资金用于研发,引进先进的生产设备和测试仪器,确保产品质量的稳定提升。此外,AF International还积极与高校、科研机构合作,共同开展技术研发项目,推动电子行业的创新发展。正是这些技术创新成果,使得AF International在行业中始终保持领先地位。

台湾丰宾(CapXon)公司的发展小趣事

随着全球环保意识的不断提高,CapXon公司积极响应绿色生产的号召,致力于实现可持续发展。公司采用环保材料和制造工艺,减少生产过程中的污染物排放,降低对环境的影响。同时,CapXon还积极参与各种环保活动和公益事业,为推动电子行业的绿色发展贡献自己的力量。

以上五个故事分别从初创与起步、市场拓展与品牌塑造、技术创新与产业升级、品质管理与生产优化以及绿色生产与可持续发展五个方面,展示了台湾丰宾(CapXon)公司在电子行业发展的历程和成就。这些故事不仅体现了公司的实力和魅力,也展现了公司在推动电子行业进步和可持续发展方面所做的努力和贡献。

Andigilog公司的发展小趣事

台湾丰宾(CapXon)公司创立于1980年,起初是一家专注于电容器研发与生产的小型电子元件制造商。在创始人的带领下,公司凭借对技术的执着追求和对品质的严格把控,逐渐在电子行业中崭露头角。通过不断的技术创新和产品优化,CapXon的电容器产品在市场上获得了良好的口碑,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

10月全国开通手机电视

文章作者:gaosi  文章来源 移动3G网 www.Goes3G.com/(原文链接地址:http://www.goes3g.com/200510/01080627.html)记者昨天从有关渠道获悉,中国移动将在全网范围开通手机电视业务。但据移动内部人士透露,该业务的具体开通日期是在10 ...…

查看全部问答>

诚邀2008波兰国际通讯信息技术和电子博览会

2008波兰国际通讯信息技术和电子博览会 (INFOSYSTEM 2008) 【展会名称】2008波兰国际通讯信息技术和电子博览会 【展会时间】2008年6月9日至11日 【展会地点】波兰波兹南国际展览中心 【展出内容】 1. 电脑周边及软件: 2. 通信网络产品: ...…

查看全部问答>

51AVR单片机学习板

51AVR单片机学习板EE21可以做以下实验: 1、LED流水灯实验 2、LED渐亮渐灭实验 3、8位数码管静态显示 4、8位数码管动态显示 5、独位按键实验 6、矩阵键盘扫描实验 7、LCD1602字符显示 8 、LCD12864汉显 9、LCD12864显示图片 10 ...…

查看全部问答>

要看懂硬件原理图需要哪些知识?

小弟是做嵌入式方向的,由于不是计算机专业,数电模电基础没有。 所以硬件原理图看不懂,这会影响到职业发展,所请问这方面有经验的大侠, 要看懂硬件原理图,进而指导嵌入式方案选型、系统设计和驱动开发,需要哪些方面的知识,有没有哪些书推荐 ...…

查看全部问答>

EVC问题

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt EVC下选择TE2440.SDK和Win32[WCE ARMV4I]Debug出现上面的问题是怎么回事,刚学EVC .EVC跟S3C2440开发板怎么连不起来,要如何做?请高手指点…

查看全部问答>

EVC程序下载到CE上的问题

我自己配置了个OS  在导出了我自己的SDK 然后把我在EVC上写的程序下载进去怎么运行不了啊 说我缺少什么库  怎么回事啊  是不是我在配置的时候哦据没把MFC的支持选择上啊 ? …

查看全部问答>

请问evc中如何快速获取一个大文件的总行数?

文件比较大,怎样才能快速获取它的总行数,总不能一行一行的加吧。请各位高手指教!…

查看全部问答>

奔腾CPU体系结构

我要写一篇关于奔腾CPU组织体系结构的论文,包括: 1、对虚拟存储器管理的支持,对分页分段的发展; 2、保护机制; 3、Cache组织; 4、超标量部件及其工作原理。 请帮忙给一些资料,网址或文件,vido219@163.com 万分感谢!!!!!!!!…

查看全部问答>

M0的一个小问题

1   LPC_SYSCON -> SYSAHBCLKCTRL |=  (1 PIO0_1         =  0x00 ;       /* 配置为管脚GPIO功能       */   3LPC_GPIO0  ...…

查看全部问答>

LM3S811DDLLXXRR笔记之九:IIC实现

LM3S811用IIC的API十分方便,但一定注意顺序搞不好是搞不定的   对于IIC的读写一定要注意:   主机往IIC从模块里写或从IIC模块读出时一定要调下设地址函数,   I2CMasterSlaveAddveset()   另外,尽量用中断,若不用中 ...…

查看全部问答>