Forum: Compiler & IDEs Linux CodeBlocks compilieren und flaschen von AVRs fehlerhaft


von Gerhard H. (oderlachs)


Lesenswert?

Hallo Kenner der Materie !

Ich möchte ja mal komplett auf Linux umsteigen, dazu gehört für mich 
auch eine gut funktionierende AVR Programmierung usw...
Codeblocks mit AVR ging bei der Programmierung ganz gut nur konnte ich 
die versch. Programmer nicht ansprechen.

Nachdem ich nun endlich das Ansprechen der Programmer (STL500, avrispv2, 
TinyUsb) gelungen ist, habe ich Fehler beim Kompilieren:


-------------- Clean: Release in avr_test (compiler: GNU GCC Compiler 
for AVR)---------------

Cleaned "avr_test - Release"

-------------- Build: Release in avr_test (compiler: GNU GCC Compiler 
for AVR)---------------

avr-gcc -Wall -mmcu=atmega128 -DF_CPU=8000000UL -Os -mmcu=atmega128 -Os 
-I/usr/include -c fuse.c -o obj/Release/fuse.o
avr-gcc -Wall -mmcu=atmega128 -DF_CPU=8000000UL -Os -mmcu=atmega128 -Os 
-I/usr/include -c main.c -o obj/Release/main.o
avr-g++ -L/usr/lib -o bin/Release/avr_test.elf obj/Release/fuse.o 
obj/Release/main.o  -mmcu=atmega128 
-Wl,-Map=bin/Release/avr_test.map,--cref
Output file is bin/Release/avr_test.elf with size 4,55 KB
Running project post-build steps
avr-objdump -h -S bin/Release/avr_test.elf > bin/Release/avr_test.lss
avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex 
bin/Release/avr_test.elf bin/Release/avr_test.hex
avr-objcopy --no-change-warnings -j .eeprom --change-section-lma 
.eeprom=0 -O ihex bin/Release/avr_test.elf bin/Release/avr_test.eep
avr-objcopy --no-change-warnings -j .lock --change-section-lma .lock=0 
-O ihex bin/Release/avr_test.elf bin/Release/avr_test.lock
avr-objcopy --no-change-warnings -j .signature --change-section-lma 
.signature=0 -O ihex bin/Release/avr_test.elf bin/Release/avr_test.sig
avr-objcopy --no-change-warnings -j .fuse --change-section-lma .fuse=0 
-O ihex bin/Release/avr_test.elf bin/Release/avr_test.fuse
srec_cat bin/Release/avr_test.fuse -Intel -crop 0x00 0x01 -offset  0x00 
-O bin/Release/avr_test.lfs -Intel

/bin/sh: 1: srec_cat: not found   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Process terminated with status 127 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

Habe jestz über 2 Tage gegooglet ohne Erfolg ...nun mein English ist 
nicht gut
Kann wer bitte mir einen Tip geben ?

Gruss und Danke
Gerhard

Verwende Linux-Mint (aktuelle Vers.)

von Gerhard H. (oderlachs)


Lesenswert?

Fehler gefunden das Paket "srecord"  war deinstalliert..warum weswegen 
bleibt unbekannt...

Nur als Info falls jemand ähnlichen Fehler hat.

Gerhard

von Gerhard H. (oderlachs)


Lesenswert?

Der mit CodeBlocks erzeugte HexCode funtioniert aber nicht, auch lässt 
sich per avrdude aus codeblocks der µC nicht flashen...der Programmer 
blink zwar dabei nur keine Wirkung am µC...

Nur ein mit AvrStudio compilierter Code funktioniert dann , aber auch 
nur manuell über die Consoleneingabe mittels AVRDude Befehl bringt den 
µC zum Laufen...der mit CodebLocks erzeugte Code stoppt dagegen wieder 
den µC..

Nun bin ich wieder mal am Ende meiner Künste :(

Hat wer einen Tip für mich ?

Gerhard

: Bearbeitet durch User
von Karl Käfer (Gast)


Lesenswert?

Gerhard H. schrieb:
> Der mit CodeBlocks erzeugte HexCode funtioniert aber nicht, auch lässt
> sich per avrdude aus codeblocks der µC nicht flashen...der Programmer
> blink zwar dabei nur keine Wirkung am µC...

Probier's doch mal auf der Kommandozeile. Mit "file <dateiname>" kannst 
Du herausfinden, was für eine Datei da aus dem CodeBlocks herauskommt, 
mit "avr-readelf -a <dateiname>" bekommst Du mehr Informationen. Avrdude 
geht prima auf der Kommandozeile, "man avrdude" sagt Dir, wie.

von Gerhard H. (oderlachs)


Lesenswert?

Das ergeben oben genannte Befehle, aber ich bin da noch nicht sooo 
bewandert:

gerhard@Linux-W370 ~/hexcode $ avr-readelf -a mega128.hex
readelf: Fehler: 0x3031 Bytes von Sektions-Header können nicht 
eingelesen werden
readelf: Fehler: Keine ELF-Datei - Falsche Magic-Bytes am Anfang

gerhard@Linux-W370 ~/hexcode $ file mega128.hex
mega128.hex: ASCII text, with CRLF line terminators

gerhard@Linux-W370 ~/hexcode $



Was tun spricht Zeus... ??

Gerhard

: Bearbeitet durch User
von Karl Käfer (Gast)


Lesenswert?

Gerhard H. schrieb:
> Das ergeben oben genannte Befehle, aber ich bin da noch nicht sooo
> bewandert:
>
> gerhard@Linux-W370 ~/hexcode $ avr-readelf -a mega128.hex
> readelf: Fehler: 0x3031 Bytes von Sektions-Header können nicht
> eingelesen werden
> readelf: Fehler: Keine ELF-Datei - Falsche Magic-Bytes am Anfang
>
> gerhard@Linux-W370 ~/hexcode $ file mega128.hex
> mega128.hex: ASCII text, with CRLF line terminators

grmpf, mein Fehler. Ist ja ein Hexfile und kein ELF. Was sagt denn 
"avr-size mega128.hex"?

von Gerhard H. (oderlachs)


Lesenswert?

Ich habe mal die mega128.elf Datei prüfen lassen, hier das Ergebnis:

http://oderlachs.de/forum/code/datei_info.txt

Wie gesagt ich bin in diesen Tiefen der Programmierung nicht so 
bewandert

Hier avr-size Ergebnis der hex :

gerhard@Linux-W370 ~/hexcode $ avr-size mega128.hex
   text     data      bss      dec      hex  filename
      0      246        0      246       f6  mega128.hex
gerhard@Linux-W370 ~/hexcode $


Danke vorerst

Gerhard

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
Noch kein Account? Hier anmelden.