Forum: Mikrocontroller und Digitale Elektronik Einstieg in die Programmierung mit dem Cortex M4


von Kevin M. (Gast)


Lesenswert?

Guten Tag an alle,
ich hätte eine Frage zur Entwicklung mit dem Cortex M4. Bis jetzt habe 
ich nur auf Mikrocontrollern von Atmel entwickelt (ATmega, Xmega) und 
auch immer das Atmel Studio genutzt.
Nun wollte ich in die Programmierung mit den Cortex M4-Mikrocontrollern 
einsteigen und habe mir dazu folgendes Board von TI gekauft: 
EK-LM4F120XL (https://estore.ti.com/Stellaris-LaunchPad.aspx). Die 
Projekte finden im Privaten statt, ich wollte jedoch auch möglichst viel 
von dem Wissen im baldigen Beruf, oder evtl der Bachelor-Thesis (derzeit 
noch Student) nutzen können.
Daher hätte ich folgende fragen:

1. Welche Entwicklungsumgebung/Toolchain sollte ich verwenden, damit ich 
auch später von dem Wissen profitieren kann? Hängt das bei den 
ARM-Mikrocontrollern auch vom jeweiligen Hersteller (hier Texas 
Instruments) ab, was man verwenden sollte?

2. Gibt es für einen Cortex M4 Libraries, die jeder Entwickler für diese 
Mikrocontroller standardmäßig nutzt? Sind diese auch wiederum abhängig 
vom jeweiligen Anbieter?

3. Wie programmiert man heutzutage auch in der Industrie auf einem 
Cortex M4? Nimmt man sich das Datenblatt zur Hand und setzt dann alle 
entsprechenden Register "von Hand"? Oder gibt es dafür auch schon eine 
Art Framework mit USB-Stack, etc. wie beim Xmega mit dem Atmel Software 
Framework?

Über eine Antwort würde ich mich freuen!
Viele Grüße Kevin

von Eumel (Gast)


Lesenswert?

Mach doch erstmal das Tutorial von TI. Das dürfte viele deiner Fragen 
beantworten.
Außerdem rate ich dir nicht so ein willenloses Frettchen zu sein, selber 
denken macht klug :)

von KKu (Gast)


Lesenswert?

...und lade vorallem die StellarisWare. Da sind Treiber und etliche 
Demos enthalten.

von Ralph (Gast)


Lesenswert?

Kevin M. schrieb:
> 1. Welche Entwicklungsumgebung/Toolchain sollte ich verwenden, damit ich
> auch später von dem Wissen profitieren kann? Hängt das bei den
> ARM-Mikrocontrollern auch vom jeweiligen Hersteller (hier Texas
> Instruments) ab, was man verwenden sollte?

Verwende den CCS ( CodeComposerStudio) von TI. Den bekommst du zum 
Launchpad als Vollversion dazu.
Und diese IDE wird auch durchaus in der Industrie eingesetzt.

Kevin M. schrieb:
> 2. Gibt es für einen Cortex M4 Libraries, die jeder Entwickler für diese
> Mikrocontroller standardmäßig nutzt? Sind diese auch wiederum abhängig
> vom jeweiligen Anbieter?

Es gibt Libraries. Viele nutzen die auch.
Und ja die sind abhängig vom Hersteller des µC, weil die alle Module im 
Chip außer dem ARM Core herstellerspezifisch sind.

Kevin M. schrieb:
> 3. Wie programmiert man heutzutage auch in der Industrie auf einem
> Cortex M4? Nimmt man sich das Datenblatt zur Hand und setzt dann alle
> entsprechenden Register "von Hand"? Oder gibt es dafür auch schon eine
> Art Framework mit USB-Stack, etc. wie beim Xmega mit dem Atmel Software
> Framework?

In der Regel wird auf der Zielhardware entwickelt.
2 gründe dazu :
1. Man spart sich die Anpassungen von Devel Board zur Zielhardware.
2. Damit lässt sich die Zielhardware in einem Prüfen, Testen und 
Weiterentwickeln.

Datenblatt natürlich, ohne das geht es auch mit dem Libraries nicht.
Wieviel dann später im Code aus der Librarie stammt bzw. selbst codiert 
ist, hängt stark von dem vorhandenen Code ab der sich zum Teil über 
Jahre hinweg entwickelt hat.

