Hallo AVR-GCC-Spezis! Ich habe ein Programm für den 90S8515 geschrieben. Dabei muss ich eine recht große Look-Up-Table benutzen (für OSD-Chip STV5730). Die Tabelle möchte ich dher im Flash ablegen. Mein Code-Schnipsel sied so aus: const unsigned char _attribute_ ((progmem)) my_char_code[128] = { 0xff, ...... }; Compilieren und drauf zugreifen mit: code = PRG_RDB(&my_char_code[*str]); geht auch. Ein "make size" bringt aber das Erginis, dass im RAM 128 Byte dafür verbraucht werden. Da kann doch was nicht richtig sein. Wer hat eine Lösung?? Mfg Jens
Ääähh, entschuldige mal, aber unsigned char xyz[128] ist bei mir immer 128 Bytes, es sei denn, du verwendest den auf AVR's nicht vorhandenen Unicode-Zeichensatz. Gruss Christian
Hallo nochmal, Ich weiß jetzt nicht, was ihr damit meint. Das mein "unsigned char xyz[128]" Byte "verbraucht" ist mir klar. Nur will ich das im Flash ablegen, um den knappen SRAM Platz zu sparen. avr-sizex --long --top 10 --mcu at90s8515 main.elf Flash SRAM EEPROM ----- ---- ------ 64% 86% 0% 5278 444 0 bytes used 2914 68 512 bytes free 8192 512 512 bytes capacity Top Variables (global/static) ------------------------------ my_char_code 128 bytes Oder ist das doch im Flash abgelegt und die "Top Variables" zeigt das (meiner Meinung nach) nur falsch an. Gruss Jens
Tschuldige, das war ein Fehler meines Interpreters ;-) Ich habe mal ähnliche Probleme gehabt mit Strings, die ich in's Flash ablegen wollte. Geholfen hat eigentlich dann nur, dass ich die Deklaration der Stringvariablen nicht global, sondern lokal, jeweils in den Funktionen, in denen ich die Strings benötigt habe, als PSTR deklariert habe. unsigned char szBuf[42]; void xyx() { char *ps1 = PSTR("Hier kommt der String\n"); char *ps2 = PSTR("und hier noch einer\n"); // irgendwelche Befehle strcpy_P (szBuf, ps1); // String laden aus Flash // und dann was damit anstellen } Tut mir leid, mehr kann ich dazu im Moment auch nicht sagen. Gruss Christian P.S. Ich habe gar keinen Befehl avr-sizex, bloss avr-size.
avrsizex ist ein spezialzusatztool...zufinden ist das im avrfreaks forum..ist ganz nützlich und man behählt leicht einen überblick.... wollste haben?? lade ich dann hier mal hoch...
Hättest Du ja gleich als Anhang posten können, grins ;-) Gruss Christian
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.