hallo leute, ich such mich hier dumm und dämlich ... man kommt irgendwie vom hundertsten ins tausendste ... mein problem: speicherplatz! ich hab ein rudel char arrays (da sind befehle für peripherie drin), die ändern sich nicht. daher ist es ja quatsch die im ram abzulegen. deswegen hätte ich die gern im eeprom oder programmspeicher. wie krieg ich das hin? sprut hilft mir da auch nicht weiter, da steht nur assemblerzeug zu eeprom, und im datasheet find ich auch nix. landen const variablen im flash? muss ich die in nem header file definieren? danke schonmal
>landen const variablen im flash?
Nö. Aber const rom.
also z.b.
1 | const rom unsigned char myarray[2] = {0x00,0xff}; |
?
>also z.b. >const rom unsigned char myarray[2] = {0x00,0xff}; Nein, vergiss mein Gequatsche von vorhin. rom kennt der C30 nicht. Das kennt nur der C18. Also versuchs nur mit const.
Oder versuch's mit dem Handbuch. Da steht das garantiert drin.
const __attribute__((space(auto_psv))) unsigned char xyz;
ah ok, wenn ich direkt nach '__attribute__((space(auto_psv)))' im C30 handbuch suche find ichs ... aber da kommt doch jemand ohne pic erfahrung nich drauf, dass das kapitel: "Defining Data for Managed PSV Access" was mit "variablen im programmspeicher ablegen" zu tun hat ... ich glaub, ich seh trotzdem grade noch nicht so ganz durch ... kann ich darauf dann ganz normal zugreifen? also:
1 | //konstantes array definieren:
|
2 | const __attribute__((space(auto_psv))) unsigned char myarray[2] = {0x00,0xff}; |
3 | |
4 | //selbiges lesen:
|
5 | unsigned char mychar; |
6 | mychar = myarray[0]; |
7 | |
8 | //schreiben auch möglich?
|
9 | myarray[1] = mychar; |
ja kannst du, das macht dir das PSV, dessen funktion allerdings im handbuch gut beschrieben ist. das mappt dir virtuell die daten ins ram, brauchst also nicht wie beim c18 da herumeiern und alle funktionen doppelt schreiben :)
dann mal ein dickes superdanke für die antwort!!
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.