von Frank K. (fchk)


Lesenswert?

1.
Die konkreten Tools, Compiler und Libraries, die Du wählst, sind für 
zukünftige Projekte unerheblich. Dein Arbytegeber wird im Zweifel ganz 
was anderes wählen. Versteife Dich nicht zu stark auf eine Technologie 
oder einen Anbieter, sondern versuche, einen möglichst großen Überblick 
zu haben. Nur so bist DU dann überhaupt in der Lage, für ein bestimmtes 
Projekt die optimale Lösung zu erarbeiten. In diesem Forum gibt es sehr 
viele Leute, die nix anderes als AVR kennen, und die versuchen dann halt 
mit Gewalt alles damit zu machen, obwohl sie mit einer anderen 
Controllerfamilie viel einfacher/platzsparender/stromsparender/billiger 
davonkommen würden. Wenn ich sie darauf anspreche, heißt es "Ich habe 
mich hier gerade eingearbeitet und will nicht schon wieder was lernen 
müssen" Mit dieser Einstellung kommst Du im Job nicht weiter, da 
bekommst Du dann auch mal einen 8051-Core oder einen STM8 vorgesetzt, 
weil der so billig und stromsparend ist.

Fazit: Lerne zu lernen.

2. Das Stichwort heißt CMSIS. ARM ist Wildwuchs. Der Prozessorkern ist 
die einzige Konstante, vor der Cortex-Ära hatte sogar jeder Hersteller 
seinen eigenen Interrupt-Controller, von Timern und anderen Dingen ganz 
zu schweigen. Mit Cortex ist der Interruptcontroller und ein Timer und 
etwas Basis-Infrastruktur auch im Basispaket enthalten, das jeder 
Chipfertiger implementieren muss. Dafür gibts CMSIS.

Für die ganze Peripherie, die der jeweilige Chiphersteller beisteuert, 
hat selbiger in der Regel Bibliotheken, die Du benutzen kannst. Bei 
speziellen Dingen oder hohen Anforderungen wirst Du kritische Teile 
selbst implementieren, weil die Herstellerbibliotheken nicht sehr 
optimiert sind und auch möglichst generisch sein sollen.

3. Komplexe Sachen wie IP, USB oder Bluetooth werden meist dazugekauft. 
Deine Arbeitszeit ist im Zweifelsfall teurer als die Lizenzgebühren.

fchk

von Kevin M. (Gast)


Lesenswert?

wow vielen Dank schonmal für die ganzen Antworten! Damit sind eigentlich 
schon ein Großteil meiner Fragen beantwortet.

Eine hätte ich noch: TI empfiehlt als Entwicklungsumgebung sowohl das 
bereits genannte Code Composer Studio, sowie Keil. Hat vielleicht 
schonmal jemand Erfahrungen mit diesen Entwicklungsumgebungen gesammelt 
und kann eine davon empfehlen, bzw davon abraten?

von Frank K. (fchk)


Lesenswert?

Das Keil-Zeugs wirst Du nicht bezahlen wollen.

fchk

von KKu (Gast)


Lesenswert?

Wie gesagt: Lade Dir StellarisWare runter, der Startupcode ist für die 
grossen 4 dabei, und installiere halt eine Entwicklungsdemo. Entscheide 
dann halt nach Vorliebe oder Vorgabe.

von Roland H. (batchman)


Lesenswert?

Frank K. schrieb:
> Mit Cortex ist der Interruptcontroller und ein Timer und
> etwas Basis-Infrastruktur auch im Basispaket enthalten, das jeder
> Chipfertiger implementieren muss. Dafür gibts CMSIS.

Ergänzend dazu: Ich bin vor kurzem darüber gestolpert, dass TI z. B. die 
core_cm4.h gar nicht im Paket hat.

TI kocht hier ein bisschen sein eigenes Süppchen, Details finden sich 
hier:

http://e2e.ti.com/support/microcontrollers/stellaris_arm_cortex-m3_microcontroller/f/471/p/223330/790521.aspx

Ansonsten finde ich die Beispiele in 
Beitrag "Stellaris ARM Launchpad, UART, Timer, DHT11 Sensor SW"
und Beitrag "Stellaris ARM Launchpad, ADC, UART, DHT11, RFM12, LCD" hilfreich.

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.