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

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

ID:49948103

大小:1.01 MB

页数:15页

时间:2020-03-04

《基于32位ColdFire构建嵌入式系统》课件Chap10.ppt_第1页
《基于32位ColdFire构建嵌入式系统》课件Chap10.ppt_第2页
《基于32位ColdFire构建嵌入式系统》课件Chap10.ppt_第3页
《基于32位ColdFire构建嵌入式系统》课件Chap10.ppt_第4页
《基于32位ColdFire构建嵌入式系统》课件Chap10.ppt_第5页
资源描述:

《《基于32位ColdFire构建嵌入式系统》课件Chap10.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章Flash在线编程V1.02009.21本章目录Flash存储器概述10.1ColdFireFlash存储器编程方法10.2ColdFireFlash擦写函数的测试工程10.3ColdFireFlash存储器的保护特性和安全性10.4210.1Flash存储器概述1.Flash存储器的特性(1)固有不挥发性。(2)易更新性。(3)成本低、密度高、可靠性好。2.Flash存储器编程的基本概念Flash编程的基本操作有两种:擦除(Erase)将存储单元的内容由二进制的0变成1。写入(Program)。将存储单元的内容由二

2、进制的1变成0。擦除操作包括整体擦除和页擦除。而写入操作是以字为单位进行的。在擦除及写入过程中一般需要高于电源的电压。310.2ColdFireFlash存储器编程方法ColdFireFlash模块框架图410.2.1ColdFireFlash模块寄存器1.FLASH基地址寄存器FLASHBAR(FlashBaseAddressRegister)FLASHBAR定义Flash的基地址、寄存器内容是否有效、权限访问。2.CFM时钟分频寄存器CFMCLKD(CFMClockDividerRegister)CFMCLKD寄存器主要

3、用于对擦除与写入时间的控制。3.CFM模块配置寄存器CFMMCR(CFMModuleConfigurationRegister)CFMMCR寄存器用于配置和控制内部总线接口操作。4.CFM保护寄存器CFMPROT(CFMProtectionRegister)该32位的寄存器每一位控制着MCF52233的一个扇区,此寄存器只有在LOCK位为零的时候才能够设置,相应位为1表示相应的扇区被保护,不可以擦除写入;为0则表示相应的扇区未被保护。10.2ColdFireFlash存储器编程方法510.2.1ColdFireFlash模块

4、寄存器5.CFM安全寄存器CFMSEC(CFMSecurityRegister)该32位的寄存器用于存储Flash的保护字和保护状态。6.CFM用户状态寄存器CFMUSTAT(CFMUserStatusRegister)CFMUSTAT寄存器定义了Flash命令控制器、Flash存储访问、保护及空白检测等状态。7.Flash命令寄存器CFMCMD(CFMCommandRegister)Flash命令寄存器定义了Flash操作的相关命令,复位全为0。10.2ColdFireFlash存储器编程方法610.2.2ColdFire

5、Flash存储器擦除与写入的步骤1.擦除和写入流程的一些公共操作(1)判断是否设置时钟分频,若未分频,则先分频。(2)清除用户状态寄存器CFMUSTAT的保护错误标志位PVIOL和访问错误标志位ACCERR,以免前一次的操作结果干扰本次操作。staticvoidFlash_Init(uint32busclk);//Flash擦/写初始化操作10.2ColdFireFlash存储器编程方法710.2.2ColdFireFlash存储器擦除与写入的步骤2.Flash的擦除(1)设置时钟分频,清相关错误标志位,这些操作已作为擦除和

6、写入流程开始部分的公共操作被封装成子程序Flash_Init,擦除时直接调用即可。(2)定位要擦除的页。向要擦除的页中任意地址写一任意值。(3)向命令寄存器CFMCMD写页擦除命令0x40。(4)向状态寄存器CFMUSTAT的命令缓冲区空中断标志位CBEIF写1,以清零该位来启动命令执行。(5)等待直到命令执行完成,状态寄存器CFMUSTAT的命令完成中断标志位CCIF为1标志命令执行完成。uint8Flash_Page_Erase(uint8page);//擦除指定的页10.2ColdFireFlash存储器编程方法810

7、.2.2ColdFireFlash存储器擦除与写入的步骤3.Flash的写入注意,应该向干净的区域(即没有被写过的区域)写入。(1)设置时钟分频,清相关错误标志位,这些操作已作为擦除和写入流程开始部分的公共操作被封装成子程序Flash_Init,直接调用即可。(2)向指定地址写若干字数据。首先,将源地址的一个字写入目标地址。其次,向命令寄存器CFMCMD载入命令0x20。第三,向状态寄存器CFMUSTAT的命令缓冲区空中断标志位CBEIF写1,以清零该位来启动命令执行。第四,等待直到上一条命令执行完毕,即状态寄存器CFMUS

8、TAT的CBEIF位为1,这时就可以接收下一条命令。最后,如果尚未写完数据,递增源地址和目标地址,转(2)。uint8Flash_Page_Write(uint8page,uint16pstart,uint32*addr_source,uint16N);//从地址addr_source写入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。