Chap10《基于32位ColdFire构建嵌入式系统》课件.ppt

Chap10《基于32位ColdFire构建嵌入式系统》课件.ppt

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

第10章 Flash在线编程 V1.0 2009.2 * 本章目录 Flash存储器概述 10.1 ColdFire Flash存储器编程方法 10.2 ColdFire Flash擦写函数的测试工程 10.3 ColdFire Flash存储器的保护特性和安全性 10.4 * 10.1 Flash存储器概述 1.Flash存储器的特性 (1)固有不挥发性。 (2)易更新性。 (3)成本低、密度高、可靠性好。 2.Flash存储器编程的基本概念 Flash编程的基本操作有两种: 擦除(Erase) 将存储单元的内容由二进制的0变成1。 写入(Program)。 将存储单元的内容由二进制的1变成0。擦除操作包括整体擦除和页擦除。而写入操作是以字为单位进行的。在擦除及写入过程中一般需要高于电源的电压。 * 10.2 ColdFire Flash存储器编程方法 ColdFire Flash 模块框架图 * 10.2.1 ColdFire Flash模块寄存器 1.FLASH基地址寄存器FLASHBAR(Flash Base Address Register) FLASHBAR定义Flash的基地址、寄存器内容是否有效、权限访问。 2.CFM时钟分频寄存器CFMCLKD(CFM Clock Divider Register) CFMCLKD寄存器主要用于对擦除与写入时间的控制。 3.CFM模块配置寄存器CFMMCR(CFM Module Configuration Register) CFMMCR寄存器用于配置和控制内部总线接口操作。 4.CFM保护寄存器CFMPROT(CFM Protection Register) 该32位的寄存器每一位控制着MCF52233的一个扇区,此寄存器只有在LOCK位为零的时候才能够设置,相应位为1表示相应的扇区被保护,不可以擦除写入;为0则表示相应的扇区未被保护。 10.2 ColdFire Flash存储器编程方法 * 10.2.1 ColdFire Flash模块寄存器 5.CFM安全寄存器CFMSEC(CFM Security Register) 该32位的寄存器用于存储Flash的保护字和保护状态。 6.CFM用户状态寄存器CFMUSTAT(CFM User Status Register) CFMUSTAT寄存器定义了Flash命令控制器、Flash存储访问、保护及空白检测等状态。 7.Flash命令寄存器CFMCMD(CFM Command Register) Flash命令寄存器定义了Flash操作的相关命令,复位全为0。 10.2 ColdFire Flash存储器编程方法 * 10.2.2 ColdFire Flash存储器擦除与写入的步骤 1.擦除和写入流程的一些公共操作 (1)判断是否设置时钟分频,若未分频,则先分频。 (2)清除用户状态寄存器CFMUSTAT的保护错误标志位PVIOL和访问错误标志位ACCERR,以免前一次的操作结果干扰本次操作。 static void Flash_Init(uint32 busclk); //Flash擦/写初始化操作 10.2 ColdFire Flash存储器编程方法 * 10.2.2 ColdFire Flash存储器擦除与写入的步骤 2.Flash的擦除 (1)设置时钟分频,清相关错误标志位,这些操作已作为擦除和写入流程开始部分的公共操作被封装成子程序Flash_Init,擦除时直接调用即可。 (2)定位要擦除的页。向要擦除的页中任意地址写一任意值。 (3)向命令寄存器CFMCMD写页擦除命令0x40。 (4)向状态寄存器CFMUSTAT的命令缓冲区空中断标志位CBEIF写1,以清零该位来启动命令执行。 (5)等待直到命令执行完成,状态寄存器CFMUSTAT的命令完成中断标志位CCIF为1标志命令执行完成。 uint8 Flash_Page_Erase(uint8 page); //擦除指定的页 10.2 ColdFire Flash存储器编程方法 * 10.2.2 ColdFire Flash存储器擦除与写入的步骤 3.Flash的写入 注意,应该向干净的区域(即没有被写过的区域)写入。 (1)设置时钟分频,清相关错误标志位,这些操作已作为擦除和写入流程开始部分的公共操作被封装成子程序Flash_Init,直接调用即可。 (2)向指定地址写若干字数据。 首先,将源地址的一个字写入目标地址。 其次,向命令寄存器CFMCMD载入命令0x20。 第三,向状态寄存器CFMUSTAT的命令缓冲区空中断标志位CBEIF写1,以清零该位

文档评论(0)

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

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

1亿VIP精品文档

相关文档