IAP使用方法.ppt

IAP使用方法

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)

1亿VIP精品文档

相关文档