Guten Tag zusammen,
wie ich sehe, hat Roland OSUnmapTbl[] erfolgreich ins Flash verschoben
(Beitrag "uC-OS 2 Port ATmega128 Probleme")
Das wollte ich auch, mit uCOS 2.85 und WinAVR-20070525. Und sobald Flags
benutzt sind, kracht es (Beitrag "gcc-avr: sprintf_P kracht (mit 3 oder mehr Parameter)")
Was tue ich falsch? Es ist doch nicht viel:
1) PROGMEM
1 | /* aus INT8U const OSUnMapTbl[256] = { wird: */
|
2 | const INT8U OSUnMapTbl[256] PROGMEM = {
|
2) pgm_read_byte an vielen Stellen
1 | /* aus y = OSUnMapTbl[pevent->OSEventGrp]; wird: */
|
2 | y = pgm_read_byte(&(OSUnMapTbl[pevent->OSEventGrp]));
|
Wie .lss zeigt, wird aus LD LPM, und das war's. Wo vertue ich mich?