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
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
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
>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.
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
>...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.
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.
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.
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.
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.
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/
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.