Probleme mit "Makefile"

Freundliches Hallo an die Gemeinde,

mit der Bitte um Unterstützung bei einem, für mich neuen Thema, den Umgang mit "Makefile" .

Ich habe im Netz ( http://www.scienceprog.com/avr-based-tda7313-audio-processor-control/ ) ein Projekt gefunden, das ich gerne nachbauen möchte.
Neben dem Schaltplan und einer EAGLE-Platine (im Ordner AudioProc ) ist auch ein "Firmware.zip" vorhanden. Darin enthalten sind div. Dateien mit sehr unterschiedlichen Endungen wie " .C" / ".elf" / ".o" / ".h" und auch das besagte "Makefile".

Nachdem ich mich im Netz "schlau gemacht habe", habe ich mir das "WinAvr-20100110" geladen. Darin enthalten ist ein Programm, das sich "Programmer's Notepad" nennt und mit dem ich das "Makefile" laden / bearbeiten kann.

Da ich zur Steuerung einen kleinen NANO und nicht den, im Makefile eingetragenen Atmega8 benutzen möchte, habe ich im Makefile folgende Änderungen vorgenommen:

MCU name

MCU = atmega328p

Processor frequency

F_CPU = 16000000

com1 = serial port. Use lpt1 to connect to parallel port.

AVRDUDE_PORT = com8 # programmer connected to serial device
(Unter Com8 ist der NANO bei mir mit Arduino ansprechbar ... daher com8.)

AVRDUDE_PROGRAMMER = arduino

Wenn ich im Programm unter Tools "Make All" starte, tut sich auch was ....

Size before:
AVR Memory Usage

Device: Unknown

Program: 4306 bytes
(.text + .data + .bootloader)

Data: 38 bytes
(.data + .bss + .noinit)

Heißt wohl, der NANO wird nicht erkannt.

Daher die Frage an die Gemeinde, wie macht man's nun richtig?

Vorab schon mal herzlichen Dank für die Unterstützung.

Luckiy_Wolf:
... Daher die Frage an die Gemeinde, wie macht man's nun richtig?

Verlinke die von Dir erwähnten Dateien/Seiten so, dass man bei Bedarf schnell mal klicken kann. Als ich kurz nach dem von Dir erwähnten ZIP gucken wollte, war mir auf http://www.scienceprog.com/avr-based-tda7313-audio-processor-control/ zu viel, was ich hätte querlesen müssen (oder klicken können).

Gruß

Gregor

Vermutlich ist das Projekt für Atmel Studio, nicht für die Arduino IDE. Kai Neahnung, wie man dort den Controller etc. ändert.

Gibt es keine *.ino Datei, die sich mit der Arduino IDE verwenden läßt?

Hallo Gregor, hallo Dr Diettrich und an all die Anderen, die sich mein Problem betrachtet haben.

In der besagten ZIP ist keine *.ino vorhanden (soweit ich gesehen habe).
Dessen ungeachtet, ist in einem Arduino Nano ja auch ein ATmega328p eingesetzt, also aus der Mega8 Familie und hat den gleichen Befehlssatz wie der Mega8.
Will sagen, was für einen Mega8 geschrieben wurde, sollte auch auf einem Mega328p auch laufen ?
In der "Makefile" wird der Prozessor, die Taktfrequenz, die Schnittstelle (COM / LPT), der Programmer und jede Menge Sachen, von dehnen ich nicht weiß, was sie bedeuten, eingestellt.
Was ich dort geändert habe, habe ich ja geschrieben.
Arduino IDE kann mit dem "Makefile" scheinbar nicht anfangen ..?
Ob das Atmel Studio was mit "Makefile" anfangen kann weiß ich nicht. Ich kenne es leider nicht, aber besagtes "Programmer's Notepad" aus dem WinAvr-Paket, kann es scheinbar.
Es "kennt" neben dem Prozessor (mega328p) auch ARDUINO als Programmierschnittstelle.
Daher habe ich beides ausgewählt.
Zwar erhalte ich nach dem Aufruf "Make All" einen Code 0 (Kein Fehler?) und Angaben über Code- und Data-Größe aber, Device wird nicht erkannt und leider habe ich es bisher nicht geschafft, das, was er da gemacht hat, auf Platte zu speiern.
Auch der Versuch mit unterschiedlichen Programmern brachte bisher keinen Erfolg.
Wie gesagt, ist das erste Mal, dass ich was mit "Makefile" zu tun habe ...

Da die Makefile über 16 KB hat, versuche ich sie als "Makefile.txt" Attachment zu laden und hoffe, es klappt. Zum Ansehen ist das sicher OK, zum Arbeiten muß das ".txt" entfernt werden.

Wünsche Allen ein nettes Wochenende und nochmals vielen Dank.

Makefile.txt (17.2 KB)

Luckiy_Wolf:
Will sagen, was für einen Mega8 geschrieben wurde, sollte auch auf einem Mega328p auch laufen ?

Was denn nun? „Will sagen“ und ein Fragezeichen vertragen sich IMO ü-ber-haupt nicht in einem Satz.

Gruß

Gregor

PS: Außerdem könntest Du wirklich mal auf Originaldateien/-seiten verlinken.

Erwartet dein Programm einen Arduino Bootlader oder einen Programmer an com8 ?

Freundliches Hallo,

ich würde gerne auf das eigentliche Thema, den Umgang mit "Makefile" zurückkommen.
Im Anschluss bin ich auch gerne bereit über mein Deutsch zu reden.

Also, den Arduino Nano programmiere ich (üblicherweise) über die USB-Schnittstelle und benutze hierfür einen Treiber, der mir im Geräte-Manager als USB-Serial CH340 (Com8) angezeigt wird.
Je nach USB-Port am Rechner, ändert sich auch die virtuelle Schnittstelle ... com8, com5 usw.
Daher habe ich im "Makefile" Com8 für die Verbindung mit einem bestimmten USB-Port eingetragen.

Da bei mir in der ARDUINO IDE als Programmer AVRISP mkII eingetragen ist, habe ich auch diese Einstellung im "Makefile" getestet ... leider ebenso ohne Erfolg wie die Vorgabe STK500v2 für den Programmer..

Der Aufruf "Make All" endet zwar mit "> Process Exit Code: 0" aber leider wird kein Device erkannt ... Device: Unknown
Dem entsprechet erhalte ich auch nach dem Aufruf "Program" eine Fehlermedung.

"make.exe" program
avrdude -p atmega328p -P com8 -c stk500v2 -U flash:w:main.hex -U eeprom:w:main.eep
avrdude: stk500_2_ReceiveMessage(): timeout

Also, wie macht man's richtig ... was mache ich falsch?

Letztlich ist es mir egal, womit der Code erzeugt wird, wenn ich dann damit umgehen kann.
Zur "Not" reichen mir auch die beiden Hex-files für das EEprom bzw. für den Arbeits-/ Programmspeicher, da ich die auch mit Bascom-avr, über die ISP, auf den Nano schreiben kann.

Leider ist im Anschluß das Teil als Arduino Nano nicht mehr über USB ansprechbar.
Aber OK, wenn es dann läuft, ... auch gut..
Dennoch möchte ich gerne auf dem "normalen Weg", mit "Makefile" klar kommen.

Zum Abschluß, leider bin ich nicht in der Lage, eine bestimmte Datei, innerhalb eines ZIP-Files im Netz, zu verlinken ... sorry

Ich freue mich weiterhin auf Eure Unterstützung und wünsche noch einen netten Abend.

Grüße

Lucky_wolf

Also, so wie ich das sehe, ist das ein ziemlich altes AVR Studio Projekt. Das hat zunächst mal mit Arduino nichts zu tun. Das aps-File in dem Projekt scheint auch fehlerhaft zu sein. AVR Studio 7 weigert sich jedenfalls, das zu konvertieren.
Normalerweise wird das Makefile da von AVR Studio erzeugt und verwaltet.
Wie nutzt Du das derzeit denn überhaupt? Wie willst Du das übersetzen?
Edit: Sorry, habe erst jetzt gesehen, dass Du das mit WINAVR machen willst.

Edit: Setzt man ein neues Projekt im AVR Studio auf, und integriert die .h und .c Dateien dort, so lässt sich das Projekt übersetzen (AVR-Studio generiert das Makefile dabei neu). Allerdings nur für den AtMega8. Stellt man die Zielplattform auf AtMega328P um gibt es Compilerfehler, da Registernamen verwendet werden, die beim AtMega8 anders sind als beim AtMega328.

Die Damen (?), die Herren, einen guten Abend ....

@MicroBahner .... das ist gut möglich, dass dies ein altes AVR Studio Projekt ist.
Alt genug ist der TDA7313 ja und eventuelle Fehler kann ich natürlich nicht ausschließen.
Aber der Befehlssatz innerhalb der Mega8 hat sich ja nicht verändert ... erweitert? ... möglich / wahrscheinlich ...
Dennoch habe ich vor Kurzem bei GitHub eine TDA7313 - LBR für den Arduino mit einen Beispielprogramm gefunden ...

, das scheinbar ebenfalls fehlerhaft ist ... auch dort gibt es ein "Makefile", ebenso eine test.ino, aber da erhalte ich unter Arduino 1.01 ebenso wie unter Arduino 1.6.11 Fehlermeldungen, wenn ich die test.ino lade und auf überprüfen klicke.

Hier noch mal der Link: TDA7313/examples at master · ildus/TDA7313 · GitHub

Auch dort ist ein "Makefile" vorhanden ... wenngleich nicht so umpfangreich ...aber ich erhalte
auch damit Fehlermeldungen, wenn ich auf "Make All" klicke. Allerdings scheint es hier ein Problem der Dateipfade zu sein. Da ist sicherlich Spielraum zum Testen. :- )

