AVR106 读写Flash程序空间的C函数.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR106 读写Flash程序空间的C函数.pdf

AVR106 读写 Flash程序空间的 C函数 翻译:吕益光 AVR AVR AAVVRR应用笔记 AVR106 Flash C AVR106 Flash C AAVVRR110066 读写 FFllaasshh程序空间的 CC函数 翻译:吕益光 2006 年 6 月 8 日 lvyiguang@163.com 1. 1. 11.. 特性 � 访问闪存的 C 函数 � 字节读取 � 分页读取 � 字节写入 � 分页写入 � 可选电源失效时恢复 � 可以用于任何带有自编程存储器功能的 AVR单片机中 � 使用 Flash存储参数的例程 2. 2. 22.. 简介 近来的 AVR芯片有一个特性称为自编程。这一特性使得 AVR能够在程序运行期间对闪 存重新编程,并且适用于那些需要自升级固件或是在闪存中存储参数的应用。本应用笔记提 供闪存空间访问的 C函数。 8KB程序存储空间的微 控制器 实现 ATmega128 用于存储参数的120KB 数据闪存 图 1 使用闪存部分来存储参数的完整应用举例 3. 3. 33.. 工作原理 本节包含关于 AVR自编程存储的一些基本理论。为了更好的理解自编程的所有特性, 请查阅数据手册或“AVR109Self ProgrammingFlash”应用笔记。 第 1 页 共 9 页 AVR106 读写 Flash程序空间的 C函数 翻译:吕益光 3.1 SPM 3.1 SPM 33..11 使用 SSPPMM 利用存储程序存储器指令(SPM)可以对闪存编程。在具备自编程特性的设备中程序存 储器主要分为两个部分:应用程序闪存区和引导闪存区。 在含有引导模块的设备中,SPM 指令具备对整个闪存空间写入的能力,但它却只能从 引导区执行。从应用程序区执行 SPM 将没有任何作用。在那些没有引导区的小一点的设备 中,SPM 指令是能够从整个存储区执行的。 在闪存向引导区写入的过程中 CPU 总是挂起的。然而,在(闪存)向应用程序区写入 的过程中,大部分的设备还是可以从引导区执行代码(进行读操作)的。值得注意的是在向 应用程序区写入的过程中执行的代码并不再试图对应用程序区进行读操作。如果这一事件 (写入的同时进行读操作)发生,那么整个程序的执行将被中断。 这两个存储区域的大小和位置依赖于设备本身及其合并设置。一些设备具备从整个闪存 空间执行 SPM 指令的能力。 3.2 3.2 33..22 写入过程 闪存是一页一页的被写入的。待写入的数据在被写进闪存以前,先整页的送到页面临时 缓冲区。数据要被写到闪存的哪一地址,是由 Z寄存器和 RAMPZ 寄存器中的内容决定的。 相应的闪存页面将使用临时缓冲区中存储的数据编程,在此以前,该页面必须被擦除。本应 用笔记中写入闪存的函数是按照如下步骤实现的: � 填充临时缓冲区页面 � 擦除闪存页面 � 写入闪存页面 正如您在以上步骤中所看到的一样,如果在一个页面被擦除后的瞬间突然发生复位或掉 电事件的话,就有可能导致数据的丢失。我们可以在软件上采取必要的防范,例如设置非易 失性存储缓冲区等,来避免数据的丢失。应用笔记中的写入函数能够在写入时提供可选的缓 冲区。这些函数在固件区作了进一步的描述。对于那些具有边读边写特性的设备,它们允许 引导区代码边写入边执行,写入函数在写入过程完成后才返回。 3.3 3.3 33..33 寻址 AVR的闪存被设计成 16位的字,这意味着每一个闪存地址能够存储两个字节

文档评论(0)

zhangchao11 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档