Forum: Mikrocontroller und Digitale Elektronik PIC18F46K20 Linker Problem


von Marc K. (dergruenekobold)


Lesenswert?

Hallo,

ich habe ein Problem mit dem zur Verfügung stehenden Speicher des µC.
Ich habe mein Projekt auf mehrere C-Files aufgeteil zwecks Übersicht. 
Wie ich das Linker Script verändern muss um für eine bestimmte Variable 
mehr Speicherplatzt zu schaffen ist mir bekannt. Mein Problem besteht 
darin, dass ich mehrere lange Variabeln in einer C-File habe. Dadurch 
wird mir der Fehler

Error - section '.idata_font.o' can not fit the section. Section 
'.idata_font.o' length=0x00000174

angezeigt. Verteile ich die Variabeln auf mehrere C-Files funktioniert 
alles.
Jedoch möchte ich sie alle in einer C-File haben. Jede Variable ist 
klein genug um in die Standartgröße von 256 Byte zu passen. Addiere ich 
alle Variabeln sind es mehr als 256 Byte.

Wie erreiche ich, dass alle Variabeln in einer C-File stehen können und 
worin besteht hier das Problem?

MFG Marc

von Erich (Gast)


Lesenswert?

>und worin besteht hier das Problem?
Schwer zu sagen bei deinen unverständlichem Text

Was sind denn
> mehrere lange Variabeln
???

Gruss

von Kein Name (Gast)


Lesenswert?

Ich finde die Frage doch recht verständlich.
Beim mmc18 kannst du mehrere idata und udata Sections innerhalb einer 
Datei anlegen.

#pragma idata idata_buf1
char buf1[200] = "...";
#pragma udata idata_buf2
char buf2[200] = "...";
#pragma idata

von Marc K. (dergruenekobold)


Lesenswert?

Hey,

ja so wird das Problem mit einer Variablen gelöst, welche länger als 256 
Byte ist. Jedoch Ist keine länger. Nur in Summe sind sie länger. Muss 
ich dann dennoch für jede variable ne "idata" anlegen?

von Marc K. (dergruenekobold)


Lesenswert?

Habs gerade ausprobiert und funktioniert. THX

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.