welche freie Toolchain für Microcontroller??

Wenn ich mir schon immer anhoeren muss, was die Leute als klein bezeichnen. Man kann schon in einen atmega8 so viel reinquetschen, dass einem richtig schwummrig wird. Und wenn ich dann an größere Controller (atmega644 [1]) denke, dann wird es echt schwer den mit Code (nicht mit irgendwelchen Tabellen) voll zubekommen. Was halt etwas stoert, die Sache aber spannender macht ist der geringe Umfang an RAM bei den AVRs. Da lernt man richtig dann aber mit dem Platz zu haushalten. Da ist dann nichts mit Verschwendung.

Und das man auf 8 Bit Prozessoren nichts hinbekommt haben wir mit ethersex[2] gezeigt. Da kann man so sachen wie OpenVPN, Avahi, IP Router, Packetfilter, mehrere Netzwerkinterfaces, Jabber, IRC, Twitter/identi.ca schon mal veranstalten. Ich bastele jetzt schon seit langen mit rum, aber ich seh immer noch nicht, dass wir die Architektur voll ausgenützt hätten.

Um mit den AVRs am besten zu Rande zu kommen, nehme ich avr-gcc zum compilen und nen normalen Editor zum editieren des Codes. Das flashen geht prima mit avrdude und einem usbasp adapter. Und wenn es mal wirklich sein muss, kann man auch leicht mit JTAG, avarice und usbprog Ergebnisse erzielen (Wobei man mehr lernt wenn man kein JTAG hat :-) )

grusz didi

[1] Ja ich bin atmega fan [2]
formatting link
--
No documentation is better than bad documentation
-- Das Ausdrucken dieser Mail wird urheberrechtlich verfolgt.
Reply to
Christian Dietrich
Loading thread data ...

Ja Kommandozeile (Das Wort ist schon so provozierend und militärisch) ist wirklich eine Zumutung. Ein Relikt aus der Vorzeit, das einen aufzwingt zu schreiben was man will... furchtbar. Und auch noch diese furchtbar komplizierten Befehle (make, make load), dass kann sich doch keiner merken!!!!1111!!!!

Danke für die Warnung, aber Software aus der man sowas nicht selber rauspatchen kann taugt eh nicht.

grusz didi

--
No documentation is better than bad documentation
-- Das Ausdrucken dieser Mail wird urheberrechtlich verfolgt.
Reply to
Christian Dietrich

Du verwendest keine farbigen Grafik-Displays, oder 50 Sprachen die ca.

98% der weltweit gesprochenen Sprachen abdecken? Ist das ein Produkt für den lokalen Markt?

Dirk

Reply to
Dirk Ruth

Naja, NOCH schlimmer fand ich, daß exakt diese Verwicklungsumgebung mitunter nicht merkt, wenn ein source file geändert wurde und einem dann nach minutenlanger Kompilation wieder denselben dysfunktionalen Mist vorsetzt, den man gerade repariert hatte...

Einmal hat es auch beim Kompilieren vergessen, daß es laut Lizenz bis auf 32KB Code-Size kompilieren darf und bei exakt 16KB aufgehört weil zu groß. Und das noch nichtmal gesagt, sondern klammheimlich in nem logfile versteckt. Die Fehlersuche beim debuggen war etwas, ähm, länglich...

BTDT Florian

Reply to
Florian Teply

Taete ich jetzt so nicht behaupten:

formatting link

Außerdem meinte ich 64kbyte mit code nicht mit Tabellen zukleistern ist nicht so einfach.

Der Anschluss einer PS/2 Tastatur kann man von us mapping auf de mapping umstellen. Die Zeitzone ist auch einstellbar. Allerdings sind verschiedene Sprachen wieder data, kein code.

grusz didi

--
No documentation is better than bad documentation
-- Das Ausdrucken dieser Mail wird urheberrechtlich verfolgt.
Reply to
Christian Dietrich
[CodeWarrior] ...

Ich klicke immer erst auf das Häkchen und dann auf den Zettel mit dem Stift (oder was auch immer diese Knöppe darstellen sollen). Habe ich beim Kunden so gesehen.

