Hallo,
ich würde mich freuen, wenn wir hier als Marktübersicht Angebote
auflisten würden, die ALLE folgende Kriterien erfüllen:
1.
Preiswertes Embedded Microcontroller / Eval Board mit 8/16 oder 32 Bit
CPU
Also bitte nicht $500.. $1000 oder so...
2.
Kostenlose oder extrem preiswerte Integrierte Entwicklungsumgebung
auf Windows und/oder Linux, mit der man mit einem Hardware-Debugger
C/C++ Programme auf Source-Level debuggen kann
3.
Kostenloser oder extrem preiswerter vollwertiger C/C++ Compiler, der
mit o.g. Entwicklungsumgebung zusammenarbeitet ( ohne diese lästigen
"nur 4 KByte Codegröße" Beschränkungen von Demo-Versionen ), natürlich
gern ein GNU C/C++ Compiler. Wenn möglich auch mit C++, nicht nur C.
Also eben nicht der professionelle IAR Compiler zum Profi-Preis...
4.
Preiswerter Hardware-Debugger ( z.B. mit JTAG-Interface auf Seiten des
Eval-Boards, USB-Schnittstelle auf PC-Seite )
5.EXTRA
Unter 5 könnt Ihr Warnungen oder fiese Einschränkungen berichten, die
man umngehen kann oder eben auch nicht...
Interessieren würden mich insbesondere ARM ( 7,9, Cortex,..) basierte
Systeme, aber natürlich auch alles andere, besonders wenn man
Eval-Systeme für "beliebte" CPUs erhält. Gerne auch Vergleich der
verschiedenen Chip-Hersteller von ARM-Systemen, mit ihren
unterschiedlichen Angeboten an Eval-Boards und Hardware-Debuggern.
Bitte auch gern Links auf die Download-Adressen von ( in der Erzeugung
von Code nicht künstlich eingeschränkten ) C/C++ Compilern für das
besprochende Target, z.B. eben GNU C/C++ Cross-Compiler
Implementierungen.
So daß man Systeme vermeidet, bei denen man mit den 2K/4K
Compiler-Schnupperversionen gelockt wird, aber keine kostenlose
Compilerchain erhältlich ist, oder eben preiswertes Source-Level
Debugging nicht möglich ist weil es keine kostenlose IDE gibt die das
unterstützt und/oder nur teure Hardware-Debugger
Gerne auch Negativbeispiele wo man besser nicht zugreifen sollte, weil
nach dem Locken mit einem geringen Einstiegspreis alles weitere nur noch
zu Profi-Preisen erhältich ist...
Als Kaufentscheidung für Mitleser ist diese Liste sicher auch
langfristig interessant ( gelegentlich ist ja mal wieder Weihnachten :-)
).
****
So mal als kleine Vorleistung, und wie ich es mir würnschen würde, zu
meinem Nutzen und dem aller Mitleser:
Atmel ATxmega und ATmega 8-Bit CPUs
http://www.atmel.com/
1.
-preiswerte Eval-Boards von Atmel, mit Debug-Schnittstelle
-preiswerte Arduino-Boards, mit Debug-Schnittstelle
http://www.arduino.org/
2.
- kostenlose Atmel "AVR Studio 4" und "AVR Studio 5"
Entwicklungsumgebungen für Windows. Source-Level Debugging mit
Atmel-Hardware-Debuggern möglich.
- Entwicklung unter Linux mit Eclipse + Eclipse-Plugin möglich, AFAIK
auch Source-Level Debugging mit manchen JTAG-Emulatoren ( nicht JTAGICE3
!)
3.
kostenloser, insbesondere in der erzeugten Codegröße nicht künstlich
eingeschränkter GNU C/C++ Compiler. Volle C-Funktionaltät, C++ mit
leichten funktionalen Einschränkungen, da nicht alles implementiert (
kein RTTI,..).
4.
Preiswertester Atmel Hardware Debugger "Atmel AVR Dragon", u.a. mit JTAG
$49
5.
Warnung vor fast allen "Franzis Verlag Lernpaketen" mit Atmel-CPUs, die
offensichtlich kein Source-Level Debugging ermöglichen mangels
Schnittstellen, selbst wenn man aich einen Atmel Hardware-Debugger extra
besorgt ( nur das Board des Arduino-Lernpakets, so scheints, hat eine
passende Schnittstelle zu einem externen Hardware-Debugger - der
natürlich nicht im Paket inbegriffen ist).
Hi,
Deine Wunschliste sagt aus, das du weniger nach einem "Eval-Board"
suchst, als nach einer Controllerfamilie. Das Programmieren/Debuggen ist
normalerweise ja nicht eine Frage des Boards, sondern der Familie.
Es gibt natürlich EVAL-Boards die auch eine Debuggingfähige
Programmierschnittstelle on Board haben, allerdings ist man dann erst
mal an das Board gebunden. Das macht nur Sinn wenn das Gesamtboard nicht
teurer ist als ein Vergleichbares Board ohne Schnittstelle. Sonst gibst
du das Geld doppelt aus.
Auf jedne Fall würde ich in solchen Fällen die Finger von solchen
"Speziellen" Anfänger/-Laienlösungen lassen wo irgendein Interpreter auf
dem µC vorprogrammiert ist und man in einer Sprache schreibt die nur mit
diesen vorprogrammierten µC läuft und nicht in der "realen" Welt
ernsthaft verwendung findet.
Zudem würde ich, zumindest im 8Bit bereich, Hinsichtlich
Entwicklungsumgebung und HArdware nur auf Lösungen der Chiphersteller
zurückgreifen. Drittprodukte nur wenn 100% Kompatibel (Ein echter Clone
des Originaltools) Welches Board man von welchen HErsteller verwendet
ist dabei aber relativ egal solange man nur darauf achte das eine
vollweritge Schnittstelle vorhanden ist.
Atmel AVR hast du ja schon selbst ins Spiel gebracht.
Da gibt es einiges.
Aber mein Vorschlag währe - auch wenn gleich wohl wieder die ersten AVT
Fanboys wettern werden- sich auch mal beim zweiten unter Bastlern sehr
verbreiteten µC Hersteller umzusehen. (Die Verbreitung in der Industrie
dürfte sogar größer sein)
Die Rede ist von Microchip PIC.
PIC gibt es in 8Bit, 16Bit und 32 Bit. Selbst ausgefallene
HArdwarevarianten sind gut erhältlich. Die 32Bit Variante basierd auf
der MIPS Architektur die neben ARM die zweite Herstellerübergreifend
weit verbreitete Architektur ist. Selbst Leistungsfähige µC gibt es oft
noch in DIP versionen. Auch neue PICs werden, soweit technisch Sinnvoll,
immer noch auch als DIP angeboten. WEr also mit USB oder CAN arbeiten
will ist im Gegensatz zum AVR NICHT auf die eigene geätzte Platine
angewiesen sondern kann mit Lochraster oder dem Steckbrett loslegen.
Die aktuellen Programmiergeräte ermöglichen das Programmieren aller
aktuellen Bausteine, egal ob 8Bit, 16Bit oder 32Bit. Eines für alles.
GEnauso ist selbst mit dem einfachsten Modell PicKit3 bei einer Vielzahl
von Prozessoren Debugging möglich. (Wenn ein µC Debugging unterstützt,
dann können es immer alle Geräte!). HAt man aufgrund der Schaltung nicht
die Möglichkeit die drei für das Interface benötigten Leitungen während
des Debuggings zu "Opfern" oder einen der älteren µC die einen
speziellen Headerbaustein brauchen, so sind diese Spezialadapter mit
17Euro sagenhaft günstig im Vergleich zu anderen Spezialmodulen.
Die IDE ist kostenlos. Es gibt auch kostenlose Versionen der weiteren
Compiler. Die Compiler für 16 & 32Bit basieren auf GCC. Eine
Codegrößeneinschränkung gibt es nicht, lediglich ist bei der
vorkompilierten Version nicht die maximale Optimierung möglich.
Bei den GCC basierenden VErsion ist der Quellcode offen, so das man bei
Selbstkompilieren hier auch kostenlos den vollen Leistungsumfang haben
kann.
Die IDE selbst wird schon von Microchip selbst direkt in einer Windows -
aber auch in einer Linuxversion herausgegeben. Im Normalfall läuft das
ganze System nach der Installation "Out_of_the_Box" problemlos.
An Konfiguration muss man bei nutzung der Standartkonfiguration nur den
Programmer auswählen. Bei USB Geräten NICHTS weiter. (Bei alten COM
Geräten natürlich noch die Schnittstelle)
Es besteht keine Möglichkeit sich durch falsches setzen der FUSES
auszusperren. Auch kein Gefummel mit unterschiedlichen SPI takten usw.
Sind die Leitungen richtig angeschlossen funktioniert es einfach.
Das ganze wie geschrieben sowohl unter Windows, wie auch direkt unter
Linux!
Das günstigte Debugging Tool kommt bereits als Anschlussfertiges
Kompletttool im Gehäuse und ist extrem robust. ICh habe dieses schon
mehrmals mit Kurzschluss oder Überspannung gequält und es arbeitet immer
noch fehlerfrei. Kein Vergleich oder Aufwand mit Berührungsempfindlcihen
Bauteilen oder Bau von Schutzschaltungen und Gehäusen die höchste
Vorsicht erfordern wie beim AVR Dragon.
Das Pickit3 bekommt man als originales Einzelgerät so ab 35Euro, als
100% Clone aus China so ab 20Euro.
Das Kit mit dem PK3 und einem (sehr einfachen) Eval Board kostet je nach
Händler um die 50-60 Euro.
Von Microchip selbst gibt es eine große Menge Beispielsoftware und
vorgefertigte Libs zur freien Verwendung -auch in Kommerziellen
Projekten- komplett aus einer Hand. Ein zusammensuchen aus dem Netz
-verbunden mit allen Nachteilen wie verschiedenste Programmierstile oder
rechtlichen Unsicherheiten- entfällt.
Aber das soll es auch zu Microchip gewesen sein ;-)
Die ARM Architekturen sind auch nicht schlecht. ICh setze diese neben
den PIC32 auch gerne ein. Je nach dem was gerade am besten passt. Die
zum jeweils aktuellen Projekt passenste Peripherie ist entscheident. Für
Kommerzielle ZWecke nutze ich aber nur die STM, Hobbymäßig auch noch TI
(Hängt mit der Vorhandenen Ausstattung und den damit verbundenen
"Rechten" zusammen.) Es ist aber keinesfalls so das "ARM"=="ARM" ist.
Die Ähnlichkeit zwischen einem ST - ARM und einem TI - ARM ist aus sicht
des PRogrammierers bei nutzung der HerstellerLibs kein deut größer als
zwischen dem ST - ARM und dem Microchip MIPS.
Lediglich bei Nutzung der von dir schon genannten "teuren"
Entwicklungsumgebungen und "teuren" Tools ist der Unterschied kleiner
wenn man die jeweiligen mitgelieferten LIBs verwendet. Trotzdem bleibt
immer noch der Unterschied in der Anschlussbelegung.
Leistungsfähige Programmiertools bekommt man nur in einer
"Herstellerspezifischen" Version günstig. Ein gutes Beispiel ist z.B.
der ST-Link für um die 30-40 Euro, der schon viel bietet - aber halt
auch nur für ST 8 & 32Bitter.
Für reine Hobby oder Ausbildungszwecke kommt auch noch der Segger J-Link
EDU in Frage. Eine Herstellereigene kostenlose IDE gibt es aber nicht.
Hier bleibt nur die Beschränkung auf kleine Codegrößen zu akzeptieren
oder aber der Umweg über eine open Source Toolchain mit z.B. Eclipse als
Editor.
(Da habe ich aber beim Einrichten immer mal wieder heftig geflucht)
Als drittes würden mir neben den schon genannten Alternative noch die
Controller von Renesas einfallen. Auch für diese gibt es
Programmiergeräte und Debugger teilweise sehr günstig. Nachteilig ist
das einem hier manchmal der Überblick fehlt das es doch so einige
-teilweise von de rProgrammierung völlig inkompatible- Familien von
Renesas gibt.
Von der LEistung sind die aber gar nicht mal übel.
Von dem geschriebenen abgesehen gibt es aber sicher noch deutlich
mehr...
Gruß
Carsten
(Der z.Zt sowohl PIC wie auch AVR, ARM und Renesas einsetzt - sogar
8051er KErne in neuen Spezialanwendungen sind noch dabei)
EDIT:
EvalBoards haben alle oben genannten Hersteller recht preiswert im
Programm. PReisspanne für gebräuchliche Boards so von 20 Euro bis so 200
Euro je nach Komplexität. Auch gibt es einige Drittprodukte.
Aber um jetzt ein konkretes Board empfehlen zu können müsste man schon
eher wissen was man machen möchte. Sollen nur ein paar LEDs blinken
nimmt man ein anderes Board als wenn man aufwendige Grafikanwendungen
mit ColourTFT und Audioverarbeitung machen möchte. Für USB etwas anderes
als für Motorsteuerung.
NAtürlich gibt es auch sehr komplexe Boards die einen größeren Bereich -
aber nicht alles- abdecken.
Richtig währe es sich erst für eine Familie zu entscheiden - Und erst
DANN das passende Board heraussuchen. Oder halt gleich ein eigenes zu
entwerfen.
Gruß
Carsten
Hallo Carsten,
Danke für die Antworten,
I) Weitere Fragen
a)
Atmel habe ich durch Teilnahme an einem $99 Workshop in Bochum
kennengelernt, wo es für den Preis den Atmel JTAGICE3 Debugger + das
allerneueste ATxmega256BVU Board mit LCD dazugab :-)
http://www.hemmerling.com/doku.php/en/atmel.htmlhttp://www.hemmerling.com/doku.php/en/atmega.htmlhttp://www.hemmerling.com/doku.php/en/atxmega.html
b)
PIC und Renesas sind mir natürlich bekannt,
Danke für Deine positive Einschätzung gerade von PIC,
die haben ja sogar teilweise DSP-Funktionalität
bei Renesas ist mir aufgefallen daß es dort mehrere inkompatible
"Familien" im 32-bit Bereichgibt...
c)
"da ich aus dem Desktop-Bereich komme, auch wenn ich Z80 + 8051 + C166
Erfahrungen habe",
wären natürlich CPU's mit "echtem" C++ Compiler interessant - gerade
Atmel bietet das JETZT auch auf 8-bit ( mit 256K Flash, 16K Ram ),
daher wollte ich mich möglichst nicht auf Systeme einschießen die wie
Atmel in den 2000er Jahren, so auf 8K Flash und 1K Ram oder gar weniger
abzielen...
d)
****************************************
wichtig ist mir ( und für zukünftige Leser dieses Threads )
aber tatsächlich der Aspekt einer IDE die mit Hilfe eines
Hardware-Debuggers das "Source-Level Debuggings" in Verbindung mit
einem uneingeschränkten Compiler ermöglicht
Es nutzt ja auch nichts, wenn der vielleicht vorhandene GNU-Compiler
nicht mit einer kostenlosen IDE zum laufen zu bringen ist,
oder die Standardlösung Eclipse + GNU Crosscompiler keine
Hardware-Debugging Möglichkeit mangels Eclipse-Plugin zum Code-Upload
ect. aufweist,
oder eben keine GNU-Debugger Funktionalität zum Host-Debuggen existiert
( mit Atmel soll das mit GNU-Debug funktionieren unter Linux, mit
manchen hardware-Debuggern!)
****************************************
e)
Was mich jetzt noch ergänzend interessieren würde, wären Tipps zu
ARM-Boards ( ARM7,9,11, Cortex,..) bei denen man das auch "hat", bzw.
bei welchem Halbleiter-Hersteller der ARM-Technologie in seinen CPUs
nutzt es bei seinen Toolchains "am meisten für fast kein Geld" :-) gibt.
TI - ?
Freescale - ?
ST - da war Carsten ja drauf eingegangen
?? - ?
Bei Freescale gibts z.B. das MQX als kostenloses Betriebssystem,
TI-Mitarbeiter haben in 2011 angedeutet, daß in der TMS570 ARM-CPU Reihe
in der nächsten Generation auch ein Ethernet-Modul integriert werden
könnte, so daß dann auch die TI-Eval Boards das "drauf" hätten... und TI
auch einen angepassten OpenSource TCP/IP Stack spendieren wird der z.B.
dann auch mit FreeRTOS zusammenlaufen sollte ( dann wird's wirklich
interessant für mich, Ethernet on Board ist immer ein Argument ).
f)
Beim ARM gibt es dann ja noch die beliebten "Beagle-Boards" /
"Pandaboard.", habe ich mir letztes Jahr bei TexasInstruments auf dem
TI-Day angesehen,
wo beim Beagle-Board umständlich erst mit USB-Stecker-Brücken ein
Ethernet-Adapter rangezaubert werden muss, weil das der ARM-Chip nicht
kann und der Entwickler den Ethernet-Adapter nicht als externe Hardware
auf das Board gepackt hat..
Ich bitte um Eure Einschätzung, lieber Leser:
Da laufen dann aber ja schon Betriebssyteme bis hin zu Linux drauf.
Im Vergleich zu einem 8/32 Bitter wo man wirklich mit "main()" anfängt
zu programmieren,
und einem Desktop-Linux wo man auf dem Target compiliert,
vermutlich doch ein "höherer Schwierigkeitsgrad" ?
g)
Es gibt ja diese ganzen USB-Entwicklungssticks
hier mal eine Liste von Hitex
http://www.hitex.com/index.php?id=339&PHPSESSID=60425a26248f247741908bf3d8b9d070
wie steht es da mit Source-Level-Debugging ? Der Anschluß eines weiteren
Hardware-Debuggers ist da ja nicht vorgesehen.. andererseits wird
vielleicht eine interne Debugging-Schnittstelle mit "verschenkt" die man
trotz günstigem Stick-Preis dann halt jedesmal "mitkauft", aber man hat
sie ?!
II) Warum die Frage
Die Frage dieses Threads wurde in heute, in 2011 gestellt. Eine ganze
Generation von Hobby-Bastlern hat z.B. auf Atmel die letzten 10 Jahre
ohne Hardware-Debugger gelebt, z.B. die Gemeinde um den kommerziellen
BASCOM-Compiler für Atmel ( der bis heute die Atmel-Hardware Debugger
nicht unterstützt ). Das ist eigentlich nie akzeptabel gewesen, und
führt ja nicht zu schneller und produktiver Softwareentwicklung, wenn
man auf Printf()-Debugging angewiesen ist....
Es ist also an der Zeit, zu erwarten, daß auch bei
Billig-Entwicklungsumgebungen der vom Desktop bekannte Komfort mit dabei
ist :-).
III Warum ich frage
WEIL das ist die Motivation, ich bin Elektroingenieur zur Zeit auf
Auftragssuche und aufgrund meiner Vita ( zu lang studiert, zu wenig
Berufserfahrung..) ohne gute Chancen auf Jobs/Aufträge,
sehe daß aufgrund der Marktbedeutung gefragt wird "ja können Sie denn
ARM, welche Erfahrungen haben Sie denn damit ?".
*Ich wollte also trotz Ing-Titel jetzt nicht zum Hardware-Bastler
eigener Platinen werden , sondern ein Eval-Board mit dem ich mit den
On-Board Sensoren + Aktoren was anfangen kann - ein Ethernet-oder
WLAN/WifI/Bluetooth-Anschluss würde also z.B. auch die
Webserver-Funktionaltität ermöglichen.
***************
Also eher eine Beschäftigung als "Software-Ingenieur", um "hardwarenahes
Programmieren" zu üben.
***************
Drum wenn einem nicht noch eine weitere CPU-Familie einfällt wo doch
alles preiswert geht mit dem Source-Level Debugging,
******************************************
bitte Konzentration um ARM-Lösungen ( vom USB-Stick bis hin zum
Beagle/Pandaboard ), und wo+wie Source-Level Debugging mit nahezu
kostenfreier Software und preiswerter Hardware möglich ist -:).
******************************************
Viele Grüße
Rolf