历史上的今天
返回首页

历史上的今天

今天是:2025年02月19日(星期三)

正在发生

2020年02月19日 | STM32L151 IAP过程记录

2020-02-19 来源:eefocus

研究了2天的STM32系统IAP系统升级,也从网上借鉴了一些资源,这里记录一下也方便大家。


1、IAP说明:IAP,虽然网上有很多解释和介绍,我在这里就简单的理解为在线升级或者在系统编程,意思是不通过JTAG仿真器烧录可以更新系统程序。


2、准备工作:我所使用的是STM32L151C8T6,电路板有一个串口可以和外部连接,系统资源是64K的FLASH,10K的RAM。这里一定要弄清楚,我由于这个FLASH大小弄错了还犯了不小的错误和笑话。


3、IAP方案说明:


IAP系统升级,从字面意思理解你至少要有2个程序,程序1定义成IAP程序,程序2定义成APP程序。IAP程序正常运行,接收串口发来的数据,通过接收的数据判断是否是升级就的APP程序,如果是需要接收的APP升级程序,则接收该APP程序的.bin文件,并写到对应的FLASH地址区域,这里我使用的是FLASH的一半区域,0x08008000,注意64K对应的是0x08010000;


4、先写一个简单的APP程序,烧录在0x08008000区域,并测试运行是否正常,这里使用了一个简单的LED1灯进行指示,LED1指示灯闪烁。


参照例程建立新的工程即可,这里不做新建工程的说明。只说一下对应的在IAR系统中需要配置的几个地方。


A:设置IAR编译输出bin格式的二进制文件

B:设置烧录的FLASH地址和中断起始地址

5、在程序中指定偏移地址

6:通过仿真器验证程序可以正常执行。


7:编写IAP工程


IAP工程相对要麻烦一些,主要包含4个部分内容,串口接收发送程序,FLASH读写程序,IAP跳转程序,状态维护程序,下面一个一个说明。


串口收发程序不做介绍,按照官方例程设置即可,主要是设置接收中断中将上位机发送的升级文件保存到数组中即可。


FLASH读写程序主要涉及FLASH的操作过程,主要是调用库FLASH_WriteData(uint32_t WriteAddress, uint8_t *data, uint32_t num)函数,只要指定好地址和数据以及长度就可以了。注意修改其中的一些和硬件相关的LED状态指示。


还需要做一个标志,通知系统升级程序已经固化到对应的FLASH位置了,接下来就是最重要的IAP跳转程序了。

这里我使用IAP_Flash_UpdateFlag进行判断是否已经固化完升级程序,如果等于0X55就说明固化完成了,接下来就是


跳转到对应的固化地址APPLICATION_ADDRESS  去执行就可以了,注意要关闭中断,并复位系统。其中APPLICATION_ADDRESS  是宏定义的FLASH地址。


#define APPLICATION_ADDRESS   (uint32_t)0x0800F000


在IAP工程中使用了和APP工程不同的LED指示灯指示状态,

至此IAP升级已经测试完成了。


根据自己的需要将对应的地址规划好,控制好升级程序的存储和IAP跳转就行了。

推荐阅读

史海拾趣

API Technologies公司的发展小趣事

API Technologies一直将品质管理作为公司的核心竞争力之一。公司建立了完善的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格的质量控制。同时,公司还注重持续改进和优化生产流程,提高生产效率和产品质量。这些措施使得API Technologies的产品在市场上具有极高的口碑和竞争力。

Broadcom(博通)公司的发展小趣事

随着全球化的深入发展,博通积极调整战略,加强全球布局。公司通过设立研发中心、拓展销售网络等方式,不断提升其在全球市场的竞争力。同时,博通还积极与其他行业领军企业开展战略合作,共同推动电子行业的发展和创新。

这些故事展示了博通在电子行业中的发展历程和成就。从初创时期的艰难起步,到困境中的重生,再到并购扩张和技术创新,博通始终保持着坚韧不拔的精神和追求卓越的态度。正是这样的精神和态度,使博通能够在激烈的市场竞争中脱颖而出,成为电子行业的佼佼者。

Cooper Industries公司的发展小趣事