Code-Size? Alles zusammen oder pro Source-File?

Da hat Dir das IDE ja auch viel Zeit und Arbeit erspart ;-)

Falk

Reply to
Falk Willberg

Hmm, keine Ahnung ob da Kreuze und Zettel waren, ist schon ne Weile her.

Ich glaube alles zusammen, pro Source-File wär auch mehr als üppig gewesen. Der S12X hatte ja eh nur 64KB Flash...

Genau das, was man bei ner Diplomarbeit braucht @-#

Gruß, Florian

Reply to
Florian Teply

Tut - ich benutze gcc+openocd auf verschiedenen ARMs (IXP42x, ein Luminary auf dem RDK-IDM Evalboard), allerdings meistens nur zum Flash-Programmieren und selten zum Debuggen. IDE ist bei mir XEmacs, aber die Kombination der Kommandozeilentools mit einer beliebigen IDE sollte keine großen Probleme machen.

Cortex-M3 ist bei den Tools teilweise noch etwas hakelig - es ist halt recht neu, man muß teilweise sehen, daß man aktuelle Versionen selber kompiliert, aber es läuft. Mir gefallen die Luminary-CPUs mit Ethernet auch ausgesprochen gut.

Ich denke, bei den aktuellen Preisen fährt man in Summe mit einem kleinen ARM nicht schlecht, solange man nicht wirklich wegen Bauform oder Stückzahlen etwas kleineres braucht. Die Tools sind gut und werden gut gepflegt, da genug Anwender vorhanden sind, und der initiale Aufwand für ein Parallelport-JTAG-Kabel (oder ein USB-Kabel mit FT2232) ist minimal.

cu Michael

Reply to
Michael Schwingen

Brauchen aber IIRC einen externen Ethernet-PHY, oder? Das wird dann schon lästig.

cu Michael

Reply to
Michael Schwingen

Ich kenne keine. Bei openocd steht das auf der TODO-Liste, soweit ich weiß, arbeitet aber derzeit niemand daran.

cu Michael

Reply to
Michael Schwingen

Bei Atmel habe ich keine Dokumentation gefunden. Soll das jetzt jemand reverse-engineeren, damit Atmel mehr Controller verkauft?

Falk

Reply to
Falk Willberg

Ja, leider. Ausserdem sind die mit Ethernet auch noch nicht lieferfähig (AFAIK). Dazu kommt noch, das die 107er-Serie kein externes FSMC-Speicherinterface zu haben scheint.

Wir behelfen uns da mit der 103-Serie in Kombination mit ENC28J60 als SPI-10MBit-Ethernet-Controller..

--
Thomas Kindler
Reply to
Thomas Kindler

Florian teply schrieb:

Siehe:

formatting link

Ich hörte der R32C soll demnächst auch unterstützt werden.

Erhältlichkeit: Ich glaube Reichelt hat was (sehr wenige Typen und teuer) im Programm, Digikey hat auf ihrer US-Seite jede Menge, keine Ahnung was passiert wenn man von dort bestellt, auf der deutschen Seite hab ich nichts gefunden (wahrscheinlich Gebietsschutz für Distris).

Da Elektor (in Zusammenarbeit mit Glyn) ein paar Trägerboards für quasi einen Typen jeder Klasse (R8C, M16C, R32C) herausgebracht hat könnte man sich auch auf deren Website oder in einem Heft nach Lieferanten oder in ihrem Shop umschauen.

Die µCs sind für Einsteiger nicht immer ganz leicht zu durchschauen, viele Features bedeutet eben auch viel zu beachten. Es sind auch nicht so viel Projekte im Netz zu finden wie zum Beispiel zu den AVRs. Dafür aber vermutlich auch nicht so viel Müll :-)

Die Teile zielen halt eher auf Grosskunden (sonst wär Renesas auch nicht Marktführer), aber in letzter Zeit bemüht man sich wohl auch ein wenig um den Nachwuchs.

Jörg.

Reply to
Jörg Schneide

Die aktuellen Zahlen für 8/16/32 Bit wären hier:

formatting link
Bei 8 Bit lag bisher Freescale vor Microchip.

