打印
[技术讨论]

芯片在进行 IAP 操作的过程

[复制链接]
430|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
skyraider|  楼主 | 2024-11-18 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 skyraider 于 2024-11-18 22:07 编辑

搜索“IAP 操作 库”关键字,进行下载; 2) 芯片在进行 IAP 操作的过程中不允许响应外部中断,因此,在进行相关操作时,需要先把总中断关 闭,即 EA=0;待完成 IAP 操作后再恢复总中断开关; 3) IAP 操作语句之后务必要加上至少 8 个 NOP 指令,以保证 IAP 操作完成后可正常执行后续的指令; 4) IAP 操作完成后,需要设置 IAPADE 寄存器返回 Flash ROM 区域; 5) 烧录时,需要在烧录 Option 选项的 IAP Range 选项下设置允许 IAP 操作范围,如果 IAP 操作的地址 不在 IAP 允许操作的范围内,则无法写入数据; 6) APROM 区域数据的写入是 byte 操作,是一个字节一个字节写与读取的,每写/读一个字节需要指定 一个地址; 7) IAP 的擦除和写入流程可以在对应芯片型号的规格书中的“IAP 操作 C 语言例程”进行查看; 8) 允许 IAP 操作的区域选择全 Flash ROM 允许操作有一定的风险,需要用户在软件中做相应的安全处 理措施,如果操作不当可能会造成用户程序被改写!除非用户必需此功能(比如用于远程程序更新等), 否则不建议用户使用; 9) RD8X36/37、RD8X05 系列芯片的 IAP 寿命次数为十万次,RD8G403 系列芯片的 EEPROM 寿命为 十万次,Flash ROM 寿命为一万次,实际产品的应用中,只是需要把仅几个 Bytes 的数据写到存储 器,采用固定地址写入数据会使某些地址过早达到 IAP 寿命次数,因此建议用户可采用分扇区、循环 地址写入的方法进行 IAP 操作,具体的方案可以查看《新定义 RD8G403 系列 MCU 应用指南》 “EEPROM 的使用算法”章节,如需下载此文档请到新定义官网(www. rdsmcu.com)搜索“应用指南” 关键字,进行下载; 10) RD8X36/37、RD8X05 系列的芯片,IAP 写入数据前需要对目标地址所在扇区进行扇区擦除,建议用 户在擦除前做好数据备份,防止擦除过程中掉电而发生旧数据被擦除而新数据未写入的意外情况; 11) RD8X36/37、RD8X05 系列芯片,如果是仿真查看 IAP 数据,需要注意的是进入仿真之前,芯片会重 新烧录一次程序,芯片在烧录程序之前会先将芯片的整个 Flash ROM 区数据擦除,然后再烧录程序, 2 / 3 V1.0 IAP 操作相关注意事项以及常见问题 所以在进入仿真之前 IAP 的数据会被擦除; 2、IAP 扇区擦除流程 RD8X36/37、RD8X05 系列的芯片,在执行 IAP 写操作前需要确保目标地址已被擦除为 0X00,支持扇区 擦除,一个扇区(sector)为 512byte,具体 IAP 扇区擦除例程请参考规格书,IAP 擦除操作流程如下; 3、Flash ROM/EEPROM 超出使用寿命后执行 IAP 操作的结果 RD8X36/37、RD8X05 系列的芯片,Flash ROM、EEPROM 寿命为 10 万次,超过寿命再执行 IAP 写/ 擦除操作的话,数据无法写入成功; RD8G403 系列的芯片,Flash ROM 寿命为 1 万次写入,EEPROM 寿命为 10 万次写入,超过寿命再执 行 IAP 写操作,CPU Hold Time 时间将变为无限长,无法退出 IAP 模式,此时即使 WDT 开启也无法 复位,表现为程序无法继续执行; 可以把需要存 EEPROM 的数据,使用轮询的方式将数据存储到不同的地址,充分发挥 EEPROM 的寿命, 具体的方案可以查看《新定义 RD8G403 系列 MCU 应用指南》“EEPROM 的使用算法”章节,如需下载此 文档请到新定义官网(www. rdsmcu.com)搜索“应用指南”关键字,进行下载。 4、IAP 写入的数据不正确 1) 新定义 RD8X36/37、RD8X05 系列的芯片,IAP 写入数据前需要对目标地址所在扇区进行扇区擦除, 确认是否有擦除目标地址对应的扇区; 2) 确认烧录的 Option 选项中选择的 IAP 允许操作范围是否设置正确,该设置需要与操作的目标地址相 符; 3) IC 通过 IAPADE 寄存器设置 IAP 的拓展地址,即选择 IAP 操作针对 EEPROM 区域还是 Flash ROM 区域,查看设置是否正确; 4) RD8X36/37、RD8X05 系列芯片,如果是仿真查看 IAP 数据掉电是否可以保存,需要注意的是进入仿 真之前,芯片会重新烧录一次程序,芯片在烧录程序之前会先将芯片的整个 Flash ROM 区数据擦除, 然后再烧录程序,所以在进入仿真之前 IAP 的数据会被擦除,仿真看到的数据就是错误的; 5、EEPROM 区域如何烧录数据 编程区域选择: a) 如需 APROM 区域和 EEPROM 区域同时烧录,勾选 APROM 和 EEPROM; 3 / 3 V1.0 IAP 操作相关注意事项以及常见问题 b) 若仅单独烧录 EEPROM 区域,勾选 EEPROM;后续说明以 APROM 和 EEPROM 同时烧录 为例; 1) 若烧入 EEPROM 的代码长度不是 4 的倍数,那么不满 4 的倍数的地址将自动补 0; 2) 分别载入 APROM 和 EEPROM 文件,其中:EEPROM 区域载入的 HEX 文件为 EEPROM 区域 待烧录文件; 3) 文件载入完成,确认代码校验和无误,确认 option 无误; 4) 连接 RDLINK PRO,执行程序烧录的操作。 6、烧录时如何将 EEPROM 中的数据擦除 在烧录软件 RD Programming Tool 勾选 APROM 和 EEPROM 区域,分别载入 APROM 程序和 EEPROM 全部置 0 的 hex 文件,在烧录的时候就可以将 EEPROM 中的数据全部清 0。 7、IAP 操作例程获取 在对应芯片的规格书中对 IAP/EEPROM 操作的章节中,有扇区擦除,IAP 写数据,IAP 读数据的操作例 程可以查看,另外新定义芯片例程可以通过以下路径获取: 1) 可以在新定义的官网(www.rdsmcu.com)首页搜索对应的芯片型号,即可搜索出对应芯片规格书以及 例程; 2) 在 keil 上安装了新定义的 keil_C 插件之后,可以在 keil 的安装目录 keil\C51\RD_KEIL_Setup\DEMO 中找到新定义各型号的例程







使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

109

帖子

0

粉丝