Gast
#630126
Hallo, hat schon jemand Erfahrung bei der Flash-Programmierung der FG461x Devices. Meine Routine läuft wunderbar für alle MSP430 mit einem Flash-Bereich. Beim FG461x habe ich allerdings Probleme den Bereich >= 0x10000 (also den 2. Flashspeicher) zu beschreiben. Hier kurz meine Lösch- und Schreibroutinen: Löschen ======= // SMCLK/10 = 3,99MHz / 10 = 399kHz FCTL2 = FWKEY + FSSEL_2 + FN3 + FN0; FCTL3 = FWKEY; FCTL1 = FWKEY + GMERAS + MERAS; // dummy write Address = (unsigned char *) 0x00FC10; *Address = 0; // wait for ending busy state n = 0; while((FCTL3 & BUSY) != 0 && n < 1000000) n++; Schreiben ========= FCTL3 = FWKEY; FCTL1 = FWKEY + BLKWRT + WRT; for(n=0; n<64; n++) { ActAddress = (unsigned char *) (FlashAddress + n); *ActAddress = Buffer[n]; m = 0; while((FCTL3 & WAIT) == 0 && m < 50000) m++; } m = 0; FCTL1 = FWKEY; while((FCTL3 & BUSY) != 0 && m < 50000) m++; FCTL3 = FWKEY + LOCK; Mein Programm zur Flashprogrammierung wird im RAM ausgeführt. Gruß Frank