MfG JRD

Reply to
Rafael Deliano

Mir ist letzterdings sogar ein Renesas-Controller (R8C29) aufgefallen weil der Hersteller da soviel eingebaut hat das ich langsam etwas verwirrt wurde. (Nutzung als I2C-Slave)

Ein M16C29 mit 96kb Flash und 8kb Ram liegt bei Abnahme von 10Stk so bei 7Euro. Wenn man liesst was da alles eingebaut ist dann wird man fast depressiv weil bei jedem Projekt mindestens 50% ungenutzt bleiben. :-)

Hast du bei Glyn angefragt? Ich gebe zu das ich da als Firma einkaufe, aber die waren eigentlich sehr entgegenkommend auch bei kleinsten Stueckzahlen. Probleme koennte ich mir hoechstens vorstellen wenn du ein sehr seltenes Teil haben moechtest das sie gerade selber nicht auf Lager haben. Die werden wohl kaum eine ganze Rolle beschaffen bloss weil du dann als Privatmensch fuenf Stueck kaufst. Ich wuerde einfach mal bei Glyn anrufen. Dem Betreuer fuer Renesas (Pokorny?) erzaehlen was du ungefaehr brauchst und wieviel du haben willst. Ich denke mal der wird dir dann einen empfehlen den er auch gerade da hat. Im uebrigen nimm im Zweifel halt einen der eine Nummer groesser ist. Wegen 1-2Euro mehr wuerde ich bei privater Nutzung keine einzige Sekunde zoegern.

Man kann irgendwo im Internet den GCC runterladen, aber die hatten da etwas merkwuerdige Vorstellungen mit Registrierung vor runterladen. Ich hab mir den Compiler dann fuer Linux einfach selber uebersetzt. Falls du das auch so machen willst koennte ich eine Anleitung dazu posten die ich mitgeschrieben habe als ich das gemacht habe.

Wuerde mich auch stoeren. Deshalb hab ich da auch selber Hand angelegt. Schoen an Renesas ist auch das du deine Programme dann einfach ueber die RS232 in den Controller bekommst, also auch ganz ohne irgendeine Spezialhardware. Das einzige was mir derzeit fehlt ist der Debuger. Irgendwann muesste sich mal einer aufraffen und den stub fuer den gdb anpassen.

Will man garnicht! Glaub mir ich benutze die Umgebung von Renesas beruflich und privat den gcc. Letzeres ist die schoenere Art zu arbeiten. Auch wenn HEW nicht mehr so schlimm ist wie vor ein paar Jahren, ich hab damals hier gross drueber gemeckert, aber trotz allem hat es immer noch so seine Macken hat die einem mal ueberraschen.

Da ist ein einfaches 'make' fuer die Uebersetzung und ein 'make download' zum reinladen in den Controller doch akzeptabel. Ich koennte bei Interesse auch ein einfaches Beispiel fuer das RSKM16C29 (Testboard von Renesas) liefern das sich unter Linux einfach so uebersetzen laesst und die LEDs blinken laesst.

[olaf] ~/sources/M16C29/RSKM16C29_Test1: make m32c-elf-gcc -mcpu=m16c-mcpu=m16c -c start.s m32c-elf-gcc -O2 -mcpu=m16c -Wfloat-equal -Wunused-variable -g

-Wa,-alhcn=m16c29test.o.asm,-L -c -o m16c29test.o m16c29test.c m32c-elf-gcc -O2 -mcpu=m16c -Wfloat-equal -Wunused-variable -g

-Wa,-alhcn=m16ctest.asm,-L -o m16ctest -nostartfiles -o start.elf start.o

-Wl,-Map=mapfile.txt -T m30290fc.ld m16c29test.o m32c-elf-objcopy -O srec start.elf start.srec rm start.elf

