Hallo
Ich will in die Welt der ARM-Prozessoren einsteigen.
Ich habe bereits Erfahrungen mit diversen 8-Bittern (AVRs, PICs) und nun
sind die 32-Bitter dran ;)
Was ich zum Einstieg suche ist eine Art "Starter Kit". Ein Board, am
besten eine gute Dokumentation dazu, etc.
Da gibt es ja vieles, aber mich würde interessieren was ihr empfehlen
würdet.
Auch hinsichtlich der Verbreitung des Boards, der Technologieneuheit
(altes Brett oder brandneu) und des verwendeten Prozessors (Exot oder
Standard) und des Supports.
Ich kenne mich mit den verschiedenen ARM-Typen der ganzen Hersteller
überhaupt nicht aus und suche desshalb ein Board auf dem ein verbreiter
IC zum Einsatz kommt.
Will auf jeden Fall mit der derzeit aktuellsten Serie einsteigen, das
dürfte wohl der ARM-Cortex sein?
Vielen Dank für eure Hilfe!
Vom Cortex M3 würde ich abraten. Der ist noch ZU NEU.
Wenn du viele Beispiele und eben eine große Verbreitung suchst,
dann entscheide dich für einen ARM7TDMI von Atmel oder NXP.
Ich persönlich habe die NXPs lieb gewonnen.
Ist das ganze beruflicher Natur (darfs was kosten?) oder suchst
du eine Toolchain "für lau"?
Hallo
danke schonmal für die Infos! Werde mir die Links anschauen sobald ich
Zeit habe, stehe nur gerade zwischen Tür und Klinke ;)
Na stimmt, zu neu und evtl. unausgereift ist dann auch nichts.
Das ganze ist nur hobbymäßig und sollte nicht alzu viel kosten. Sagen
wir mal bis 150€ ist okay.
Gut konstruierte Einstiegsboards gibt es bei embeddedartists.com,
beispielsweise eines der Quickstart-Boards plus Prototype-Board. Achtung
bei den Preisen: 25% MWSt und recht viel Porto kommt noch dazu.
Die LPC2100 sind zwar nicht mehr die neuesten, aber gut eingeführt, gut
erhältlich und alle Bugs sind bekannt.
Nur haben Kits von Herstellern von Entwicklungssystemen gewisse
Nachteile (Primer: Raisonance). Einer davon ist das nachvollziebare
Desinteresse des Herstellers, ein anderes als das eigene
Software-Entwicklungssystem zu unterstützen.
So kommt man beim Primer nur mit dem dafür vorgesehenen JTAG-Debugger an
das Teil ran und der Primer fungiert andererseits als USB-Dongle für die
Software. Wenn man später dann mal eine eigene Platine baut, muss man
entweder auf ein anderes Entwicklungssystem umsteigen oder die Software
bezahlen.
Manchmal kommt man zudem schlecht an die Innereien ran. Beim Primer muss
man dazu einen Stecker selber ranlöten, der zudem wohl im 2mm statt
2,54mm Raster daher kommt. Und etliche Pins sind daran nicht verfügbar.
Die Hitex-Dinger wiederum sind berüchtigt für vorsätzlich unvollständige
Schaltbilder. Das immerhin scheint beim Primer besser zu sein.
.
> Manchmal kommt man zudem schlecht an die Innereien ran. Beim Primer muss> man dazu einen Stecker selber ranlöten, der zudem wohl im 2mm statt
na dafür sind doch die wesenlichsten pin auf dem stecker ??
bei der grösse ist 2mm noch brauchbar.
der interne bootlader währe auch ohne jtag-anhängsel zu erreichen ??
und für eigene grössere projekte, sieht doch das olimexboard für
http://www.sander-electronic.de/es0028.html#STM32-H103
für lau... 36,29 inkl.mwst doch auch recht ordentlich aus ???
Jürgen wrote:
> der interne bootlader währe auch ohne jtag-anhängsel zu erreichen ??
Wenn du den im STM32 integrierten Bootloader meinst, dann geht das beim
Primer nicht ganz so einfach. Du musst dafür beide Boot-Pins umlöten.
Die natürlich nicht an dem Stecker hängen. Von Haus aus stehen die auf
1.0 = User Flash, nötig ist dafür 0.1 = System Memory.
Ich habe nun etwas rumgeschaut. Schlauer geworden bin ich noch nicht,
nur dass ich wohl keinen Cortex-Core nutze. Von vielen Herstellern hört
man ja, dass sie nun die brandneue Lizenz haben...da warte ich noch.
Das Board sollte auf jeden Fall durchweg mit OpenSource Programmen
programmierbar sein. Will später ARMs in eigene Leiterplattendesigns
integrieren und möglichst keinen ganzen Softwarepool besitzen ;)
Denke nun, dass ich mir einen ARM7 - ARM11 holen werde.
Aber ich hätte da noch ein paar Fragen:
- In wiefern unterscheiden sich die Mitglieder der ARM-Reihe
voneinander? Ist der ARM11 dem ARM7 haushoch überlegen? Oder hat das
mehr mit "Feintuning" als mit echten Inovationssprüngen zu tun?
- Gibt es von euch empfehlenswerte Literatur. So ein kleines Büchlein
zur Hand spart sicher Zeit ;)
- Da ich auch AVRs programmiere habe ich das USBprog. Damit kann man ja
auch ARMs programmieren. Wenn ich das richtig verstehe brauche ich also
nur noch irgendein Eval-Board mit JTAG-Programmier-Interface und die
passende Software vom Flashen. Da soll sich ja Yatargo anbieten wie ich
gelesen habe.
Die Unterschiede der ARM-Reihe sind groß und lassen sich nicht
in 2-3 Sätzen erklären. Aber nach oben hin gibts halt tiefere
Pipelines, MMU, Cache, usw.
http://www.arm.com/products/CPUs/core_selector.html
Also eher auf Betriebssysteme wie Linux, Windows CE ausgelegt.
Beschränke dich daher mal auf ARM7TDMI.
Alles andere ist für den Hausgebrauch nichts.
Florian wrote:
> - In wiefern unterscheiden sich die Mitglieder der ARM-Reihe> voneinander? Ist der ARM11 dem ARM7 haushoch überlegen? Oder hat das> mehr mit "Feintuning" als mit echten Inovationssprüngen zu tun?
Der ARM7 Core erinnert hinsichtlich seiner Implementierung an die 80er,
entstammt in direkter Linie dem ersten ARM. Neuere Cores sind weiter
entwickelt, beispielsweise was Pipelining angeht, und sind damit eher
als ARM7 in der Lage bei entsprechender Chip-Tech hohe Taktfrequenzen zu
erreichen.
Aber das heisst nicht, dass ARM7-Lösungen veraltet sind. Das heisst nur,
dass man den einfacheren ARM7 eher nicht in Linux-Lösungen bei 300MHz
finden wird, und ARM11 eher nicht in Single-Chip Controllern mit
internem Flash-Speicher bei 50MHz.
Das heisst auch, dass jemand der mit nur der der Erfahrung eines Atmel
AVR bewaffnet auf einen ARM9 mit diversen internen Transfer-Puffern
und/oder Caches und mehreren teils kohärenten teils inkohärenten
Bussystemen losgelassen wird, an dessen Komplexität leicht scheitern
kann.
> - Gibt es von euch empfehlenswerte Literatur. So ein kleines Büchlein> zur Hand spart sicher Zeit ;)
Es gibt manches davon auf arm.com. Wobei diese "Büchlein" auch schon mal
biblisches Gewicht annehmen können.
Literatur über Prozessoren der ARM-Klasse setzt oft ein deutlich höheres
Mass an Grundkenntnissen voraus, als solche über AVRs. So taucht
beispielsweise das nicht ganz unwichtige Kohärenzproblem des STR9 nicht
einmal in dem Einführungs-Wälzer von Hitex auf (der aber auch sonst arg
mit der heissen Nadel gestrickt ist), obwohl man ohne diese Information
nicht leicht kapiert, warum manche Speicherbereiche gleich dreimal in
verschiedener Art im Adressraum aufkreuzen.
Und die Hersteller der Controller pflegen nur ihren Teil der Chips zu
dokumentieren, nicht den ARM Core. Dessen Doku fischt man sich von
arm.com und versucht, das dort beschriebene mit der Herstellerdoku in
Deckung zu kriegen (nicht immer trivial, weil ARM für die Chipdesigner
schreibt, nicht den Anwender).
> - Da ich auch AVRs programmiere habe ich das USBprog.
Der Programmer ist eher nicht das Problem. Anders als AVR verfügen
etliche ARMs wie beispielsweise LPC2000, SAM7 und STM32 ab Werk über
integrierte Bootloader per serieller Schnittstelle. In diesem Sinn ist
USBprog hier eine Lösung für ein nicht existierendes Problem (und für
JTAG ist er wohl noch nicht soweit).
Für's Debugging kristallisiert sich im Bereich freier Systeme OpenOCD
als Basis heraus, heute meist auf Basis vom FT2232 als JTAG Interface.
@ Florian
Ich habe noch ein AT91SAM7S-EK mit SAM-ICE (abgespeckter J-Link nur für
AT91) im Schrank liegen. Würde es gegen einen gewissen Obolus dir
überlassen...