?? flashcard.c.bak
字號(hào):
#include <api.h>
#include <console.h>
#define BYTESPERPAGE 256
#define PAGES 2048
unsigned char ResetFlash(unsigned char *ptr, unsigned char *len)
{
ICC_select_sock(ICC_SOCK_SAM);
if(ICC_memcard_atr(ptr,len, ICC_VOLTAGE_3)==0)
{
Reset_AT45D();
return 1;
}
else
return 0;
}
void ReadFlashData(unsigned long lAddress, unsigned int cLength, unsigned char *cBuffer)
{
int Page, ByteAddress, NOB, i;
unsigned char *pBuffer;
pBuffer = cBuffer;
Page = lAddress / BYTESPERPAGE;
ByteAddress = Page % BYTESPERPAGE;
while(cLength>0)
{
if(ByteAddress+cLength>=BYTESPERPAGE)
{
NOB = BYTESPERPAGE - ByteAddress;
}
else
{
NOB = cLength;
}
while((Read_Status_AT45D()&0x80)==0);
Transfer_AT45D(Page, 0);
while((Read_Status_AT45D()&0x80)==0);
Read_Buffer_AT45D(0, ByteAddress, NOB, pBuffer);
pBuffer += NOB;
Page ++;
if (Page==PAGES)
Page = 0;
ByteAddress = 0;
cLength -= NOB;
}
}
void WriteFlashData(unsigned long lAddress, unsigned int cLength, unsigned char *cBuffer)
{
int Page, ByteAddress, NOB, i;
unsigned char *pBuffer;
pBuffer = cBuffer;
Page = lAddress / BYTESPERPAGE;
ByteAddress = Page % BYTESPERPAGE;
while(cLength>0)
{
if(ByteAddress+cLength>=BYTESPERPAGE)
{
NOB = BYTESPERPAGE - ByteAddress;
}
else
{
NOB = cLength;
}
while((Read_Status_AT45D()&0x80)==0);
Buffer_Write_AT45D(1, ByteAddress, NOB, pBuffer);
while((Read_Status_AT45D()&0x80)==0);
Program_Erase_AT45D(1, Page);
pBuffer += NOB;
Page ++;
if (Page==PAGES)
Page = 0;
ByteAddress = 0;
cLength -= NOB;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -