Forum: Mikrocontroller und Digitale Elektronik Absolut Ahnungsloser benötigt Hilfe


von Franz L. (pollymaus)


Lesenswert?

In meiner Not wende ich jetzt einmal an ein Spezialisten Forum, in der 
Hoffnung, dass hier jemand weiterhelfen kann.
Also vorab :
Ich hab absolut KEINE Ahnung von der Materie und bin so ziemlich 
hilflos.
Vorgeschichte:
Ein früherer Mitarbeiter hat uns ein Programm für einen ATMEGA 
Controller  geschrieben und uns erklärt, wie wir das HEX-File mit ATMEL 
STUDIO und einem Programmieradapter programmieren können. Hat bisher 
problemlos funktioniert.
Man weiß zwar nicht, was man macht, aber dafür wie man das Programm in 
den µC bekommt.
Soweit so gut.
Nun müssten in einer Datei ein paar Parameter geändert werden, das wäre 
auch kein großes Problem, da genau bekannt ist, was und wo geändert 
werden muss, ein texteditor ist dafür ausreichend.
NUN kommt das Problem, dass hier keiner weiß, wie man aus den ganzen 
Dateien wieder ein hex-file compilieren kann.

Also wir haben :
diverse *.c und *.h-Dateien, dazu ein Makefile
wir nutzen OSX und Windows.

BITTE BITTE :
erklär mir irgendeiner, wie ich aus dem ganzen Krempel wieder ein 
hex-file compilieren kann.

von Benedikt S. (benedikt_s)


Lesenswert?

Du solltest die die Erklärungen hier zum atmel Studio durchlesen. Das 
sollte alles was du wissen musst beinhalten.

Sonst kann ich dir auch schnell gegen Bezahlung die Parameter ändern und 
ein Hex File zuschicken wenn eilt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Franz L. schrieb:
> erklär mir irgendeiner, wie ich aus dem ganzen Krempel wieder ein
> hex-file compilieren kann.

Wenn ein Makefile da ist: das passende "make" aufrufen.

Unter Windows ist sowas leider nicht von Haus aus dabei.  Auch der
benötigte Compiler muss vorhanden sein (“Toolchain”).

Sind das Maschinen, auf denen früher bereits compiliert worden ist?
Dann müsste ja alles vorhanden sein.

von KeK (Gast)


Lesenswert?

Ich machs dir auch für umme.
Oder du machst es selber.

Einfach das Atmel Projekt mit Atmel Studio öffnen, die nötigen Parameter 
ändern und oben im Reiter auf Build klicken und "Rebuild all" auswählen.
Nun solltest du eine neue Hex haben.

von Jim M. (turboj)


Lesenswert?

Franz L. schrieb:
> Nun müssten in einer Datei ein paar Parameter geändert werden, das wäre
> auch kein großes Problem, da genau bekannt ist, was und wo geändert
> werden muss, ein texteditor ist dafür ausreichend.
> NUN kommt das Problem, dass hier keiner weiß, wie man aus den ganzen
> Dateien wieder ein hex-file compilieren kann.

Du widersprichst Dich hier grade selber - und vergisst das man den 
Scheiss hinterher auch ausgiebig testen muss.

Sucht Euch einen Spezialisten. Offensichtlich ist das ja kommerziell, 
dann müsst Ihr dafür auch halt mal wieder Geld auf den Tisch legen.

von Benedikt S. (Gast)


Lesenswert?

@KeK so wie ich das verstanden habe hat er kein Atmelstudio.
Was für Dateien befinden sich in dem Ordner neben den .c und .h ?

von KeK (Gast)


Lesenswert?

Na sie Programmieren die Kontroller doch über Atmel Studio.

"Ein früherer Mitarbeiter hat uns ein Programm für einen ATMEGA
Controller  geschrieben und uns erklärt, wie wir das HEX-File mit ATMEL
STUDIO und einem Programmieradapter programmieren können. Hat bisher
problemlos funktioniert."

Die leute wissen nicht was sie machen, könnens jedoch rüberspielen.
Evtl haben sie ja eine Projektdatei. Wenn nicht muss halt selber eine 
erstellt werden, die C datei und die Header dateien hinzugefügt werden 
und fertig.

Build -> Hex rüberspielen.

von Franz L. (pollymaus)


Lesenswert?

wir haben :
button.c
button.h
adc.c
adc.h
main.c