Bis auf die derzeit noch fehlende Debuggerunterstuetzung bin ich von den Controllern, gerade auch bei Entwicklung unter Linux, zu 100% ueberzeugt. Der Compiler unterstuetzt im uebrigen R8C, M16C und M32. Ich selber habe bisher nur R8C und M16C benutzt, aber der Mann der den gcc angepasst hat benutzt M32. Daher kannst du davon ausgehen das auch alles funktioniert. Das einzige was mich an Renesas echt abnervt sind ihre ganzen Controllerbezeichnungen. Also z.B M30290FCHP. Das kann sich doch kein Mensch merken. Da ist Mega8 echt eingaengiger.

Olaf

Reply to
Olaf Kaluza

Wenn 50% ungenutzt sind, ist das doch kein Problem: spätestens bei der nächsten Überarbeitung fällt einem noch was ein, was man vergessen hat ;-)

Zugegebenermaßen hab ich noch nicht bei denen angefragt, ich schätze mal daß die mir keine allzu großen Steine in den Weg werfen würden solange man sich halbwegs seriös verhält ;-) Schlimmstenfalls verweisen die mich dann an AK Modul Bus, die Glyn-Module wohl auch in Einzelstückzahlen an Privatmenschen verkaufen (laut deren Website).

Ich habs zumindest mal ins Auge gefasst. Und ne Anleitung stört ja nicht, selbst wenn ich persönlich sie dann doch nicht nutzen sollte. Man muß sein Wissen ja nicht mit ins Grab nehmen ;-)

Direkt per RS232 das programm in den Controller schieben bedeutet ja, daß da schon irgendwo ein Flashtool in nem ROM rumgeistert. Zumindest verstehe ich das so... Aber zum Debuggen heißts dann wohl doch wieder gdb plus JTAG plus OpenOCD, oder so ähnlich.

Naja, direkt mit dem Lieblingseditor und gcc geht natürlich auch, und das schreckt mich auch nicht.

Naja, werd' ich mich wohl zusätzlich auch noch mit make und/oder autoconf anfreunden müssen, aber das wäre mit Eclipse ja auch der Fall. Denn sowas

-Wa,-alhcn=m16c29test.o.asm,-L -c -o m16c29test.o m16c29test.c

-Wa,-alhcn=m16ctest.asm,-L -o m16ctest -nostartfiles -o start.elf start.o

-Wl,-Map=mapfile.txt -T m30290fc.ld m16c29test.o

kann ich mir nur schlecht merken ;-)

Nuja, man kann wohl nicht alles haben ;-) Wobei selbst die einfachen Bezeichnungen für meinen Geschmacvk etwas undurchsichtig sind: Welche waren jetzt nochmal 8-bitig, welche 16 und welche 32er? Die Zahlen sagen da jedenfalls entgegen meiner ersten Vermutung nix zu aus. Aber lieber M32C und R8C statt besagte M30290FCHP (M16C/29 ??)...

Gruß, Florian

Reply to
Florian Teply

Ich glaube das gilt nur fuer die R8C13 aus der Elektor, oder eventuell noch anderen Elektorsachen.

Na dann, ich hoffe das ist nicht zu kurz. Ich habe es fuer mich selber geschrieben falls ich das System nochmal neu uebersetzen muss.

---------------------------------------------------------------------- Dies ist eine kleine Anleitung wie man sich einen Cross-Compiler baut:

  1. Binutils.

Das sind Hilfsprogramme wie die der Compiler braucht. Dazu gehoert z.B der Assembler.

Aktuelle Version:

formatting link

Auspacken

tar xvjf binutils-051115.tar.bz2 cd binutils-051115

Konfigurieren fuer ein bestimmtes Target, hier im Beispiel fuer R8C/M16C/M32C. Wenn das System auf einem normalen Linux benutzt werden soll, so empfiehlt es sich ausserdem ein prefix anzugeben. Dieser wird allen erzeugten Programmen vorangestellt. Das sorgt dafuer das man spaeter problemlos den richtigen gcc aufrufen kann wenn man mehrere hat.

./configure --target=m32c-elf --program-prefix='m32c-elf-'

Uebesetzen:

make

Installieren nach /usr/local/bin. Letzeres koennte man eventuell noch aendern.

make install

Als naechsten braucht man newlib. Gibt es hier:

formatting link

oder:

