Hallo,
ich habe ein Projekt übernommen (Programmiersprache C, Compiler C30,
Mplab), bei dem auf einem Pic p24FJ256GB ein EEPROM, mittels der von
Microchip verfügbaren Bibliothek,implementiert wurde.
Nun habe ich ein Problem während des Programmierens.
Ich habe mitbekommen, dass man in dem LinkerScript Platz für den EEPROM
freistellen muss. Leider weiß ich nicht genau wie das geht und die
App-Note hat mir auch nicht weiterhelfen können.
In der Emulationsheader-Datei sind folgende Werte:
// User defined constants
#define DATA_EE_BANKS 1
#define DATA_EE_SIZE 20
#define DATA_EE_TOTAL_SIZE (DATA_EE_BANKS * DATA_EE_SIZE)
#define ERASE 0x4042
#define NUM_DATA_EE_PAGES 5
#define PROGRAM_ROW 0x4001
#define PROGRAM_WORD 0x4003
Im LinkerScript steht:
MEMORY
{
data (a!xr) : ORIGIN = 0x800, LENGTH = 0x4000
reset : ORIGIN = 0x0, LENGTH = 0x4
ivt : ORIGIN = 0x4, LENGTH = 0xFC
aivt : ORIGIN = 0x104, LENGTH = 0xFC
program (xr) : ORIGIN = 0x200, LENGTH = 0x2A9F8
config4 : ORIGIN = 0x2ABF8, LENGTH = 0x2
config3 : ORIGIN = 0x2ABFA, LENGTH = 0x2
config2 : ORIGIN = 0x2ABFC, LENGTH = 0x2
config1 : ORIGIN = 0x2ABFE, LENGTH = 0x2
}
1. Bestimmt "PROGRAM_ROW", bzw. "PROGRAM_WORD" die Position im Speicher?
2. Wenn nein, wie bzw. wo muss ich den Anfang des EEPROMs im Speicher
festlegen?
3. Wie geb ich im LinkerScript den für das EEPROM benötigten
Speicherbereich an?
Hoffe jemand hatte dasselbe Problem bzw. jemand kann mir weiterhelfen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.