und
Makefile

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Die Lösung gibt es hier schon auf der Webseite:

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Das hier irgendwer erraten kann welches Atmel-Studio mit welcher Art von 
Projektdatei für welchen Mega was machen soll ist etwas viel verlangt.

von Franz L. (pollymaus)


Lesenswert?

UPS, richtig, sorry...

Wir haben atmel Studio 6.2 und den avr ISP MKII Programmer
aber leider keine ATMEL Projektdatei sondern nur die einzelnen Files.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Hier ist ein Tutorial, wie man von Null ein Projekt mit Atmel Studio 6 
baut:
http://www.avr-tutorials.com/avr-studio-6/creating-new-avr-c-project-avr-studio-6

Im Prinzip geht es bei euch nur um das Hinzufügen der Dateien, das 
passiert im Solution Explorer mit rechter Maustaste -> 'Add File' -> zur 
*.c navigieren, mit STRG alle *.C Files sammeln und OK wählen.

F7 baut das Projekt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Matthias S. schrieb:
> Hier ist ein Tutorial, wie man von Null ein Projekt mit Atmel Studio 6
> baut

Was weißt du, was in dem Makefile alles noch drin steht, was das
Studio dann nicht so machen würde?

Ich würde das Makefile nehmen wie es ist.  Dann entweder im
Studio-Projekt explizit dieses Makefile benutzen lassen, oder
gleich von der Kommandozeile "make" aufrufen.

Nochmal die Frage: wurde auf den entsprechenden Maschinen das Projekt
auch früher schon compiliert oder nicht?

von Maker (Gast)


Lesenswert?

Weißt du was eine Kommandozeile ist? Unter OSX eine öffnen und in das 
Verzeichnis mit dem makefile wechseln. Dort

make

oder

make all

tippen. Entweder geht es oder du postest die erscheinende Fehlermeldung 
dann hier.

von Franz L. (pollymaus)


Lesenswert?

Danke für die Nachricht.
Wir haben neue Rechner, einmal mit Windows, einmal mit OSX.
auf dem Windows Rechner ist nur ATMEL STUDIO 6.2 installiert und die 
einzige
Kenntnis über ATMEL ATUDIO liegt darin, unter TOOLS und DEVICE 
PROGRAMMING
den µC mit dem früher vorhandenen HEX File zu programmieren.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jörg W. schrieb:
> Was weißt du, was in dem Makefile alles noch drin steht, was das
> Studio dann nicht so machen würde?

Nichts. Aber der TE kann das makefile ja mal posten.

von Franz L. (pollymaus)


Lesenswert?

Ahh , das krieg ich hin :
Meldung :
-------- begin --------
sh: avr-gcc: command not found
make: *** [gccversion] Error 127

von Maker (Gast)


Lesenswert?

Franz L. schrieb:
> Ahh , das krieg ich hin :
> Meldung :
> -------- begin --------
> sh: avr-gcc: command not found
> make: *** [gccversion] Error 127

Installier den Atmelkram auf dem OSX-Rechner und versuch es nochmal.

von Franz L. (pollymaus)


Lesenswert?

Atmel Studio gibts aber doch nicht für OSX, nur für Windows, oder ?

von Nils P. (ert)


Lesenswert?

Ach, ich liebe dieses Forum! Noch gar keine Trolls! Top

Du kannst es auch mal mit WINAVR probieren. Lade dir WINAVR, öffne dein 
main.c mit pn.exe und dann "make all". Dann hast du in dem Ordner auch 
ein hexfile...
Musst nur moch testen ob es dann auch dasd macht was du willst.

Viel Erfolg

G Ert

von Maker (Gast)


Lesenswert?

Franz L. schrieb:
> Atmel Studio gibts aber doch nicht für OSX, nur für Windows, oder ?

Achso, keine Ahnung, nutze kein Atmel, nur makefiles.

Hat Atmel echt keinen Unix-Support?

von Markus F. (mfro)


Lesenswert?

Maker schrieb:
> Franz L. schrieb:
>> Atmel Studio gibts aber doch nicht für OSX, nur für Windows, oder ?
>
> Achso, keine Ahnung, nutze kein Atmel, nur makefiles.
>
> Hat Atmel echt keinen Unix-Support?

Kann sein, daß mal einer sowas installiert hat:

https://obdev.at/products/crosspack/index.html

