flash存储器的使用方法

flash存储器的使用方法

ID:15771029

大小:330.46 KB

页数:5页

时间:2018-08-05

flash存储器的使用方法_第1页
flash存储器的使用方法_第2页
flash存储器的使用方法_第3页
flash存储器的使用方法_第4页
flash存储器的使用方法_第5页
资源描述:

《flash存储器的使用方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、M68HC08Flash存储器编程1编程方法M68HC08具有Flash存储器,它一般用作程序存储器,不能在运行时随时擦除、写入。许多单片机应用场合需要使用掉电不丢失内容的数据存储器,这一般用EEPROM实现。为节省成本,可使用M68HC08的Flash存储器作这种数据的存储器。由于擦除、写入Flash存储器的程序不能位于Flash存储器中,所以必须把该程序放于RAM或ROM中,这种程序应使用特殊的编程方法。一、一般MC68HC908的Flash存储器的在线擦除、编程方法MC68HC908具有Flash编程寄存器(FLCR),它控制Flash存储器的擦除和编程。一般位0为PG

2、M位,编程时置位;位1为ERASE位,擦除时置位;位2为MASS位,用作数据存储器,不应使用(0);位3位HVEN位,执行编程或擦除操作时置位,在FLCR不为零时不能读出Flash存储器(包括执行程序)。M68HC908还有Flash块保护寄存器,它对应于Flash保护区首地址的高位地址线。用户程序必须位于保护区内,而需改写的数据存储区应位于保护区外。注意:有的芯片的该寄存器采用Flash单元,有的采用RAM单元。后者在复位后应写入保护地址。M68HC908的Falsh擦除、编程方法见第二章,这里不再重复。二、GP32等Flash编程方法对于有较大RAM的M68HC908,如

3、GP32、SR12、MR32等,可采取以下编程方法:(1)在用户程序(Flash保护区)内编写、存放Flash的擦除和编程子程序。(2)在对Flash编程前,把擦除子程序从Flash拷贝至RAM中。(3)在对Flash编程前,把将擦除的Flash数据区的内容拷贝至RAM中。它的大小取决于所使用芯片型号,例如GP32擦除时一块大小为128字节。对需改写的单元,应在RAM中进行修改。(4)转至RAM执行控除Flash的子程序,执行完返回主程序(Flash中)。(5)把编程子程序从Flash拷贝至RAM中。(6)转至RAM执行编程子程序,完成把RAM中数据(包括新数据和不改写但已被

4、擦除的数据)写入Flash中。执行完返回主程序,即完成了一次编程操作。三、GP32等Flash的在线擦除、编程程序WBF1EQU$50;WorkingBuffer1WBF2EQU$51;WorkingBuffer2COUNTEQU$52;WriteCounter1~128WTMEEQU$53;WaitTime32MHz:24,16MHz:12TMPEQU$54DBUFEQU$100;DatatobewritentoFlashCBUFEQU$180FLCREQU$FE08FLSPREQU$FF7EFLSHEQU$8000FRGM:SEI;FlashmemoryPGMSubrou

5、tineCLRHCLRXPRGM1:LDAEFLASH,X;EraseFlashCode→RAM:CBUFSTACBUF,XINCXCPX#EFEND-EFLASHBLOPRGM1LDHX#FLSH;EraseAddressMOV#24,WTIME;32MHzJSRCBUF;ExecuteFlasheraseCLRXCLRHPRGM2:LDAWFLASH,X;WriteFlashCode→RAM:CBUFSTACBUF,XINCXCPX#EFLASH-WFLASHBLOPRGM2LDHX#FLSH;ProgrammingaddressMOV#24,WTIME;32MHzMOV

6、#128,COUNT;128BytesJSRCBUF;ExecuteFlashWriteRTSWFLASH:CLRWBF2;Entry:H:XFlashAddressLDACOUNTCMP#64BLSWFLSH0SUB$64STACOUNTLDA#64BRAWFLSH1WFLSH0:CLRAWFLSH1:PSHALDA#1;1→PGMSTAFLCRLDAFLSPR;ReadFlashProtectRegSTA,XBSRP1DL10LDA#9;1→HVENSTAFLCRBSRP1DL10WFLSH2:PSHHPSHXCLRHLDXWBF2LDADBUF,X;ReadDATAPU

7、LXPULHSTA,X;WritetoFlashBSRP1DL30AIX#1INCWBF2DBNZCOUNT,WFLSH2;Loop1Page(1—64Bytes)LDA#8STAFLCRBSRP1DL10LDA#0STAFLCRPULATSTABEQWFLSH3STACOUNT;SecondWriteBRAWFLSH0WFLSH3:RTSP1DL30:MOV#3,WBF1;Delay30sBRAP1DL1P1DL10:MOV#1,WBF1;Delay10sP1DL1:LDAWTIMEP1DL2:DBN

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

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

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