R8C1B单片机的Flash编程擦除挂起功能.docVIP

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

R8C/1B单片机的Flash编程/擦除挂起功能 技术分类: 微处理器与DSP? | 2007-09-11 张玉梅,张世航,瑞萨科技 北京 有限公司   Flash存储器已成为嵌入式系统中数据和程序最主要的载体。但是在对Flash进行编程或擦除的操作过程中,如果单片机需要处理一些紧急的情况 如中断、数据存储等等 ,就需要暂停相对比较消耗时间的Flash编程/擦写过程,优先处理这些紧急情况。这对Flash存储器的工艺水平及控制技术提出了更高的要求。 瑞萨公司推出的R8C/1B单片机采用改进的Flash存储器工艺,大大缩短了编程/擦除挂起的时间,使其能够更加及时地响应中断或进行其他操作。   Flash编程/擦除挂起功能   所谓挂起功能,是指当Flash模块正在执行编程或擦除操作时,CPU改写模式可以暂停当前的Flash操作,将编程或擦除挂起的功能。在编程/擦除挂起的过程中,用户ROM区的内容可通过程序来读取。   瑞萨R8C/TIny单片机在R8C/18以后的产品中 如R8C/1B ,较之以前的产品 如R8C/15 ,Flash存储器在编程/擦除挂起功能上有了很大改进,其具体功能的比较请参见表1,编程/擦除挂起操作时序请参见图1。   由表1可以看出,R8C/1B单片机所采用的Flash模块工艺在以下方面拥有明显的优势。 挂起时间延迟最长为97μs+6个CPU时钟周期,最长的挂起重新启动时间延迟为3μs+4个CPU时钟周期;R8C/15单片机Flash模块只能在擦除时挂起,但改进Flash工艺的R8C/1B单片机在编程时也可以实现挂起功能;擦除时可以编程。   图1为编程/擦除挂起的简单示意图,在编程/擦除开始之后,如果发生了某个中断请求,在等待一段挂起延迟之后,CPU转向中断子程序的处理。中断处理子程序执行之后,Flash存储器继续执行编程或擦除过程,直至操作结束。   Flash编程/擦除挂起功能的实现   ●? EW0模式与EW1模式   CPU改写模式是通过固化在单片机程序存储器中的软件命令对Flash存储器进行编程的形式,适合对单片机进行在应用中编程 IAP 的场合,即能够在不使用Flash编程器,且将单片机安装在电路板的状态下实现对Flash的改写。   CPU改写模式分为擦除/编程0模式 EW0模式 和擦除/编程1模式 EW1模式 。   这两种模式的根本区别在于改写控制程序的执行区域不同。如图2所示,EW0模式中,改写控制程序在Flash存储器以外的区域执行,因此在这种模式下可以改写所有的用户ROM区。EW1模式中,改写控制程序依然存放在用户ROM区的某一个块中,并在此区域执行,因此在这种模式下,除了存有改写控制程序的块以外,其他的用户ROM区都可以被改写。 在执行擦除/编程的过程中,在EW0模式下CPU处于正常运行的状态,而在EW1模式下CPU处于保持状态。   ●? Flash编程/擦除挂起的设定   相关的寄存器   与Flash编程/擦除挂起相关的寄存器是闪存控制寄存器4 FMR4 ,FMR4有6个位均与编程/擦除挂起功能相关,请参见表2。   EW0模式的擦除挂起设定   对于EW0模式转移到擦除挂起时,首先需要将FMR40位置“1” 允许挂起 、FMR41位置“1” 请求擦除挂起 ,然后延迟一段时间 97μs+CPU时钟周期×6 ,在确认FMR46位为“1” 允许读 后才能对用户ROM区进行存取。如果将FMR41位置“0” 重新启动擦除 ,就重新开始自动擦除。设定过程如图3所示。注意,在EW0模式,请将所使用中断的中断向量表和中断程序存储在RAM区中。   EW1模式的擦除挂起设定 对于EW1模式,首先需要将擦除挂起功能设定为有效,即将FMR40位置“1” 允许挂起 ,并预先将需要响应的可屏蔽中断设定为中断允许状态。这样在执行块擦除命令后,如果该中断产生,经过一段时间延迟后 电气特性推荐值为:97μs+CPU时钟周期×6 ,就能执行擦除挂起,并接受中断请求。如果发生中断请求,FMR41位就自动变为“1”,执行擦除挂起。在结束中断处理后,如果自动擦除还没有结束 FMR00位为“0” ,就必须将FMR41位置“0”,重新开始自动擦除。设定过程如图4所示。 在EW1模式下执行擦除指令进行Flash擦除时 典型值为200ms/1K字节块 ,CPU虽处于HOLD状态,但可以接受中断响应,实现分时擦除。利用这个工作原理,下面给出一个R8C/1B单片机的应用实例,利用Timer 定时器 中断和Flash擦除挂起功能实现对擦除时间的估算。   使用TimerX定时1ms,Flash擦除过程中每1ms挂起一次,进入中断处理程序并调整计时变量g_Timers。在擦除结束后,g_Timers所存

文档评论(0)

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

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

1亿VIP精品文档

相关文档