首页 / 行业
IAP编程page0返回失败的问题总结
2021-10-20 10:59:00
最近在支持客户的时候遇到这样一个问题:客户在做自己的二级boot loader,并且在使用LPC54608 IAP功能,编程sector0中的page0时候总是失败(返回0x21错误码),但是编程任何其他page的时候,都没有问题(客户的代码在最后一个sector里,不编程)。
问题乍一看比较诡异,因为只有page0会出问题,对其他page的操作都是没有问题的,并且擦除page/sector也没有问题,只有编程操作会出错。
经过了一段短暂的讨论,最后把问题锁定在了LPC中断向量表的check sum校验机制上:LPC(除比较新的LPC5500系列外)基本都需要在中断向量表的第8个位置上填入前7个中断向量的校验和,关于校验和的具体内容可以参考开篇提到的文章。
在Keil编译出来的.bin文件中,默认并没有自动添加这个校验和,所以每当调用IAP变成page0的时候,IAP程序内部都会检查这个校验和,一旦校验和错误(比如全0) 就会返回失败。
解决方法也很简单,就是在每次编程page0的时候都计算下校验和即可,这里直接给出计算校验和的代码:
adr为编程地址,当adr为0时既编程page0区域,红框内的代码就是计算校验和,并且把校验和填到中断向量表的第8个位置上。
加上这段计算校验和代码后,问题迎刃而解。这个问题普遍存在于除LPC5500系列外几乎所有老的LPC型号上,希望本文章对大家开发LPC MCU有所帮助!
最新内容
手机 |
相关内容
写flash芯片时为什么需要先擦除?
写flash芯片时为什么需要先擦除?,擦除,芯片,充电,初始状态,存储单元,数据,Flash芯片是一种非易失性存储器技术,用于存储数据并实现固消除“间隙”:力敏传感器如何推动新
消除“间隙”:力敏传感器如何推动新颖的HMI设计,传感器,智能手机,交互,交互方式,操作,用户,随着科技的不断发展,人机交互界面(HMI)的设振弦传感器智能化:电子标签模块
振弦传感器智能化:电子标签模块,模块,传感器,操作,连接,安装,控制,mbrs360t3g振弦传感器是一种常用的测量设备,用于检测物体的振动。工业物联网模块应用之砂芯库桁架机
工业物联网模块应用之砂芯库桁架机器人远程无线控制,模块,物联网,控制,操作,安全性,无线通信,砂芯库桁架机器人是一种用于制造业中语音芯片故障的原因简述
语音芯片故障的原因简述,原因,故障,芯片,语音,温度,确保,TS5A3157DCKR语音芯片是一种集成电路,用于处理和识别语音信号。通常由数字什么是可编程只读存储器,可编程只读
什么是可编程只读存储器,可编程只读存储器的基本结构、特点、工作原理、应用、发明过程、故障分析、日常保养及市场前景,可编程只读什么是屏蔽触发器,屏蔽触发器的组成
什么是屏蔽触发器,屏蔽触发器的组成、特点、原理、分类、操作规程及发展趋势,触发器,屏蔽,发展趋势,分类,事件,机制,屏蔽触发器(Shiel什么是密封继电器,密封继电器的基本
什么是密封继电器,密封继电器的基本结构、特点、工作原理、应用、操作方法、主要问题、保养方法及发展历程,继电器,密封,工作原理,