历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2018年12月20日 | stm32 iap 程序跳转进入硬件异常 hex合并

2018-12-20 来源:eefocus

工作多年,常常觉得自己遇到的问题及解决办法,时间稍长,就容易遗忘,且没地方查。再者,经常看别人的文章,受益匪浅,自己也有些经验,却从来没有分享出来,深感惭愧。工作忙不是好借口,今日开始开博,不为别的,只为记录、备忘,以及解决其他人可能遇到的相同问题顺利找到解决办法。


问题:


stm32f103ret6上做的IAP,仿真调试阶段没有遇到过问题,外场使用就发现不能跳转到app,且不同板子、不同isp等都可能出现这种问题


解决:


直觉上是有规律的,一直找规律,经过一天试验、跟踪、bin代码对比,终于发现bin的最后一部分代码没有成功写入flash。


进一步分析iap的bootloader程序,果然最后不够整页的代码写入时指针不对,在已写入的区域,由于有代码且没擦除,不会执行编程操作,对已写入的部分没有影响,但是最后一部分程序丢失,当app启动运行时pc指针0xFFFFFFFF,进入硬件异常,修正指针后正常。其实增加写入代码验证会更利于debug。



附加问题:


1、bootloader、app是采用flash_loader_demo_v2.8.0,分两次写入flash


2、使用mcu isp可以使用网上的一个批处理文件合并之后,下载,也能运行


copy /b .\bootloader.hex+.\app.hex *-hb.hex

效果就是把app.hex拷贝到bootloader后面,写入*-hb.hex。




分别试验2个软件,得出结论:

1、mcu isp是整片擦除,flash_loader是可选


2、mcu isp不验证hex结束,文件内容全部写入flash,flash_loader到第一个hex结束行即停止


so,


目前mcu isp只能烧写*-hb.hex能正常运行,单独烧写一个文件会擦除整个片子内容,在烧写这个文件,对iap来说运行不了。


flash_loader要灵活的多,但是烧写不了*-hb.hex,因为第一个文件结束行能被检测到,不在执行第二个文件的烧写。



度娘hex的格式,其实把bootloader.hex的最后一行去掉,把app.hex拷贝到后面即可,这样两个烧写软件都能够使用。




附hex文件格式说明:


用记事本打开hex,内容是一行一行的,且以冒号开头,16进制:


第一个字节:本行数据长度


第二个字节和第三个字节:本行代码写入flash的相对地址


第四个字节:数据类型


'00' Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录

'01' End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾

'02' Extended Segment Address Record: 用来标识扩展段地址的记录

'03' Start Segment Address Record:开始段地址记录

'04' Extended Linear Address Record: 用来标识扩展线性地址的记录

'05' Start Linear Address Record:开始线性地址记录


最后一个字节:校验码,0x100-所有的字节加起来的最后一个字节


例:


:020000040800F2 第一行

:1000000050FA002009010008490800084B080008C0 第二行

02 本行数据0x02个字节

0000 相对地址0x0000


04 表示数据内容是扩展地址,绝对地址的高16位


0800 编程地址的高字节,左移16位即0x0800 0000构成了基地址


F2 校验码,02+00+00+04+08+00=0x0E 0x100-0x0E=0xF2


:04000005080030EDD2

:00000001FF 最后一行

倒数第二行

05 表示main的入口地址,080030ED


最后一行


01 表示hex文件结束

推荐阅读

史海拾趣

Active-Semi公司的发展小趣事

