Forum: Mikrocontroller und Digitale Elektronik Preiswerte Eval-Board, bei denen man C-Source-Level-Debugging machen kann


von Rolf H. (Firma: http://www.hemmerling.com) (hemmerling)


Lesenswert?

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).

von Carsten S. (dg3ycs)


Lesenswert?

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)

von Carsten S. (dg3ycs)


Lesenswert?

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

von Rolf H. (Firma: http://www.hemmerling.com) (hemmerling)


Lesenswert?

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.html
http://www.hemmerling.com/doku.php/en/atmega.html
http://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

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.