Forum: Mikrocontroller und Digitale Elektronik Fragen zu Contiki


von Obs (Gast)


Lesenswert?

Hallo Mikrocontroller-Community,

erstmal vorweg: Ich bin Anfänger. Ich habe ein kleines Entwicklungsboard 
mit einem ATmega1281. Zur Programmierung unter Windows verwende ich AVR 
Studio und AVR Dragon und das funktioniert auch gut. Jetzt will bzw. 
soll ich Contiki verwenden aber das bereitet mir Probleme und die 
Tutorials, die ich gesehen habe sind schlicht unbrauchbar.
Jetzt habe ich erstmal die Frage ob ich Contiki überhaupt verwenden kann 
auf meinem Board oder ob es wirklich nur die auf der Website angegebenen 
Plattformen unterstützt, wie z.B. AVR-Raven. Aber da der MCU ja der 
gleiche ist, sollte es ja auch auf meinem Board zumindest einigermaßen 
laufen, oder?

 Für Contiki habe ich mir nun Instant Contiki heruntergeladen aber ich 
kann mit dem make-Workflow nichts anfangen. Ich wollte das hello-world 
Beispiel kompilieren wie in der Anleitung auf 
http://www.contiki-os.org/start.html aber das geht natürlich nicht. Bei 
mir sieht das so aus:

make TARGET=avr-raven hello-world -> erfolgreich
make TARGET=avr-raven savetarget -> erfolgreich
make hello-world.upload -> make: *** No rule to make target 
`hello-world.upload'.  Stop

Und überhaupt verstehe ich nicht, was beim ersten make überhaupt 
passiert. Ich habe dann die Dateien
hello-world.avr-raven
contiki-avr-raven.a
und den Ordner
obj_avr-raven

Was sind das für Dateien? Wo ist mein Hex-File? Wie gesagt ich bin 
Anfänger und unter AVR Studio ist das iwie einfacher...
Vielen Dank schon mal für eure Hilfe.

von Christian (Gast)


Lesenswert?

Hallo Obs,

ich gucke mir auch gerade contiki an. Anscheinend muss man sich da recht 
intensiv reinarbeiten...

Zu deinen Fragen:
Wenn deine CPU unterstützt wird, musst du im Ordner cpu nichts tun. Da 
aber dein Board unbekannt ist, musst du unter platform/ eine neue 
anlegen. Wahrscheinlich ist das Einfachste, eine bestehende Plattform zu 
kopieren, umzubenennen und dann anzupassen.

Beim "make TARGET=avr-raven hello-world" wird das example "hello-world" 
für die Plattform avr-raven gebaut, und zwar das elf-File (Datei 
hello-world.avr-raven). Darin ist alles enthalten (EEPROM-Inhalt und 
Programm). Um das Hex-File zu erzeugen: 
http://www.nongnu.org/avr-libc/user-manual/group__demo__project.html#demo_ihex 
Als Eingangsdatei musst du hello-world.avr-raven benutzen.

Unter dem Link kannst du dir auch andere Infos zum avr-gcc ansehen, das 
lohnt sich.

Gruß
Christian

von W.S. (Gast)


Lesenswert?

GRMPFF...

Ich habe etwas gegen dieses Zeugs von Adam Dunkel. Lies dir mal seine 
tollen Betrachtungen zu seinen "Proto-Threads" durch. Eine 
Präprozessorakrobatik und Herumtrickserei, bei der es mir glatt die 
Sprache verschlagen hat. Was passiert eigentlich, wenn man Dunkels 
Quellen mal nem anderen Compiler gibt, der Case-Statements anders 
umsetzt oder anders optimiert?

Ich weiß nicht, ob ich dir nen Rat geben soll, aber ich würde einfach 
die Finger davon lassen. Es gibt 1000 bessere Wege, einen uC zu 
programmieren.

W.S.

von Obs (Gast)


Lesenswert?

Hey!
Vielen Dank für die Antworten. Ja mittlerweile habe ich auch gemerkt, 
dass das ganze ziemlich tricky ist. Ich brauche halt ein OS, dass auf 
meiner Plattform läuft und 6LoWPAN unterstützt und da dies bei Contiki 
schon integriert ist, hat es sich angeboten Contiki du verwenden. Ein 
weiterer Vorteil ist, dass es für den Funkchip (AT86RF212) in meinem 
Hardwaremodul schon frei verfügbare Treiber für Contiki gibt.
Aber Contiki ist wirklich schlecht dokumentiert und es gibt quasi keinen 
wirklichen Support außer die Mailingliste. Und auch gerade das, was du 
als Präprozessorakrobatik bezeichnest finde ich auch einfach nur lästig 
und der Begriff Präprozessorakrobatik trifft es auch wirklich sehr gut.

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.