IAP及其应用以LPC2300为例,讲述IAP功能在实际使用过程0.ppt

IAP及其应用以LPC2300为例,讲述IAP功能在实际使用过程0.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IAP及其应用以LPC2300为例,讲述IAP功能在实际使用过程0

IAP及其应用 以LPC2300为例,讲述IAP功能在实际 使用过程中的应用方法以及相关解决方案 概述 Boot简介 片内Flash存储系统 数据存储解决方案 在线升级解决方案 概述 Boot简介 片内Flash存储系统 数据存储解决方案 在线升级解决方案 概述 概述 Boot简介 片内Flash存储系统 数据存储解决方案 在线升级解决方案 Boot简介 Boot重映射 在系统编程(ISP) 在应用编程(IAP) 在应用编程(IAP) 在应用编程(IAP) 在应用编程(IAP) 在应用编程(IAP) 在应用编程(IAP) 在应用编程(IAP) 在应用编程(IAP) 概述 Boot简介 片内Flash存储系统 数据存储解决方案 在线升级解决方案 概述 Boot简介 片内Flash存储系统 数据存储解决方案 在线升级解决方案 数据存储解决方案 概述 Boot简介 片内Flash存储系统 数据存储解决方案 在线升级解决方案 在线升级解决方案 片内Flash编程步骤 确定系统参数 选择扇区(可选) 擦除扇区(可选) 选择扇区 编程扇区 校验数据(可选) #define IAP_FCCLK 48000 #define IAP_ENTER_ADR 0x7FFFFFF1 uint32 paramin[8]; uint32 paramout[8]; 定义CCLK值大小, 单位为KHz IAP入口参数缓冲区 IAP出口参数缓冲区 IAP入口地址定义 通过在使用IAP代码之前,需要定义一些常量,如系统时钟、IAP函数入口、IAP入口缓冲区和出口缓冲区等。 确定系统参数 片内Flash编程步骤 确定系统参数 选择扇区(可选) 擦除扇区(可选) 选择扇区 编程扇区 校验数据(可选) uint32 SelSector(uint8 sec1,uint8 sec2) { paramin[0] = IAP_SELECTOR; paramin[1] = sec1; paramin[2] = sec2; (*(void(*)())IAP_ENTER_ADR)(paramin,paramout); return(paramout[0]); } 设置扇区选择命令字 设置起始扇区 设置终止扇区 调用IAP服务程序 对某一个扇区执行擦除、写入等操作之前,必须先选择该扇区。但也可以一次选择多个扇区。 选择扇区(可选) 返回操作状态码 片内Flash编程步骤 确定系统参数 选择扇区(可选) 擦除扇区(可选) 选择扇区 编程扇区 校验数据(可选) uint32 EraseSector(uint32 sec1,uint32 sec2) { paramin[0] = IAP_ERASESECTOR; paramin[1] = sec1; paramin[2] = sec2; paramin[3] = IAP_FCCLK; (*(void(*)())IAP_ENTER_ADR)(paramin,paramout); return(paramout[0]); } 设置扇区擦除命令字 设置起始扇区 设置终止扇区 调用IAP服务程序 LPC2300片内Flash在写入数据前需要执行擦除操作。如果目标区域已经被擦除,那么就不必重复擦除,可直接写入数据。擦除操作一次可以擦除多个扇区。 擦除扇区(可选) 返回操作状态码 执行完以上几步后,就可以编程Flash了。执行编程扇区的操作时,IAP函数会将RAM中的数据拷贝到Flash中。 片内Flash编程步骤 确定系统参数 选择扇区(可选) 擦除扇区(可选) 选择扇区 编程扇区 校验数据(可选) uint32 RamToFlash(uint32 dst, uint32 src, uint32 no) { paramin[0] = IAP_RAMTOFLASH; paramin[1] = dst; paramin[2] = src; paramin[3] = no; paramin[4] = IAP_FCCLK; (*(void(*)())IAP_ENTER_ADR)(paramin,paramout); return(paramout[0]); } 设置扇区编程命令字 设置Flash目标地址 设置SRAM源地址 调用IAP服务程序 编程扇区 返回操作状态码 设置复制字节数 256/512/1024/4096 IAP代码还为用户提供了一个数据校验的手段,这样用户就可以不必自己动手来校验

文档评论(0)

ldj215323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档