pgmspace.h|1067|error: unknown type name ‘uint_farpt

Gast #3110048
Lesenswert?

Hallo und Frohe Ostern,

ich hab n problem mit meinem Atmega32 und zwar wenn ich n array mit 
Hilfe von pgmspace in den Flash schreiben will bekomm ich immer den 
Fehler:
1
const uint16_t laenge[] PROGMEM =
2
{
3
    100, 500, 500, 500, 350, 150, 500, 350, 150, 650, 150,
4
    500, 500, 500, 350, 150, 500, 350, 150, 650, 150,
5
    500, 300, 150, 400, 200, 200, 125, 125, 250, 250,
6
    250, 400, 200, 200, 125, 125, 250, 250,
7
    125, 500, 375, 125, 500, 375, 125, 650
8
};

/usr/lib/gcc/avr/4.7.2/../../../avr/include/avr/pgmspace.h|1067|error: 
unknown type name ‘uint_farptr_t’|

Kennt jemand das Problem oder sieht meinen Fehler? Ich hab auch schon 
danach gegoogelt aber nichts gescheites gefunden.
Bin dankbar für jede Antwort.

Philipp
Gast #3110185
Lesenswert?

hi, danke für die antwort,

das komplette programm is ewig lang... und es kann auch nicht an ner 
anderen stelle liegen, weil ich das auskommentier dann geht es ja... 
Muss ich vielleicht dem compiler noch bestimmte parameter übergeben?
Gast #3110397
Lesenswert?

> aber bei mir kommt immernoch:

hab mir eben gcc 4.7.2 installiert - damit gehts ebenfalls. Stell mal 
sicher, dass Deine avr-libc nicht korrumpiert ist. Vielleicht auch mal 
von der Konsole bauen versuchen (nicht CodeBlocks - vielleicht ist da 
was im Argen).
Gast #3110435
Lesenswert?

hey nochmal,
ersmal vielen dank. Und die Frage ist mir jetzt n bissel peinlich, aber 
mit der terminal-befehl von gcc-avr hab ich das noch nie gemacht.
Wie sag ich denn da, dass er alle .c files in dem ordner kompielieren 
soll?
Gast #3110441
Lesenswert?

quick'n'dirty:
1
avr-gcc -Wall -DF_CPU=16000000UL -mmcu=atmega32 -Os -o main *.c

..ds1307test.c entsorgen nicht vergessen!

..wers mit obigem Archiv nachstellen will:
1
$ rm -rf wecker ; mkdir wecker ; cd wecker ; unzip ../wecker.zip >/dev/null ; rm -f ds1307test.c ; sed -i 's!//    }!}!g;' main.c ; avr-gcc -Wall -DF_CPU=16000000UL -mmcu=atmega32 -Os -o main *.c ; file main
2
main.c: In function ‘main’:
3
main.c:95: warning: unused variable ‘mmold’
4
main: ELF 32-bit LSB executable, Atmel AVR 8-bit, version 1 (SYSV), statically linked, not stripped
Gast #3110447
Lesenswert?

ok seltsam, hat tatsächlich nicht gemeckert wegen der pgmspace.h ist die 
main -datei die da jetzt erstellt wurde eigentlich das .hex file das ich 
direkt mit avrdude auf n atmega übertragen kann?

Dann muss es doch aber irgendeine compiler-einstellung von code-blocks 
sein... kennt jemand ne gute gui für avr-gcc für linux?
Gast #3110455
Lesenswert?

> ist die main -datei die da jetzt erstellt wurde eigentlich das .hex file
> das ich direkt mit avrdude auf n atmega übertragen kann?

Nein, aber fast(tm):
1
$ avr-objcopy -O ihex main main.hex

> Dann muss es doch aber irgendeine compiler-einstellung von code-blocks
> sein... kennt jemand ne gute gui für avr-gcc für linux?

könnte auch eine der temporären Dateien sein. Wirf mal bin/ und obj/ 
weg. ..afair auch noch *.depend und *.layout..
Gast #3110465
Lesenswert?

ich seh grad Du nutzt EEPROM-Automatismen - dann musst Du jenen Bereich 
extra rumkopieren:
1
$ avr-objcopy -O ihex -R .eeprom -R .eesafe main main.hex
2
$ avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex main main.eep.hex
Gast #3110466
Lesenswert?

ok danke für den befehl.
das mit den löschen von den ordnern/files hat leider nichts gebracht.
hab jetzt auch schon alles einstellung bei "Build options" unter 
code-blocks so eingestellt wie in der in dem gcc-avr-befehl ( bis auf 
das -o (kann ich nicht finden)) und kommt immernoch der befehl... 
seltsam seltsam...
Gast #3110522
Lesenswert?

> was sind EEPROM-Automatismen?
1
$ grep -e EEMEM *.*
2
main.c:int16_t ee_rtc_cal EEMEM = (F_CAL-12800000)*256/100;        // Kalibrierung für RTC, Frequenzfehler in 1/1000 Hz

..scheint aber nirgends genutzt zu werden..
Gast #3372640
Lesenswert?

/usr/lib/gcc/avr/4.7.2/../../../avr/include/avr/pgmspace.h|1067|error:
unknown type name ‘uint_farptr_t’|

War bei Mir ein Fehler auf Debian in Codeblocks und konnte so behoben 
werden:

1.) Konsole Öffnen
2.) Befehl "sudo pico /usr/lib/avr/include/avr/pgmspace.h"
3.) <inttypes.h> mit "../inttypes.h" ersetzen
4.) STRG+X  Y  ENTER

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren