PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega 8 Programmieren geht das nich auch einfacher?!



grind
16.10.2004, 21:40
Hi,

also ich vorab erstmal ich bin Anfänger also wundert euch mal lieber nich über die Frage! ;)

Wenn ich meinen Mega8 Programmieren will gibts da kein Program in des man den Quelltext eingibt, in eine hex Datei Compiliert und dann aufn Controller spielt. Also damit möchte ich eigentlich nur fragen geht das nich auch ohne Makefile?

Ciao
Grind

P.s. Hätte vielleicht noch erwähnen sollen dass ich C Programmiere.

Flite
17.10.2004, 01:42
Klar gibt es das.

Allerdings hat das nichts miteinander zu tun. Du schreibst als erstes den Quellcode (in irgendeinem Editor), dieser wird dann kompiliert. Zusammen mit Ressourcen wird das ganze anschließend gelinkt. Das wird alles in der Makefile beschrieben.

Ich nehme mal an, dass du mit den GCC Compiler arbeitest.

Mit Keil uVision, IAR Embedded Workbench und Codevision AVR kannst du nur den Quelltext schreiben und auf Make Project klicken - fertig. Anschließend nur noch auf den AVR spielen (manche haben eine Programmersoftware mit drin - wenn nicht musst du eben mit einer externen Programmiersoftware arbeiten - z.B. YAAP, Ponyprog, AVR Studio.)

Zu erwähnen wäre, dass die o.g. Compiler allesamt kostenpflichtig sind. Willst du weiterhin mit Freeware arbeiten, so empfielt es sich, sich mit der Makefile auseinander zu setzen und damit weiter zu arbeiten.

Viele Grüße
Flite

grind
17.10.2004, 10:46
Ich wollte eigentlich schon weiter mit Freeware Arbeiten. Ok aber dann weiss ich jetzt wenigstens dasses sowas gibt.

Momentan arbeite ich mit WinAVR.

Was mich aber noch interessieren würde. Also ich Programmiere (wenns nich grad für meinen MC is) mit Bloodshed des is eine sehr leistungsstarke C Programmierumgebung. Kann ich nicht in Bloodshed Programmieren, Compilieren, Linken und danach einfach das *.hex file mit PonyProg auf den AVR?

Ciao
Grind

Flite
17.10.2004, 11:18
Dein Bloodhed Compiler wird erstens wohl keine Hex Files ausspucken, sondern dlls oder exe files. Und außerdem beherrscht er den Befehlssatz für die AVRs nicht.

Beim Compilieren wandelt der Compiler ja deinen C Code in Assembler Code um. Nun hat aber jeder Prozessor seine eigenen Assembler Befehle. D.h. einen Code, den du für einen PC kompiliert hast, kannst du nicht auf einem uC laufen lassen.

Außer natürlich dein Bloodshed Compiler unterstützt auch AVRs (halte ich aber für sehr sehr unwahrscheinlich).

Viele Grüße
Flite

17.10.2004, 11:30
Genauso könnte man fragen: Kann ich mit der Brotmaschine auch Nudeln machen?
Also du wirst dich wohl an das Makefile gewöhnen müssen oder solltest auf Bascom Bascom umsteigen.

Felix G
17.10.2004, 11:39
Also ich finde die Frage garnicht so sinnlos...

Es gibt IDEs die viele unterschiedliche Compiler verwenden können



und wenn man mal auf die Bloodshed HP schaut steht da:

can also be used in combination with Cygwin or any other GCC based compiler

DanielSan
17.10.2004, 20:45
Mal angenommen ich würde auf Bascom Umsteigen, was ist denn wenn mein uC 4kb internen Flash hat?
Dann muss ich mir Bascom kaufen.

Da habe ich aber garkeine Lust zu. Gibt es denn da nicht ne alternative zu oderso?

Gibt es irgendwo ein Tutorial zu Makefile?

Flite
17.10.2004, 20:51
Naja - direkt ausmachen tut das nichts.

Problem ist nur, dass Bascom nur bis 2kB kompiliert in der Demoversion. Also du kannst auch einen Controller mit 128kB Speicher verwenden, aber leider darf dein Programm maximal 2 kB groß sein.

Wenn du das nicht willst, musst du Bascom kaufen.

Assembler gibt es kostenlos.
Du musst dir wohl das mit der Makefile anschauen.

Hier ist eine Anleitung zur Installation von AVR GCC:
http://www.mikrocontroller.net/avr-gcc-installation.htm

Da gibt es auch ein Beispiel zum runterladen - da sieht man am besten, wie so eine makrefile aufgebaut ist. Dann musst du diese nur noch abändern.

Grüße
Flite

DanielSan
17.10.2004, 21:02
"Vor dem Kompilieren muss man in der Datei "makefile" im entsprechenden gcctest-Verzeichnis die Zeile MCU = at90s8515 an den verwendeten Controller anpassen, z.B. MCU = at90s2313 oder MCU = at90s4433."

Ähm wie genau muss ich das denn dann für meine Controller abändern?

Flite
17.10.2004, 21:13
Hallo!

Die Makefile Zeile muss so heißen für den Mega8. Ist doch dein Controller, oder nicht?


# MCU name
MCU = atmega8

Grüße
Flite

DanielSan
17.10.2004, 21:15
Ne ich habe den ATmega128

Flite
17.10.2004, 21:21
Naja - ich denke, du kannst das dann selber anpassen.

Für den Fall das nicht:
MCU=atmega128
:-b

Grüße
Flite

DanielSan
17.10.2004, 21:25
Ok das habe ich jetzt gemacht.
Aber was jetzt?

Flite
17.10.2004, 21:31
Ich verwende kein WINAvr - ich arbeite mit dem IAR Embedded Workbench.

Schau dir doch mal das Tutorial bei Mikrocontroller.net an - da ist auch ein Link zur Orginal WINavr Page und zu einem englischen Tutorial. Lies dir das mal durch - wenn du eine exakte Frage hast, kannst du sie gerne stellen. Ich werd jetzt nicht alles für dich erarbeiten und dann hier reinstellen. Du musst dich schon selbst etwas bemühen.

Grüße
Flite

Kjion
18.10.2004, 11:31
Hi,

ich hab auch mal ein Tutorial dazu geschreiben. Vielleicht hilft dir das ein bißchen weiter:
http://www.kreatives-chaos.com/index.php?seite=avrgcc
Ich werds demnächst auch nochmal ein bißchen erweitern...

MfG Kjion