Kann weiterhin sein, daß ein späteres OS-Upgrade die Dateien dann 
gefunden, für nicht apfelig genug befunden und wegquarantänisiert hat.

Ja, Äpfelchen machen so was, wenn ihnen danach ist, kein Witz.

von Joachim B. (jar)


Lesenswert?

Franz L. schrieb:
> Danke für die Nachricht.
> Wir haben neue Rechner, einmal mit Windows, einmal mit OSX.
> auf dem Windows Rechner ist nur ATMEL STUDIO 6.2 installiert und die
> einzige
> Kenntnis über ATMEL ATUDIO liegt darin, unter TOOLS und DEVICE
> PROGRAMMING
> den µC mit dem früher vorhandenen HEX File zu programmieren.

dann wenn das unter diesem Rechner schon mal programmiert wurde wird es 
doch ein Projektfile geben, unter Studio 4 hiess das *.aps und liegt im 
Quellordner

also STUDIO 6.2 starten

und Projekt öffnen

Das Projekt wird doch hoffentlich auch gespeichert worden sein im 
Quellordner

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Nils P. schrieb:
> Du kannst es auch mal mit WINAVR probieren.

Nein, bitte nicht.  Das ist älter als die Jungsteinzeit.  Aktueller
Code muss sich damit keineswegs mehr compilieren lassen.

Mit Atmel Studio kommt bereits die Atmel-Toolchain und damit der
nötige Compiler, der ist nur nicht im PATH eingetragen.  Daher die
obige Ausschrift ("avr-gcc: command not found").

Die gute Nachricht dieser Meldung ist aber: ein "make" ist offenbar
bereits da.  Damit muss man nur noch rausfinden, wo der AVR-GCC
genau ist.  Vermutlich ist es
1
C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin

Das müsste Franz mal verifizieren.

Erweiterung des PATH ist leider eins der finstersten Kapitel bei
Microsoft.  Das entsprechende Tool gibt's in den Systemeinstellungen
unter „Environment Variables“ (bzw. „Umgebungsvariablen“), aber das
hat den Charakter eines Gucklochs. :-(

Maker schrieb:
> Hat Atmel echt keinen Unix-Support?

Ja, haben sie nicht.

Aber man kann sich unter OSX natürlich die Compiler und Tools auch
ranleiern.  Wie das genau geht, hängt aber ein bisschen davon ab,
was auf den jeweiligen Maschinen Usus ist (Macports, Fink oder
Homebrew).  Insofern wäre es natürlich gut, wenn sich seitens des
TE mal jemand das ansehen würde, der mit den dortigen Gepflogenheiten
bei der OSX-Nutzung einigermaßen vertraut ist.

von hp-freund (Gast)


Lesenswert?

Jörg W. schrieb:
> WINAVR

> Jungsteinzeit

Aber der Code scheint mir überschaubar.

Gerade mal probiert:

https://sourceforge.net/projects/winavrportable/

Wird einfach in einem Verzeichnis ausgepackt.
Mit dem enthaltenen Programmers Notepad sollte sich das einfach machen 
lassen.

von hp-freund (Gast)


Lesenswert?

Jep, funktioniert. Mini Projekt erstellt und compiliert.
Als Programmer ist der avrdude dabei.

Getestet auf XP in der VirtualBox.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hp-freund schrieb:
> Aber der Code scheint mir überschaubar.

Welchen Code hast du denn vom TE gesehen?

Ich würde ausdrücklich von WinAVR abraten, sofern nicht gerade bekannt
ist, dass die damalige Entwicklung damit gelaufen ist.

von hp-freund (Gast)


Lesenswert?

Jörg W. schrieb:
> Welchen Code hast du denn vom TE gesehen?

Die aufgelisteten 5 Dateien.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

hp-freund schrieb:
>> Welchen Code hast du denn vom TE gesehen?
>
> Die aufgelisteten 5 Dateien.

Als Sourcecode?  Oder nur die Dateinamen?

von hp-freund (Gast)


Lesenswert?

Ich denke da sonst beim TE kaum AVR Programmierbedarf besteht sollte das 
genügen - wenn es dann für seinen Code funktioniert.

von hp-freund (Gast)


Lesenswert?

Natürlich nur die Namen.
Alles andere ist sicher Firmengeheimnis ;-)

von Franz L. (pollymaus)


Lesenswert?

