Howdy,
habe ausgiebig die Threads studiert, muss jedoch noch einmal auf die
allseits beliebte Frage zurück kommen: wie anfangen?
Habe mich mittlerweile auf STM32 bzw. LPC1x festgelegt. Die ursprünglich
mal angedachten Arduinos sind komplett raus. Bei den Cortex-M- Boards
scheint die Toolchain-Hölle zumindest für Hobbyisten immer noch zu
existierien. Auf der anderen Seite gibt es sowas wie mbed, die ihre
Tools über ein Web-Frontend verfügbar machen und den ISW ("it simply
works")- Anspruch haben.
Dafür ist man aber auf den LPC1768 bzw. LPC11U24 beschränkt. Gut, kosten
auch nicht mehr die Welt, aber wenn man später mal ein paar mehr von den
Teilen braucht und es pro Board 20€ ausmacht, wäre das schon
überdenkenswert....
Bei mbed gibt es eine Reihe von C++ Beispielen, die mir gut gefallen
haben. Speziell angeschaut habe ich mir die 1-wire Implementierungen,
die ich quasi unverändert einsetzen kann. Zumindest bei den ST-Libraries
und Beispielen habe ich sowas nicht gefunden. Könnte man so etwas
prinzipiell eher leicht oder schwer portieren? Ich könnte mir
vorstellen, dass die Sachen eigentlich unverändert auch mit einer
anderen Toolchain laufen müssten.
Letztendlich läuft das alles auf die Abwägung hinaus, etwas Einfaches,
aber Überdimensioniertes und nicht debugging-fähiges zu haben, oder aber
den offensichtlich immer noch sehr steinigen Weg der eigenen Toolchain
zu gehen, dafür aber die freie Wahl der Ziel-Hardware, sowie
Debuggingmöglichkeit zu haben. Dann gibt es noch die Gerüchte, dass es
für 150 USD eine gute und einfach zu bedienende, aber doch
leistungsfähige Toolchain geben soll. Wäre bereit, das auszugeben, wenn
Debugging und Simulator dabei wären.
Was könnt ihr mir raten? Ich könnte mir vorstellen, dass es eine fertig
konfigurierte Lösung für Windows Rechner für diese allgemeine Aufgabe
gibt.
Kinder, Kinder,
Toolchain, Web-Frontend, Gigahertz Superprozessoren…
Kein Wunder, dass jede fortschrittliche Kultur bisher immer wieder
untergegangen ist.
Wow! Dieses Coocox sieht wirklich gut aus! Habe mal die Webseite
durchgesehen und bin beeindruckt. Werde das mal sofort probieren!
Hätte aber noch folgende Fragen:
- man braucht noch ein Interface um die Verbindung zum Board
herzustellen. Was empfiehlt sich da so? Kann mit den Schlagworten wie
JTAG etc. noch nicht so viel anfangen.
- kriegt man printf-Ausgaben auch über diesen Weg auf ein Terminal auf
den PC? (Debug-)Logging ist für mich sehr wichtig.
- man braucht noch den gnu-Compiler extra. Ist ja kein Problem, bedeutet
das auch, dass man in C++ programmieren kann?
- Coocox scheint eine Firma zu sein. Wieso geben die die IDE kostenlos
raus? Wie ist das Geschäftsmodell? Nicht dass man dann später zahlen
muss, wenn man was "Richtiges" machen will.... :-)
((Werde Montag mal gleich ein Board bestellen. Kann das über meine Firma
abwickeln. Welcher Händler ist hier angezeigt? )).
Grüße
Computador
> - man braucht noch ein Interface um die Verbindung zum Board> herzustellen. Was empfiehlt sich da so? Kann mit den Schlagworten wie> JTAG etc. noch nicht so viel anfangen.
Das STM32F4Discovery ist zugleich auch ein Programmiergerät. Es wird per
USB an den PC angeschlossen
> - kriegt man printf-Ausgaben auch über diesen Weg auf ein Terminal auf> den PC? (Debug-)Logging ist für mich sehr wichtig.
Klar. Du brauchst ev. noch einen RS232 zu TTL-Wandler. Der µC hat
natürlich einen Usart
> - man braucht noch den gnu-Compiler extra. Ist ja kein Problem, bedeutet> das auch, dass man in C++ programmieren kann?
Du brauchst die GCC-Toolchain. Die läd man kostenlos runter und macht
sie der Coocox-IDE bekannt.
> - Coocox scheint eine Firma zu sein. Wieso geben die die IDE kostenlos> raus? Wie ist das Geschäftsmodell? Nicht dass man dann später zahlen> muss, wenn man was "Richtiges" machen will.... :-)
Ist definitiv umsonst. Und zwar unbegrenzt. Weitere Infos auf
www.coocox.org
> ((Werde Montag mal gleich ein Board bestellen. Kann das über meine Firma> abwickeln. Welcher Händler ist hier angezeigt? )).
Kommt drauf an. Ich habe meins bei Mouser damals bestellt. Dort kostet
es 12 Euro. Die Versandkosten sind aber erst ab 75 Euro umsonst.
Ansonsten gibt es diverse Versender für das Board
Jo, erst mal vielen Dank.
>Ergänzung:>Man programmiert in c und nicht in c++ (Coocox)
hmmm. Wieso geht C++ nicht?
>> - kriegt man printf-Ausgaben auch über diesen Weg auf ein Terminal auf>> den PC? (Debug-)Logging ist für mich sehr wichtig.>>Klar. Du brauchst ev. noch einen RS232 zu TTL-Wandler. Der µC hat>natürlich einen Usart
hmmm2. USART? mit seriellem Kabel via Pegelwandler zum Host? Der eine
serielle SN haben muss? Das geht technisch natürlich, aber mein PC hat
keine serielle SN. Seriell zu USB gibts natürlich, sollte aber doch
nicht nötig sein? Ich dachte eigentlich, dass das über die SWD oder JTAG
- Schnittstelle mit dem USB-Kabel gehen könnte.
LG
computador
> Seriell zu USB gibts natürlich, sollte aber doch> nicht nötig sein?
5 Euro für einen Wandler sind nicht mehr übrig? ;-)
> Ich dachte eigentlich, dass das über die SWD oder JTAG
SWD zum Debuggen und Flashen. Die serielle Verbindung mit einem
Terminalprogramm macht man überlichweise mit einer seriellen
Schnittstelle.
Soweit ich weiß geht das nicht über die USB-Schnittstelle die auf dem
Board ist.
> Wieso geht C++ nicht?
Wozu brauchst du denn c++? Mikrocontroller werden überlichweise mit c
programmiert.
lg
jo
Hallo Jo,
> 5 Euro für einen Wandler sind nicht mehr übrig? ;-)>
Das wäre nicht das Problem. Was bedeutet das? Habe ich dann 2 USB-Ports
belegt, einen für den Programmer und einen für die serielle
Kommunikation? USB-Portmultiplexer wäre dann nötig, was hoffentlich
gehen wird.
>> SWD zum Debuggen und Flashen. Die serielle Verbindung mit einem> Terminalprogramm macht man überlichweise mit einer seriellen> Schnittstelle.
natürlich. Die Boards, die ich bisher kenne, leiten das aber über die
bestehende USB-Programmier-Verbindung in ein Terminalfenster der IDE. So
macht das z.B. mbed, ebenfalls NETMF, und IMHO wäre das der Standard,
wie man es macht. So hatte ich es eigentlich erwartet....
>> Wieso geht C++ nicht?>> Wozu brauchst du denn c++? Mikrocontroller werden überlichweise mit c> programmiert.
Eigentlich nicht. Microcontroller verstehen kein C, sondern Bitmuster.
C ist genauso wie C++ oder z.B. auch C# eine Möglichkeit, diese
Bitmuster bequemer zu erzeugen. Warum jedoch C++ für hardwarenahe
Programmierung C überlegen ist, kannst du z.B. bei Stroustrup nachlesen.
Bei den alten AVRs war es noch im Wesentlichen Assembler, dann kam C,
und bei den heutigen leistungsfähigeren Architekturen mit größerem
Speicher sowohl für Proggies als auch Daten ist eine objektorientierte,
hardwarenahe Sprache definitiv das Mittel der Wahl. Schau mal ein
modernes RTOS an: Tasks, Semaphore, Queues, Mutexe - alles Objekte von
Klassen, und das ist gut so. Schau auch mal bei mbed vorbei - dort sind
nahezu alle Beispiele in C++.
LG - computador