ð AT A
S熙吨
( ADVA NCE
在对M通报BULLETIN )
软件功能和示例代码
表7.7
写缓冲器计划
( LLD函数中使用= lld_WriteToBufferCmd , lld_ProgramBufferToFlashCmd )
周期
1
2
3
4
描述
开锁
开锁
写缓冲加载命令
写字数
手术
写
写
写
写
字节地址
基地+ AAAH
基地+ 555H
字地址
基地+ 555H
基地+ 2AAh
数据
00AAh
0055h
0025h
字数(N-1 )H
扇区地址
扇区地址
装入写缓冲器字(N )的数目可以是从1至32个字(1至64字节)。
5〜36
LAST
加载缓冲字N
写缓冲区到Flash
写
写
程序地址,字N
扇区地址
字N
0029h
笔记
1.基=基址。
2.最后写缓冲器程序操作=最后一次循环;根据所写的文字数,总循环数可以是6至
37.
3.为了获得最大的效率,建议将写入缓冲器中加载具有最高数量的单词( N个字)成为可能。
以下是使用写缓存程序功能的C源代码示例。参阅
Spansion公司
底层驱动程序用户指南
www.spansion.com )
关于Spansion闪存的一般信息
存储软件开发的指导方针。
/ *例:写缓冲区编程命令
*/
/ *注:写缓冲区编程限于16个字。 * /
/*
所有的地址被写入到闪存中
*/
/*
一个操作中必须是相同的闪存内
*/
/*
页。一个flash页面始于地址
*/
/*
整除0x20的。
*/
UINT16 * SRC = source_of_data ;
/ *源数据的地址
*/
UINT16 * DST = destination_of_data ;
/ *闪光目的地址
*/
UINT16厕所
= words_to_program -1 ;
/ *字计数(减1)
*/
*(( UINT16 *) BASE_ADDR + 0x555 ) = 0x00AA所;
/ *写解锁周期1
*/
*(( UINT16 *) BASE_ADDR + 0x2AA ) = 0x0055自;
/ *写解锁周期2
*/
*(( UINT16 *) sector_address )
= 0x0025;
/ *写的写缓存加载命令* /
*(( UINT16 *) sector_address )
=厕所;
/ *写的字数(减1)
*/
循环:
* DST = * SRC ; / * ALL DST必须是同一页* / / *写源数据到目标* /
DST ++;
/ *增量目标指针
*/
SRC ++;
/ *增加源指针
*/
如果( WC == 0 ) goto语句确认
/ *完成后字数等于零* /
wc-- ;
/ *递减字数
*/
GOTO循环;
/ *做一遍
*/
确认:
*(( UINT16 *) sector_address )
= 0x0029;
/ *写确认命令
*/
/ *民调完成* /
/ *例:写缓冲器中止复位* /
* ( ( UINT16 * )地址+ 0x555 ) = 0x00AA所;
* ( ( UINT16 * )地址+ 0x2AA ) = 0x0055自;
* ( ( UINT16 * )地址+ 0x555 ) = 0x00F0 ;
/ *写解锁周期1
/ *写解锁周期2
/ *写缓冲器中止复位
*/
*/
*/
2006年11月21日S29GL - P_00_A3
S29GL -P的MirrorBit
TM
快闪族
23