Active-Semi是一家专注于功率管理芯片和解决方案的领先企业。以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展: Active-Semi成立于2004年,总部位于美国德克萨斯州达拉斯。公司的创始人致力于研发创新的功率管理解决方案,以满足日益增长的电子设备对于高效能耗、高性能和低成本的需求。初期,公司聚焦于LED照明、消费电子和工业应用等领域。

  2. 技术创新与产品推出: Active-Semi在功率管理领域取得了多项技术创新,不断推出具有高性能和高集成度的芯片产品。公司的产品涵盖了DC-DC转换器、AC-DC转换器、LED驱动器、电池管理器等多个子领域,并通过不断创新提高了产品性能和稳定性。

  3. 市场拓展与国际化发展: 随着产品线的扩展和市场认可度的提高,Active-Semi逐步拓展了国内外市场。公司在美国、中国、日本等地设立了销售和技术支持中心,与全球各地的客户建立了合作关系。通过与国际渠道商合作,Active-Semi的产品远销至全球各地,赢得了广泛的市场认可。

  4. 并购与战略合作: 为了加强自身的技术实力和市场地位,Active-Semi进行了一系列的并购和战略合作。其中最重要的是2018年,Active-Semi被斯图尔特半导体(Stewart Semiconductor)收购。这一并购进一步扩大了Active-Semi在功率管理领域的影响力和市场份额。

  5. 持续创新与未来展望: Active-Semi致力于持续创新,不断推出符合市场需求的新产品和解决方案。公司将继续加强技术研发投入,提升产品性能和稳定性,以满足客户在不断变化的市场需求。未来,Active-Semi将继续致力于成为功率管理领域的领先企业,并在全球范围内提供优质的产品和服务。

ANYSOLAR LTD.公司的发展小趣事

ANYSOLAR LTD.的创立源于一次技术突破。创始人李明,一位资深的电子工程师,在一次实验中意外发现了一种新型光伏材料的制备方法。这种材料具有高效的光电转换效率,且成本远低于市场上的同类产品。李明意识到这是一个巨大的商业机会,于是决定辞去工作,创立ANYSOLAR LTD.,专注于这种新型光伏材料的研发和生产。

初创期的ANYSOLAR面临着资金短缺、人才匮乏和市场认可度低等多重挑战。然而,李明凭借对技术的深厚理解和不懈追求,带领团队攻克了一个又一个技术难题,逐步将产品推向市场。通过参加行业展会、与潜在客户建立联系等方式,ANYSOLAR逐渐赢得了市场的认可。

Anaren公司的发展小趣事

ANYSOLAR深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进高端人才,建立完善的研发体系。通过持续的技术创新,ANYSOLAR不断推出性能更优、成本更低的光伏产品,引领着行业的发展潮流。

同时,ANYSOLAR还积极参与行业标准的制定和修订工作,推动整个行业的规范化发展。这些举措不仅提升了ANYSOLAR在行业内的地位,也为公司的长期发展奠定了坚实的基础。

ACT [Advanced Crystal Technology]公司的发展小趣事

ANYSOLAR LTD.的创立源于一次技术突破。创始人李明,一位资深的电子工程师,在一次实验中意外发现了一种新型光伏材料的制备方法。这种材料具有高效的光电转换效率,且成本远低于市场上的同类产品。李明意识到这是一个巨大的商业机会,于是决定辞去工作,创立ANYSOLAR LTD.,专注于这种新型光伏材料的研发和生产。

初创期的ANYSOLAR面临着资金短缺、人才匮乏和市场认可度低等多重挑战。然而,李明凭借对技术的深厚理解和不懈追求,带领团队攻克了一个又一个技术难题,逐步将产品推向市场。通过参加行业展会、与潜在客户建立联系等方式,ANYSOLAR逐渐赢得了市场的认可。

Fischer Connectors公司的发展小趣事

ANYSOLAR LTD.的创立源于一次技术突破。创始人李明,一位资深的电子工程师,在一次实验中意外发现了一种新型光伏材料的制备方法。这种材料具有高效的光电转换效率,且成本远低于市场上的同类产品。李明意识到这是一个巨大的商业机会,于是决定辞去工作,创立ANYSOLAR LTD.,专注于这种新型光伏材料的研发和生产。

