mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM7 oder gleich CORTEX M3


Autor: student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen.

Ich möchte mich in ARM einarbeiten und habe entdeckt das ARM7 mit 
Thumbmode nicht kompatibel zu dem Thumbmode2 vom Cortex M3 ist. Soll ich 
lieber gleich mit einem Cortex M3 arbeiten?

Gruß
Student

Autor: Reinhard B. (brainstorm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich kannte bis jetzt aktiv nur AT89* und XC167* und bin jetzt durch 
eine Arbeit an der Uni auf den Cortex M3 gekommen. Im Konkreten den 
STM32F103xxx. Also ich muss sagen, mir gefällt das Ding. Geht bei uns v. 
a. um die Stromspareigenschaften und günstige Toolchain.

mfg

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die meisten werden dir sagen, dass der ARM7 veraltet ist, dem stimme ich 
nicht zu. Der Cortex M3 ist moderner und gleichzeitig der einzig 
inkompatible Core von ARM. Was ic hdamit sagen moechte ist, dass alle 
anderen Cores den ARM Mode, den Thumb Mode und alle Cortex den Thumb2 
mode unterstuetzen. Durch die Inkompatibilitaet lassen sich ARM7 
Programme nicht so ganz ohne weiteres auf den Cortex transferieren 
"einfach neu kompilieren" hoer ich dann immer, reicht nicht so ganz aber 
lassen wir das mal.
Mit ARM7 core gibt es schaetzungsweisse 10-20 mal mehr Auswahl als mit 
dem M3. Jetzt hoer ich auf mit der Argumentation fuer den ARM7.
Der Cortex-M3 ist einfacher zu handhaben, besser zu debuggen, mehr 
echtzeitfaehig, bringt eine bessere Leistung / MHz und ist mehr 
standardisiert, was zukuenftiger Wiederverwendung von Code sehr entgegen 
kommt. Konzipiert war der M3 zwar urspruenglich als 8-bit Aufsteiger und 
sollte unterhalb des ARM7 angesiedelt sein. Das hat sich geaendert, er 
ist gleich oder leicht oberhalb des ARM7 in Performance.
Also wenn es darum geht fuer Dich selbst einzusteigen, nimm ein M3 
basierendes Device. Wenn es um eine Firmenentscheidung geht, dann soll 
evtl. auch Atmel oder NXP genommen werden und da kommen die M3 Derivate 
erst in kuerze auf den Markt. Ansonsten Luminary oder ST haben ne Menge 
Teile verfuegbar und weitere folgen bald.

Robert Teufel
Sucht Ihre Firma einen Partner in Silicon Valley?
Ich stehe gerne zur Verfuegung.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Meine ARM/Cortex Webseite: www.lpc2000.com

Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Soll ich lieber gleich mit einem Cortex M3 arbeiten?


Wenn Du nicht aus irgendwelchen (dienstlichen?) Gründen gezwungen bist, 
später den ARM7 einzusetzen, dann ist der M3 klar die erste Wahl. In 1-2 
Jahren wird der der Standard-32Bit Controller von ARM sein.

Zum Einstieg wirst Du es auch viel einfacher mit dem M3 haben. Der ist 
halt aktuell und als Nachfolger vom ARM7 konsequenter für den 
Mikrocontroller-Markt entwickelt. Der ARM7 ist halt eine CPU, die als MC 
eingesetzt wird. Daher kommen auch solche Altlasten wie der nicht 
integrierte Interrupt Controller - Stichwort spurious interrupts sowie 
lange, nicht deterministische Latenz -, zwei Befehlssätze, bitbanding - 
also unter anderem atomare Port- sowie Registerzugriffe -, nicht alignte 
Speicherzugriffe - spart Speicher -.

Von Vorteil ist sicherlich auch, daß ARM jetzt mit CMSIS einen 
Softwarestandard setzt, der einen schnellen Wechsel der Derivate oder 
Tools ermöglicht, ohne nervende Anpassungen der Software vornehmen zu 
müssen.
Nicht zu vergessen auch die umfangreichen Peripherie-Libraries der 
Hersteller wie Luminary oder ST, die einen Einstieg ohne großes Lesen 
der Datenblätter ermöglichen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sach mal auch, eindeutig Cortex M3.

Diese unsäglichen Set- und Clear-Register des LPC, damit man von hinten 
durch die Brust ins Auge Bits atomar zugreifen kann, gehen mir sowas auf 
den Senkel.

Man merkt dem ARM7 an, daß er ursprünglich nicht als MC konzipiert war 
und dann mit der heißen Nadel umgestrickt wurde.


Peter

Autor: GB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>...In 1-2 Jahren wird der der Standard-32Bit Controller von ARM sein.

Totgesagte leben länger, siehe 8051. Der ARM7 wird sich noch sehr lange 
am Markt halten.

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich würde dir als Cortex-M3 den STM32 empfehlen, der lässt sich wirklich 
"schön" programmieren.
Soll es ein ARM7 sein, so habe ich gute Erfahrungen (war mein 
ARM-Einsteiger-Controller) mit dem LPC2148 gemacht.

Als Toolchain empfehle ich Keil uVision, auch bei der Demo sind 
sämtliche Examples dabei, und das Codelimit reicht sehr lange aus.
Die GNU Tools sind kostenlos, allerdings braucht man da etwas mehr 
Erfahrung.

Für den Cortex-M3 empfehle ich weiterhin die CMSIS, sie bietet neben 
einem simplen Register-Programmiermodell einige Helferlein (Funktionen) 
u.a. zum NVIC sowie (z.Zt.) ein Setup des Clockings vom STM32.


VG,
/th.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja:
>Als Toolchain empfehle ich Keil uVision, auch bei der Demo sind
>sämtliche Examples dabei, und das Codelimit reicht sehr lange aus.


Das Limit sind 32 KiB für Code+Daten. Für einen 256KB Chip und erst 
recht einen 32Bitter ist das eine Grenze, die schnell erreicht ist. 
Sicherlich vergleichbar mit den 16KiB eines Mega16.
Also ein Display dran, ein bißchen Grafik, schon muss man externen Flash 
anstricken, um weitermachen zu können...

Ob sich dann der Einarbeitungsaufwand dafür lohnt, wenn man eh im Voraus 
weiß, daß man das Geld nicht für die Vollversion ausgeben wird...
Ich denke, daß sich so eine Eval-Version nur lohnt, wenn man wirklich 
irgendeine Vollversion hinterher kaufen will.

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas wrote:
> Naja:
>>Als Toolchain empfehle ich Keil uVision, auch bei der Demo sind
>>sämtliche Examples dabei, und das Codelimit reicht sehr lange aus.
>
>
> Das Limit sind 32 KiB für Code+Daten. Für einen 256KB Chip und erst
> recht einen 32Bitter ist das eine Grenze, die schnell erreicht ist.
> Sicherlich vergleichbar mit den 16KiB eines Mega16.
> Also ein Display dran, ein bißchen Grafik, schon muss man externen Flash
> anstricken, um weitermachen zu können...
Na, da würde ich mal wiedersprechen. Es muss schon so einiges 
zusammenkommen, um an 32k (20k+12k glaub ich) ranzukommen. Jeder ARM 
rechnet zwar intern mit 32Bit, die (meisten) Thumb(2)-Befehle benötigen 
aber nur 16Bit im Programmspeicher.

> Ob sich dann der Einarbeitungsaufwand dafür lohnt,
Genau das gefällt mir daran, dass der Aufwand fast =NULL ist. Als ich 
vor ca: 2,5J mit dem LPC anfing, kannte ich nur den AVR, CodeVision bzw. 
WinAVR.
Ich hab das uVision Handbuch nie gelesen (doch, aber erst 2J später 
**smile**).

> wenn man eh im Voraus
> weiß, daß man das Geld nicht für die Vollversion ausgeben wird...
> Ich denke, daß sich so eine Eval-Version nur lohnt, wenn man wirklich
> irgendeine Vollversion hinterher kaufen will.
Sie lohnt sich für den Einstieg, da man "fertig gekochtes" vorgesetzt 
bekommt, was auch wirklich (anpassungslos oder mit geringem Aufwand für 
eigene Entwicklungen) läuft. Mit gcc habe ich da andere Erfahrungen 
gemacht, als ich etwas einfaches für den STM32 suchte... (keine DL!).

Ich fand das zumindest damals sehr hilfreich :-)


VG,
/th.

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal.
Ihr habt mir echt weiter geholfen!

Also ich werd mich jetzt auf den Cortex M3 stürtzen.

Eine Frage zu den Toolchains und J-Tag:

Toolchain:
- GNU
- µVision
- CrossWorks (www.rowley.co.uk)

J-Tag:
- ARM-USB-OCD


Wenn ich später in der Industrie (produktiv) arbeiten möchte, was würdet 
ihr vorschlagen? GNU oder propritäres. Was haltet ihr von CrossWorks? 
Ich find es klasse das es auch unter Linux läuft.

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Student wrote:
> Wenn ich später in der Industrie (produktiv) arbeiten möchte, was würdet
> ihr vorschlagen? GNU oder propritäres.

Ich sage das nicht leichten Herzens, aber kommerzielle tools sind in so 
einem Fall durchaus zu bevorzugen. Vor allem zum Debugging, Simulieren, 
etc. Denk an einen JTAG Adapter, der (bzw. dessen Treiber) alle 
gewünschten Funktionen Deines Systems unterstützt.

Der Compiler/Linker ist eher zweitrangig. Aber da Du eh schon für die 
toolchain bezahlt hast...

Gruß
Marcus
http://www.doulos.com/arm/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.