"make.exe" all
makefile:8: /usr/share/arduino/Arduino.mk: No such file or directory
make.exe: *** No rule to make target `/usr/share/arduino/Arduino.mk'. Stop.

Process Exit Code: 2
Time Taken: 00:00

OK, wie nutze ich was bisher ...?

Wann immer möglich, benutze ich Bascom-AVR, da ich den kleinen Quellcode (im Vergleich) sehr schätze.
Andererseits schätze ich sehr wohl die Vielzahl der "Kochrezepte" in der Welt der Arduinos.
Und so versuche ich halt das "Beste" aus beiden Welten für mich zu nutzen.

Der Arduino Nano ist für mich insofern ein tolles Teil, da ich die Mega8-Familie "liebe" und er in vielen Fällen auch von der Baugröße her für mich noch passt.
Es ist halt einfacher, 2 Buchsenleisten im 2,54 Raster zu löten, als sich mit der Lupenbrille an einem SMD-Chip zu "testen"

Im konkretem Fall geht es um die Steuerung von Aktivboxen.

Die ursprüngliche Idee, dies alles mit einem Raspberry pi Zero W zu realisieren (Bluetooths / Wlan-Audio), scheiterte an meinen Möglichkeiten und so bin ich "back to the roots" wieder bei den TDA's 7313 gelandet, von denen ich noch einige wenige habe.
Die bieten mir die Möglichkeit zwischen 3 Eingängen zu wählen und die Eingangspegel zu justieren. Eine Klangregelung (Bass / Höhen) ist ebenfalls möglich
Das soll mir reichen. :- )

So jemand Interesse an so einem Projekt hat, bin ich gerne behilflich,

Viele Grüße aus Berlin,
Dieter / Lucky_wolf

Luckiy_Wolf:
ich würde gerne auf das eigentliche Thema, den Umgang mit "Makefile" zurückkommen.
Im Anschluss bin ich auch gerne bereit über mein Deutsch zu reden.
...
Dennoch möchte ich gerne auf dem "normalen Weg", mit "Makefile" klar kommen.
...
Zum Abschluß, leider bin ich nicht in der Lage, eine bestimmte Datei, innerhalb eines ZIP-Files im Netz, zu verlinken ... sorry

Sorry für die Sprachkritik. Wenn Du etwas wissen möchtest, bist Du erst einmal damit dran, Informationen aufzubereiten und zur Verfügung zu stellen. Aber da Du nicht in der Lage bist, ein Verzeichnis oder eine Datei als klickbaren Link in Deine Postings zu tun, bin ich hier weg.

Gruß

Gregor

Freundliches Hallo an die Gemeinde,

denke, es ist an der Zeit, dies hier zu schließen … wenn ich denn wüsste wie …

Meinen Dank all denen, die sich für das Thema interessierten und Ihre Unterstützung anboten.

Da ich bisher in meiner Frage nicht wirklich weiter gekommen bin und vorhandene Lösungen (?) (zum Thema Makefile / TDA7313) in dieser Welt nicht nutzen konnte, bin ich nun dabei, den Arduino in Bascom für die Steuerung zu programmieren.

Nochmals vielen Dank und noch einen netten 1. Advent

Grüße

Dieter

Als ganz schwache Erinnerung (das ist über 10 Jahre her): Die Einrückungen im Makefile müssen mit TAB, nicht mit Leerzeichen erfolgen (HP UNIX 11).

Gruß Tommy

Edit: Schau es Dir mal im Hexeditor an