初创期的ANYSOLAR面临着资金短缺、人才匮乏和市场认可度低等多重挑战。然而,李明凭借对技术的深厚理解和不懈追求,带领团队攻克了一个又一个技术难题,逐步将产品推向市场。通过参加行业展会、与潜在客户建立联系等方式,ANYSOLAR逐渐赢得了市场的认可。

eLED.com Corp公司的发展小趣事

作为一家致力于LED行业的公司,eLED.com Corp深知LED产品对于节能减排的重要性。因此,公司始终将绿色环保理念贯穿于产品的研发、生产和销售过程中。通过采用环保材料和节能技术,eLED.com Corp的产品不仅具有出色的性能,还具备较低的能耗和较长的使用寿命。此外,公司还积极参与各类环保公益活动,推动LED行业向更加绿色、环保的方向发展。

问答坊 | AI 解惑

若干年后,U盘最可能出现在哪里?

先看看如下的创意,然后看看你能否找到好的地方放U盘,小小的头脑体操一下: …

查看全部问答>

红色飓风:Spartan605试用报告--汇总

试用报告(一) 拿到开发板了, 把试用心得,体会和大家分享一下. 先上张板子的酷图 <验证平台> 硬件的东西验完了,下面对板子进行测试, 简单看了一下U盘中带的资料 其中 \\Driver_and_Tools : 主要是USB转 ...…

查看全部问答>

汇编程序做的各种数制之间的转换

MCS-51单片机十六进制十进制转换汇编源程序2009年03月04日 18:37RW0       equ    0x08RW1       equ    0x09RW2       ...…

查看全部问答>

求助:磁粉式电磁离合器的控制(只有 2 根线)谢谢!

请教: 电机的一个轴插在理合器里 转盘的一个也轴插在理合器里 电机转动 通过离合器带动转盘转动 离合器可以调速(相当于调力的大小 M=F*V) 离合器只有 2 根线, 单片机(AT89C52)来控制它? 是通过什么来控制呢? 这 2 根线,是不是分别是电 ...…

查看全部问答>

【国际知名企业高薪诚聘-hardware PE】-猎头职位-可msn联系:alice007@live.cn

国际知名企业招聘硬件工程师 主要负责处理thinkpad电脑的问题 分析和设计解决方案。 定期与日本的开发团队和中国的厂商去解决未解决的问题。 要求有pc构架的基本知识,高级电气工程师,熟悉电子测试设备,熟悉操作系统和操作系统的调试工具 非 ...…

查看全部问答>

求 ps2鼠标和cpu的连线图!

求 ps2鼠标和cpu的连线图! 小弟过2天就要交毕业设计了,老师非得让我加个图.我的论文题目是基于嵌入式的PS/2鼠标接口设计. 拜托各位大哥大姐帮我下. 小弟不胜感激!在线等图. 把图发上来就行了 再次感谢!…

查看全部问答>

0欧姆电阻的作用

*模拟地和数字地单点接地*       只要是地,最终都要接到一起,然后入大地。如果不接在一起就是\"浮地\",存在压差,容易积累电荷,造成静电。地是参考0电位,所有电压都是参考地得出的,地的标准要一致,故各种地应短接在一起。 ...…

查看全部问答>

请问STM32F系列什么时候出带外部总线的型号?

                                 请问STM32F系列什么时候出带外部总线的型号?…

查看全部问答>

嵌入式学习及工具书籍推荐

       嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。在现在日益信息化的社会中,嵌入式系统已经全面渗透到日常生活的每一个角落,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子 ...…

查看全部问答>

MSP-EXP430FR5739这个板上竟然有三轴加速计

最近论坛团购密集啊!   实惠!! 话说MSP-EXP430FR5739这个板上有三轴加速计,而且是铁电MCU高级啊!前段时间想搞四轴飞行器,可没玩过三轴加速计,这次团购这个板,刚好可以用来了解一下三轴加速计! 再者也可以了解一下铁电MCU 优势 ...…

查看全部问答>