Forum: Mikrocontroller und Digitale Elektronik Linux und avr-libc3 installation


von Droid E. (eedroid)


Lesenswert?

Hallo,

ich möchte gerne unter Linux einen ATtiny3217 programmieren, dieser ist 
wohl so neu dass ich hierfür zuerst noch die "avr-libc3" installieren 
muss. Leider scheitere ich schon an der ersten Zeile:
1
./configure --build=`./config.guess` --host=avr && make

Wo liegt diese Datei "configure", unter welchen Ordner muss ich diesen 
Befehl ausführen?

Ich habe mir das Projekt von github herunter geladen:
https://github.com/stevenj/avr-libc3.git

Wenn ich dann in den gerade heruntergeladenen Ordner avr-libc3 gehe und 
den Befehl ausführe, bekomme ich folgende Fehlermeldung:
1
bash: ./config.guess: Datei oder Verzeichnis nicht gefunden
2
bash: ./configure: Datei oder Verzeichnis nicht gefunden


Vielen Dank

von Jack V. (jackv)


Lesenswert?

Es gibt eine Datei namens »configure.ac« – in der steht, was zu tun ist: 
„# Process this file with autoconf to produce a configure script.“

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Zuerst bootstrap ausführen, das erzeugt (unter anderem) configure.

Du verwendest ja die "reinen" Quellen (git) und nicht eine Distribution, 
die configure schon dabei hat.

von Droid E. (eedroid)


Lesenswert?

Hm, wie kann ich das ganze jetzt testen?

Unter Windows mit dem Microchip Studio konnte ich folgendes auf dem 
Xplained Board ausführen:
1
#define F_CPU 3333333
2
3
#include <avr/io.h>
4
#include <util/delay.h>
5
6
int main(void)
7
{
8
    PORTB.DIR |= PIN4_bm;
9
10
    while (1) 
11
    {
12
        // To set (write to ‘1’) pin x, use:
13
        PORTB.OUT |= PIN4_bm;
14
        _delay_ms(500);
15
16
        //To clear (write to ‘0’) pin x, use:
17
        PORTB.OUT &= ~PIN4_bm;
18
        _delay_ms(500);
19
    }
20
}

Jetzt unter Linux (Fedora 33) funktioniert leider nicht mal ein leeres 
Programm, wobei ich auch nicht weiß ich ich den Compiler richtig 
aufrufe.

Edit: Woher bekomme ich denn eine Distribution oder meinst du damit über 
meine Linux Distribution?

Viele Grüße

: Bearbeitet durch User
von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Droid E. schrieb:
> Woher bekomme ich denn eine Distribution oder meinst du damit über
> meine Linux Distribution?

Der meist genutzte Weg und der für dich am einfachsten ist über eine 
Distri von Mircochip, die man auf deren Seite findet, auch für Linux.

Über die Qualität der Distributionen, die bei Linux anbei sind, kann ich 
nichts sagen.  Aber extra Patches wie zusätzlicher Device-Support ist da 
wohl kaum drinne.

Wenn du selbst aus den Quellen generierst, auf jeden fall ne eigene 
--prefix verwenden, damit du nicht eine bestehende Installation 
(teilweise) überbügelst.  Überblick z.B. hier:

Beitrag "Re: cannot read spec file 'device-specs/specs-atmega4808'"

Zum Testen
1
avr-gcc main.c -o main.elf -mmcu=attiny2317
und dann das ELF mit avrdude o.ö. auf den µC uploaden.

Um zu kontrollieren ob die richtigen Tools, Libs, Start-Up etc. genommen 
werden, zusätzlich -v angeben und die ausgegebenen Pfade, 
Compiler-Version usw. checken.

Weitere Möglichkeiten zur Introspektion sind Assembler-Ausgabe (mit 
-save-temps in main.s) Map-File (mit -Wl,-Map,main.map in main.map), ... 
bewerten.

Asm-Ausgebe liest sich besser mit Optimierung (-Os), ohne Debug-Info 
(kein -g* bzw. -g0) und evtl. mit Quellen als Asm-Kommentar 
(-fverbose-asm, ab v7).

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.