cvs -z 9 -d :pserver: snipped-for-privacy@sources.redhat.com:/cvs/src login {enter "anoncvs" as the password} cvs -z 9 -d :pserver: snipped-for-privacy@sources.redhat.com:/cvs/src co newlib

Das sind spezielle Anpassungen des Comilers an die Zielhardware.

Hier gibt es den neuesten gcc:

formatting link

Auspacken des Compilers: tar xvjf gcc-core-4.1-20051112.tar.bz2

Newlib und libgloss da reinkopieren: cp -r src/newlib gcc-4.1-20051112/ cp -r src/libgloss gcc-4.1-20051112/

Verzeichnis im gcc-Verzeichnis erzeugen wo der Compiler erzeugt wird mkdir m32c-elf-gcc

Configurieren des Compilers.... cd m32c-elf-gcc/ ../gcc-4.1-20051112/configure --target=m32c-elf \ --program-prefix='m32c-elf-' \ --enable-languages=c \ --with-gnu-as --with-gnu-ld \ --with-newlib

Uebersetzen make

Falls es zu einem Fehler mit lib-gloss kam. make install-target-libgloss

make make install

----------------------------------------------------------------------

Falls man genau die Versionen nimmt die ich genommen habe sollte einfaches cut&paste reichen um sich den Compiler zu erzeugen.

Jein. Natuerlich hast du recht. Aber es ist fuer dich nicht sichtbar. Renesas hat wohl fuer sich ein geheimes stueck Flashrom abgezweigt und da immer eine Routine drin die ein Programm ueber die RS232 entgegenehmen kann.

Damit kannst du dann das Programm uebertragen:

m16c-flash --version M16C-Flash Programmer Version 0.1 Programs an M16C/62 or R8C microcontroller in asynchronous mode.

Es gibt auch noch andere Moeglichkeiten ein Programm in den Controller zu bekommen. Der Brenner von Renesas (E8) verwendet eine syncrone serielle Schnittstelle. Das macht unabhaengiger von der Taktfrequenz. Ausserdem haben neuere Controller, so z.B der R8C29 eine Brenn/Debugschnittstelle ueber den Resetpin.

Nicht zwangslaeufig. Es geht auch nur ueber die RS232.

Ich auch. Deshalb steht es ja im makefile und ich tippe nur make!

Olaf

Reply to
Olaf Kaluza

Zumindest wenn man dem letzten Satz auf dere Glyn-Unterseite bei AK_ModulBus glauben kann, besorgen die _alles_ was Glyn entwickelt hat. Aber im Zweifelsfall: fragen kostet nix, und wer freundlich fragt, dem wird in aller Regel auch geholfen.

Das sieht doch nett und vollst??ndig aus, wenn irgendwas nicht hinhaut hat man wenigstens schonmal einen Ansatzpunkt, wo man genauer hinschauen mu??...

Meist funktioniert das auch bei benachbarten Versionen. Eventuell mit angepassten Versionsnummern ;-)

Viele Wege f??hren bekanntlich ins ROM ;-) freeescale baut ja inzwischen in fast alle Controller neben ihrem BDM auch noch ne JTAG-Schnittstelle ein.

Daf??r wurden makefiles ja auch erfunden ;-)

Gru??, Florian

Reply to
Florian Teply

Upps, sorry - ich habe Debugwire und SWD durcheinandergeworfen, ich meinte SWD, das ist dokumentiert und steht bei openocd auf der Wunschliste.

cu Michael

Reply to
Michael Schwingen

Klar, ich habe ja auch bei mir die Kommandozeilen kopiert nachdem sie erfolgreich waren.

Nicht immer, glaub mir. Ich hab hier auch noch Crosscompiler fuer andere Target und das kann teilweise anstrengend werden. Aber versuchen kann man es natuerlich....

Ich dachte das war ein persoenlicher Rachezug gegen die Menschheit. :-) Also wirklich ich ziehe das Makefile-Konzept jederzeit einer GUI vor, aber manchmal moechte ich den Typen der die unterschiedliche Bedeutung von TAB und " " zu verantworten hat, schlagen! Und zwar mit irgendetwas hartem mit Naegeln drin.

Olaf

Reply to
Olaf Kaluza

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.