Forum: Mikrocontroller und Digitale Elektronik PIC32MX795F512L Speicherorganisation


von Klatec (Gast)


Lesenswert?

Hallo Zusammen

Ich habe ein Frage zu der Flash Aufteilung, es gibt einen Kernel- und 
Userbereich.
Ich benötige für meine Baugruppe einige Daten für den Hochlauf, bevor 
diese über eine CPU die Kommunikation aufbaut. Diese speichere ich im 
Flash, also ausfallsicher ab (hat bisher gut funktioniert).
Ich bin nun nicht der große Theoretiker und kämpfe mich über Beispiele 
von MicroChip durch die Gegend. Nach dem der Programmcode immer mehr 
gewachsen ist funktioniert nun die Bearbeitung meiner Parameter nicht 
mehr.

Meine Frage, ist der Programmcode nun im Kernelbereich oder auch im 
Userbereich oder ist der Userbereich nur für eine Beschreibung im 
Programmablauf und nicht durch den ICD3.
Bitte. Danke.

Lg.
Johann K.

von Michael H. (morph1)


Lesenswert?

Also die Unterscheidung User/Kernel ist im PIC32 nur vorhanden weil er 
es von der MIPS-Architektur geerbt hat. Steht aber im "Sect. 03 Memory 
Organization.pdf" sehr genau beschrieben.

von Klatec (Gast)


Lesenswert?

Ich habe mich nun den halben Tag mit dem Anlgegen einer User Partition 
beschäfitg, funktioniert aber nicht.

Mit den folgenden Zeilen habe ich bisher den Flash-Bereich angegeben in 
dem ich die Parameter aus dem Programm heraus gespeichert habe.

#define NVM_DEFPARA_PAGE 0xBD008000      //0xBD008000
#define NVM_PAGE_SIZE  128

Mit dem Versuch einen User-Bereich einzurichten bin ich kläglich 
gescheitert.

Kann mir jemand zeigen wie der Code aussehen muss und wo er stehen muss, 
so das sich der Programmteil und die Parameter nicht in die Quere 
kommen.

Bitte. Danke.

Lg.

Johann K.

von Klatec (Gast)


Lesenswert?

Nochmals die bitte um Hilfe. Danke.

von Arc N. (arc)


Lesenswert?

Data EEPROM Emulation for PIC18, PIC24, dsPIC, PIC32
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en538000

Ansonsten sollte das mit entsprechenden Attributen funktionieren:
1
const char aString[] __attribute__((section("aSection"), address(0x89ABCDEF), space("prog"))) = "asdsdfgsdgf";
oder aligned (n) um das passend an einer Flash-Seite auszurichten

von Klatec (Gast)


Lesenswert?

Danke, werde ich versuchen.
frohe Weihnachten und ein gutes 2013.

lg.
Johann K.

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
Noch kein Account? Hier anmelden.