Hallo nochmals an alle...
Zuerst einmal einen ganz herzlichen Dank für die vielen Tips und 
Hinweise und für die unendliche Geduld.
Der Tip mit WIN AVR Portabel hat mich schon mal um Längen 
weitergebracht, ich konnte die Programmteile erfolgreich und ohne 
Fehlermeldung compilieren.
Ein Test in den nächsten Tagen wird das Ergebnis zeigen, ich denke, es 
sollte funktionieren.
Abschließend noch ein großes Lob an das Forum.
Leider ist es selten, dass absoluten Anfängern so kompetent in Foren 
weitergeholfen wird ohne gleich oberlehrerhafte Kommentare abzugeben.
SUPER !!!
Vielen Dank nochmals.

von Joachim B. (jar)


Lesenswert?

Jörg W. schrieb:
> Maker schrieb:
>> Hat Atmel echt keinen Unix-Support?
>
> Ja, haben sie nicht.

aber doch Arduino (zumindest under raspi mit java) und mit der 1284p 
Erweiterung und ohne Setup() & Loop() soll der ganz "normal" in der 
Arduino IDE kompilieren.

Das könnte ein Mac User auch probieren?

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Joachim B. schrieb:
>>> Hat Atmel echt keinen Unix-Support?
>> Ja, haben sie nicht.
>
> aber doch Arduino

Ist nicht „Atmel“ – das war aber die Frage.

Jenseits von Atmel selbst kann man natürlich problemlos die Toolchain
aus diversen Quellen bekommen, schließlich werkelt untendrunter ein
unixoides System.  Das geht dann auch ganz ohne Arduino.

Irgendeine Form von IDE braucht Franz ohnehin nicht unbedingt;
schließlich hat man ihm bereits ein Makefile hinterlassen, und offenbar
war er auch in der Lage, den Sourcecode mittels eines gewöhnlichen
Texteditors passend abzuändern.

: Bearbeitet durch Moderator
von Nils P. (ert)


Lesenswert?

Jörg W. schrieb:
> Nils P. schrieb:
>> Du kannst es auch mal mit WINAVR probieren.
>
> Nein, bitte nicht.  Das ist älter als die Jungsteinzeit.  Aktueller
> Code muss sich damit keineswegs mehr compilieren lassen.

Mh, was meinst du damit? Mir ist klar, dass wohl nicht mehr die neusten 
Atmel µCs unterstüzt werden. Aber warum sollte sich der Code den nicht 
mehr compilieren lassen? Weil Sourcen fehlen? Dann meckert doch der 
Compiler und er ist auch weitergekommen :-)

Ich mach immer mal wieder ein paar Modifikationen an meinen alten 
Projekten mit Atmega88/** mit winavr und konnte noch keinen Fehler 
feststellen...

Was soll den groß passieren, wenn er es doch macht? Wenn das neue Hex 
die Schaltung zerstört sollte er den Code zeigen. Das ist aber auch sehr 
sehr unwahrscheinlich mit 5 c und h files.

Mir geht das AVR Studio nur auf den Sack, immer bunter und bunter, und 
größer und nerfiger, ach und bunter... 842mb, Oha, die achter Version 
schafft das Gb ;-)

Jetzt klinge ich schon wie mein Opa :-)

Greez Termi

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nils P. schrieb:

> Aber warum sollte sich der Code den nicht
> mehr compilieren lassen?

Falls des TE's Code Features nutzt, die nur neuere Compiler haben,
beispielsweise __flash, geht das mit dem alten WinAVR-Compiler
nicht mehr.

Wir wissen aber inzwischen, dass es sich damit offensichtlich
compilieren ließ, scheint also eher älterer Code zu sein.

Dennoch bleibt das Argument, dass in den letzten 7 Jahren sackweise
Bugfixes in den Compiler eingeflossen sind, ganz zu schweigen von
all den Verbesserungen der Optimierung, seit Georg-Johann Lay dort
Hand angelegt hat.

> Mir geht das AVR Studio nur auf den Sack

Ist ja nicht so, dass es nur ein „entweder WinAVR oder Atmel Studio“
als Entscheidungsspielraum gäbe.

Du kannst ja auch gern nach wie vor das Programmer's Notepad aus
dem WinAVR benutzen, aber eine neuere Toolchain von Atmel.  Die
bekommst du ja zum Glück auch separat vom Studio, wenn du willst.

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.