Hallo Leute,
Hat schon jemmand ein flashtest fuer diese chips geschrieben oder
irgendwelche beispiele dafür.
Ich habe ein problem dass ich der Flash nur beschreiben kann, aber
löschen geht einfach nicht. Ich gebe die richtige Befehle aber es
scheint was falsch zu sein. Meine "Write" funktion is OK aber die
"Erase" geht nicht.Hier ist den source code:
pSektor = zeiger auf der Sector
FLASH_OFFSET = 0x0
void DeleteSektor_Cp(void)
{
unsigned short *pSektor = (unsigned short*) nFlash_Para[0];
volatile unsigned short* ROM = FLASH_OFFSET;
// Delete sector - 6 cycles
ROM[FLASH_SETUP_ADDR1] = FLASH_SETUP_CODE1;
ROM[FLASH_SETUP_ADDR2] = FLASH_SETUP_CODE2;
ROM[FLASH_SETUP_ADDR1] = FLASH_SETUP_CODE3;
ROM[FLASH_SETUP_ADDR1] = FLASH_SETUP_CODE1;
ROM[FLASH_SETUP_ADDR2] = FLASH_SETUP_CODE2;
*pSektor = FLASH_BLOCK_ERASE;
do{
; /* Reserved for TimeOut */
}while( (((*(unsigned short*)(nFlash_Para[0])) & 0x80) == 0) &&
(((*(unsigned short*)(nFlash_Para[0])) & 0x20) == 0) );
if(((*(unsigned short*)(nFlash_Para[0])) & 0x80) == 0)
{
// *(unsigned short*)(nFlash_Para[0]) = 0xF0; /* Reset Flash */
nFlash_Para[0] = 0; /* Erase failed */
}
else
{
nFlash_Para[0] = 1; /* Erase OK */
}
}
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.