Hallo, Ich programmiere mit Keil µVision 3. Mein Programm enthält ein paar arrays, bzw ich kann nur ein array machen, weil sonst kommt Address space overflow, wegen den data size limit denk ich, da sich die größe vom code nicht ändert. Program Size: data=142.1 xdata=0 code=4075 Bei: Program Size: data=109.1 xdata=0 code=4075 funktioniert das compelieren noch. Ich will ein paar arrays machen die etwa so aussehen: int hex[13]= {0x85,0x110,0x134,0x183,0x232,0x287,0x342,0x440,0x537,0x702,0x866,0xc26} ; int hex2[13]= {0x84,0x106,0x128,0x168,0x207,0x256,0x305,0x415,0x525,0x689,0x854,0xb89; Brauchen arrays echt so viel platz? Für was sind sie dann gut.... Anscheinend hab ich gehört das es am Keil µVision liegt und man das durch library umschreiben umgehen kann, aber wie das geht weis ich leider nicht. mfg
>Brauchen arrays echt so viel platz? Mit dieser Angabe: >>int hex[13] Kannst du selbst ermitteln, wieviel Platz das Array braucht. Tip: Dreizahlen Int-zahlen als Array brauchen ungefähr genausoviel Platz wie dreizehn Int-Zahlen nicht als Array. Übrigens: Deine Array sind zwölf Elemente lang.
> int hex[13] Jedes der Arrays braucht 4*13 Bytes, jeweils 52 Bytes. Insgesamt also hex[]+hex2[] = 104 Bytes. Initialisierte Arrays wie du sie hast brauchen den Speicherplatz im RAM und im ROM (Programmspeicher). > Brauchen arrays echt so viel platz? Für was sind sie dann gut.... Seltsame Frage... :-o Auch auf eine andere Art wirst du nicht weniger Speicherplatz brauchen. EDIT: > Übrigens: Deine Array sind zwölf Elemente lang. Und brauchen trotzdem Platz für 13 Elemente, weil sie so ([13]) deklariert sind.
Die Antworten sind ja echt hilfreich! Ich kann jetzt zwar nichts mit µVision anfangen und weiß auch nicht um welchen Controller es sich handelt, aber ich gehe mal davon aus, dass es auch in dieser Kombination möglich sein sollte das Array nicht im RAM, sondern im code-segment anzulegen. Hoffe mal das hilft eher ein wenig weiter.
aso ok, ja also das mit den feldern ist echt ein problem, werd ich wohl eine mathematische formel erstellen müssen. danke an alle mfg
Hallo Andy, wenn wir jetzt noch wüssten um welchen µC es sich handelt, könnte man noch weitere Tipps geben. Abhängig vom µC könnte noch der xdata Bereich in Frage kommen...... Gruß Bernd
Also so wie es aussieht hats du ein 8051 Derivate. Was willst du mit dem array eigentlich tun - nur lesen oder zur Laufzeit modifizieren? Ist es nur lesen? -> dann leg es in den CODE als const Hat dein Derivate XDATA? -> dann leg es dorthin
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.