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

Gast #3110048
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
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
ups, ja da war wohl noch n fehler...
aber bei mir kommt immernoch:
/usr/lib/gcc/avr/4.7.2/../../../avr/include/avr/pgmspace.h|1067|error: 
unknown type name ‘uint_farptr_t’|
Gast
> 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
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
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
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
> 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
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
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
ok... 'räusper.. muss zugeben, dass von dem code ziemlich viel hier vom 
forum und auch von anderen libraries kopiert hab. daher die frage, was 
sind EEPROM-Automatismen?
Gast
> 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
/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
wäre es nicht besser den den korrekten Fundort zum Suchpfad 
hinzuzufügen. So müssen die Headerdateien nicht geändert werden und es 
funktioniert auch bei einer neuen Version der Lib's.
Das Problem taucht bei Codeblocks wohl auch auf, weil es auf die falsche 
inttypes.h zugreift.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.