On 2015-02-20, Olaf Kaluza <
ol...@criseis.ruhr.de> wrote:
> Michael Schwingen <
news-13...@discworld.dascon.de> wrote:
>
>
> >Sagen wir so: der Einstieg ist mit avrgcc und avr-libc einfacher - es gibt
> >nur diese eine (verbreitete) Toolchain, und jeder benutzt die.
>
> Jeder? :-)
>
> [olaf] ~/sources: cross-avr-gcc -v
> Using built-in specs.
> COLLECT_GCC=cross-avr-gcc
> COLLECT_LTO_WRAPPER=/usr/local/cross/libexec/gcc/avr/4.7.0/lto-wrapper
> Target: avr
> Configured with: ../gcc-4.7.0/configure --target=avr --prefix=/usr/local/cross --program-prefix=cross-avr- --enable-languages=c,c++ --disable-nls --disable-libssp --with-gnu-as --with-gnu-ld --with-newlib --with-checking=release
> Thread model: single
> gcc version 4.7.0 (GCC)
>
> Ich uebersetze mir meine privaten Compiler lieber selber. Da weiss man
> was man hat und vor allem ich habe denselben Versionsstand fuer alle
> meine Controller.
OK - mache ich teilweise auch. Trotzdem ist das effektiv der gleiche
Compiler, mit den gleichen specs, Linkerscripten, dem gleichen Startupcode
und der gleichen libc wie der, der bei Atmel oder bei arduino verwendet
wird.
Die Unterschiede, die da auftreten, sind geringer als zwischen den
verschiedenen Kombinationen von IDE/Startupcode/Herstellerlibraries im
ARM-Umfeld.
> >Bis man mit einem beliebigen Cortex-M produktiv ist, ist die Schwelle höher:
> >irgendwie zurechtgedengelte IDEs, deren interne Projektverwaltung die
> >interessanten Details versteckt
>
> Ach? Was hat denn die IDE mit dem Controller zutun? Ich benutze hier
> je nach Tageslaune Emacs/Make oder Eclipse. Egal fuer welchen
> Controller.
Du klickst in der IDE auf "neues Cortex-M0 Projekt mit STM32F030" und
versuchst dann, das zu übersetzen. Anstatt eines Makefiles übernimmt die
IDE die Kontrolle welcher Startupcode, welches Linkerscript etc. verwendet
wird - das kann aus dem Lieferumfang von IDE (bzw. Prozessor-Plugin) sein,
oder aus dem Portfolio des crossgcc. Teilweise werden partielle Makefiles
gebaut, wo wieder nicht klar ist, woher die restlichen Definitionen kommen.
Wenn es nicht funktioniert (oder Du nur nachsehen willst, *was* da
eigentlich passiert), ist das übel.
Ich bin auch eigentlich eher ein Freund von emacs+make, aber da ich wissen
wollte, wie das notfalls auch mal unter WIndows geht, habe ich mir die
diversen angebotenen IDEs halt mal angesehen. Als einzige brauchbare Lösung
ist dann vanilla eclipse mit OpenOCD-Debugger-Plugin übriggeblieben - und
make. Wenn es funktioniert, ist die Debugunterstützung schon sehr nett.
> >und die Fehlersuche extrem erschweren,
>
> Hat den AVR mittlerweile einen brauchbaren Debugger? Als ich vor
> Jahren auf die R8C mit ihrem Debugger gestossen bin habe ich nur noch
> ueber AVR gelacht und alle neuen Projekte auf Renesas umgestellt.
Ich habe das auf AVR nie benutzt, die Tools und Protokolle sind IIRC nicht
wirklich offen. Auf ARM sieht es da deutlich besser aus.
> >Ich bin inzwischen zum Ergebnis gekommen, die ganzen
> >rundum-sorglos-Hersteller-IDEs liegenzulassen und nackt mit gcc-arm-embedded
> >plus Makefile zu übersetzen.
>
> Das ist ja auch die uebliche vorgehensweise bei Profis. Wie willst du bei
> so einem Eclipse-Monster sonst bei der Zertifizierung auch nachweisen
> wie genau den Source uebersetzt wurde oder es gar spaeter reproduzieren.
> Man kann allerdings trotzdem Eclipse benutzen wenn man will.
Ja - damit sind aber die ganzen von den Herstellern gepimpten
Eclipse-Versionen (Code Red, Coocox, ...) Unsinn - deren Mehrwert liegt ja
größtenteils in den Teilen, die ich mit make eh nicht benutze.
Ich wollte einfach nicht glauben, daß das wirklich so schlimm ist - das war
aber mein erster Kontakt mit Eclipse.
> >Andererseits: wenn man die Einstiegshürde mal überwunden hat, sind die Teile
> >nett. Sobald man bei einem Atmel 64k Flash braucht, ist man mit einem
> >passenden Cortex-M in der Regel besser bedient - und teurer sind die dann
> >auch nicht wirklich.
>
> Hehe. Der Grund warum der ARM-Kram derzeit den Markt aufrollt ist das
> er schlicht billiger ist.
Was ja nicht schlecht ist - wenn ich für weniger Geld eine CPU bekomme, wo
ich mich nicht mit den Einschränkungen des AVR 'rumschlagen muß, ist das OK.
> >der Unterschied ist dann
> >nur in der Peripherie um den CPU-Kern herum.
>
> Nur ist gut! Das ist bei einem Controller der MEGAENTSCHEIDENDE
> Unterschied. Da die Programmierung in C erfolgt ist der Core
> nebensaechlich. Es erstaunt mich immer wieder wie sich da Leute die
> es selber besser wissen muessten selber einen in die Tasche luegen.
Schon klar. Und auch da ist das Feld weit - ARM hat derzeit den Vorteil, daß
die Tool-Unterstützung gut ist, und die Unterschiede, die es zwischen den
herstellern gibt, liegen eher an der Peripherie oder der Prozeßtechnologie.
Wenn die Meldungen zum neuen STM32L4 stimmen (sprich: braucht wirklich
weniger Strom als ein MSP430), ist das ein gutes Beispiel dafür.
Wobei: im Batteriebetrieb sind die ganzen Herstellerangaben ja sowieso mit
extremer Vorsicht zu genießen. Interessanter Artikel, der die
Marketing-Angaben von "10 Jahre mit einer Batterie" ins rechte Licht rückt:
http://www.ganssle.com/reports/ultra-low-power-design.html
> >ST hat günstige Evalboards incl. Debugger, die gescheit mit
> >Open-Source-Tools funktionieren - NXP eher nicht, für den LPC1768 habe ich
> >einen ST-Link zum Debuggen genommen.
>
> Das geht? Haette ich jetzt nicht gedacht. Allerdings finde ich die
> paar Kroeten fuer einen JLink-Edu auch okay. Schon erstaunlich was
> moeglich ist wenn in China die Nachbauten vom Fliessband hopsen. :-)
Ja, tut bestens - der ST-Link war halt als einer der ersten mit
SWD-Unterstützung im OpenOCD dabei. Was mir an den ARMs gefällt, ist die
Offenheit - die Kerne sind incl. Debug-Schnittstelle gescheit dokumentiert,
so daß es brauchbare freie Tools dafür gibt.
> Beruflich nutze ich derzeit Silabs/Gecko. Die sind technisch in
> Ordnung. (vielleicht von ihrem beknackten Gehauese mit dem fetten
> Massepad mal abgesehen)
Die LPC812 sind süß ...
> Bloss die Datenblaetter...manoman. Die wurden wohl von einem
> Marketinghengst mit Powerpoint (ausspuck) geschrieben.
Die ST-Datenblätter sind OK, aber teilweise etwas unübersichtlich verteilt -
subjektiv aber grob in der Klasse wie die Freescale-PowerPC-CPUs, die wir in
der Firma einsetzen und damit durchaus benutzbar.
cu
Michael