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