随着市场需求的不断变化,Cooper Industries不断通过收购来扩大其业务范围和提升技术实力。例如,在2008年,公司宣布收购了三家公司:Sure Power Industries、OMNEX Control Systems和Roam Secure。这三家公司在各自的领域都有着丰富的经验和卓越的技术,收购后极大地增强了Cooper在电力系统管理、无线电远程控制以及文字报警、区域警示系统等领域的能力。这些收购不仅使公司的产品线更加丰富,也为其在全球市场的竞争提供了有力武器。

亿佰特(EBYTE)公司的发展小趣事

亿佰特在技术创新的基础上,积极拓展市场。公司凭借优质的产品和服务,成功打开了国内外市场的大门。产品远销美国、加拿大、德国等50多个国家和地区,覆盖了物联网、消费电子、工控医疗等多个行业。亿佰特通过深入了解市场需求,不断优化产品结构和市场策略,实现了市场的快速扩张。

ATOP_Technologies公司的发展小趣事

随着产品线的不断丰富和技术实力的提升,ATOP Technologies开始将目光投向更广阔的市场。公司积极参与国内外各类行业展会和交流活动,加强与同行和客户的交流与合作。同时,ATOP Technologies还积极开展国际合作,与多个国家的知名企业建立了战略合作关系,共同推动工业自动化领域的发展。

南京中科微公司的发展小趣事

CSM凭借其卓越的技术实力和产品性能,逐渐在市场上获得了广泛认可。公司先后荣获了多项荣誉和奖项,如2021“物联之星”年度评选之“星锐奖”等。这些荣誉不仅是对CSM技术实力和市场地位的肯定,也是对公司未来发展的鞭策和激励。

以上五个故事分别从CSM的创立背景、技术突破、合作模式、重大项目承担和市场认可等方面展现了公司在电子行业中的发展历程和成就。希望这些故事能够为您了解CSM提供有益的参考。

问答坊 | AI 解惑

泰可模块

系列功率模块资料…

查看全部问答>

2407与2812的一些比较,确实写得不错

转贴:来自www.hellodsp.com, 2407与2812的一些比较 昨天晚上有位刚学DSP的朋友问我2407与2812是否差别很大的时候,我只能回答他差别不大。今天,刚好看到这篇文章,便共享之,原文作者为:小申,很不错的工程师。 2407和2812是dsp2000系列性 ...…

查看全部问答>

PCB的MARK点相关设计规范

PCB的MARK点相关设计规范 …

查看全部问答>

哪位大侠能提供casio dt930 条码采集器的编译器 SHC编译器

哪位大侠能提供casio   dt900   条码采集器的编译器 SHC编译器 QQ:12554935 E-Mail:12554935@QQ.com…

查看全部问答>

PB中加入驱动文件.cpp后,如何修改bib文件和reg文件

bib文件如下修改,对不对 MODULES ;  Name         Path                             Memor ...…

查看全部问答>

谁有XSBase255开发板带的光盘,我的丢了,找不到了

谁有XSBase255开发板带的光盘,我的丢了,找不到了。有的发到我的邮箱:  rayforeverster@gmail.com…

查看全部问答>

evc上的应用程序如何传送到嵌入式设备上?

用evc4.0+sp4+pocketpc2003sdk开发的应用程序,现在有实验平台 是北京博创公司的pxa270-s 上面装有wince操作系统 pc机装有activesync软件,网线连接正常,usb线连接正常,在evc下也选择的相应的输出设备,为何提示找不到外设?始终连接不通,不知道 ...…

查看全部问答>

关于飞思卡尔的智能车比赛的一些问题

就是那个寻迹小车,每年的单片机型号是一样的么?如果是一样的,是什么型号的,我想先自己做一个类似于51单片机的最小系统先练习一下飞思卡尔单片机的编程。。。。。。额,如果大家还有什么成功经验、资料什么的麻烦上传一些。。。 万分感谢。。。…

查看全部问答>

请问如果要用msp430 做功率量测?

小弟目前想为作品加一个功率量测的功能  不需要十分精準请问用一个功率量测的IC自己外接周边  或者是  MSP430本身就能很容易的达到这个功能呢?小弟用的是MSP430F449  因为要求在3个月内完成  所以想要挑一个比较好实现的 ...…

查看全部问答>

模电入门问题

大二开始学习模电,现在毕业了,工作了,但感觉还是没有入门,求各位高人指点,模电入门就这么难吗…

查看全部问答>