Forum: Mikrocontroller und Digitale Elektronik ARM Cortex M3 Atmel


von Viktor G. (vg232)


Lesenswert?

Hallo zusammen,

ich versuche mich in den ARM Cortex M3 von Atmel einzuarbeiten.

Ich habe folgendes:
- Board SAM3-256 von Olimex mit Atmel ATSAM3S4B
- Atmel Studio 6
- Atmel ICE Debugger

Grundlagen über Elektrotechnik und C-Programmierung aus Elektrotechnik 
Studium sind vorhanden. Aber mit Microcontroller habe ich noch nicht so 
viel gemacht.

Mein Problem ist, ich komme bei Atmel Studio mit den vielen ASF Librarys 
die standardmäßig für den Chip ATSAM3S4B dabei sind nicht zu recht. Ich 
habe mir auch die Dokumentation von Atmel durch gelesen, aber ich komme 
trotzdem noch nicht weiter. Ich bin schon am verzweifeln.

Mir geht es um folgendes:
- Welche Librarys sind wirklich für einfaches Ansprechen der PIO 
notwendig?
- Welche Headerdateien muss ich konfigurieren?
- In welcher Headerdatei bzw. Headerdateien muss ich mein Olimex Board 
konfigurieren bzw. definieren?
- Wenn ich nachträglich Librarys von ASF einfüge, muss ich dann noch 
irgendwelche Anpassungen in den ASF Headerdateien machen?

Mein Ziel ist es zu wissen wo und was ich konfigurieren muss um 
beliebige Boards mit den ATSAM3S4B programmieren zu können. Und das ASF 
von Atmel richtig nutzen zu können.

Ich hoffe mir kann jemand einbisschen helfen. Ich bedanke mich schon im 
Voraus.

Gruß
Viktor

von Jim M. (turboj)


Lesenswert?

Viktor G. schrieb:
> - Welche Headerdateien muss ich konfigurieren?

Falsche Herangehensweise. Man fängt mit einem fertigen Beispielprojekt 
an,
z.B. Blinky.

> - In welcher Headerdatei bzw. Headerdateien muss ich mein Olimex Board
> konfigurieren bzw. definieren?

Schlechte Wahl des Boards: Olimex sind IIRC auch deshalb so billig weil 
da keine Software dabei ist. D.h. man muss im Schaltplan nachgucken an 
welchem GPIO die LEDs dran hängen.

Man nehme ein möglichst exact zur MCU auf dem Olimex Board passendes 
Beispiel Projekt und flashe das auf den Controller. Das Hello, World auf 
dem µC ist das LED Blinky Programm.

Selbst wenn die LEDs nicht passen wird man den Programmablauf im 
Debugger sehen. Danach schaut man sich an wie die GPIOs definiert sind 
und biegt die auf die für LEDs passenden IOs um.

Hintergrung ist die recht komplexe Initialisierung moderner µCs mit 
Clock-Tree etc,
die man sich nur mühsam aus dem Handbuch rauszerren kann.

Dann hat man einen Stand mit dem man sich langsam in die Libraries und 
den Prozessor vortasten kann.

Oftmals ist die Doku eher drürftig - man liesst oft besser gleich den C 
Quellcode um zu verstehen was die ASF Funktionen so tun.
Dazu benötigt man das passende Referenz Handbuch - das ist praktisch 
immer das dickste PDF in der Dokumentation zum Prozessor, dort sind alle 
Bits in der Hardware beschrieben.

von D. F. (Firma: EDF) (derdan)


Lesenswert?

Jim M. schrieb:
> man liesst oft besser gleich den C
> Quellcode um zu verstehen was die ASF Funktionen so tun

Das mach ich genauso.

Auch wenn ich eine SW erweitere wird zunächst das passende ASF Beispiel 
geladen um dort die Informationen rauszuziehen oder auch mal zu testen.
Und ehrlich gesagt nutze ich die ASF auch ganz gerne. Aus meiner Sicht 
mach

es wenig Sinn das Rad an dieser Stelle nochmal zu erfinden.
Klar wird öfter mal der Reiz ausgelöst: „Das kann man doch anders 
machen“. Aber dann sag ich mir wo zu.

Das Schöne an den modernen Cortex Kontrollern ist es ja das man normal 
nicht mehr in eine Ressourcen limitierte Programmierung gezwungen wird.

von Marco H. (damarco)


Lesenswert?

Erstmal Literatur durchlesen wie ein ARM funktioniert und die Referenz 
zum µP durcharbeiten. Dann versteht man auch welche Register mit welchen 
Werten gesetzt werden müssen.

Dann ein Board Projekt erzeugen im Atmel Studio usw...

Warum keinen Arduino DUE ?

von Bloom (Gast)


Lesenswert?

Probiere mal die Olimex Beispiele aus.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

Mann muss wohl atmel-Fanboy sein um mit deren Bananenprodukten
anzufangen.

Selber schuld.

Als Anfaenger sollte Mann eher mit einem kleinen M0 starten.

von Marco H. (damarco)


Lesenswert?

Das ist Quark, der Befehlssatz von den Grundlegenden Funktionen ist 
gleich. ARM = ARM nur die Hardware unterscheidet sich je nach Modell und 
Hersteller.

Ich habe mir das Demo von Olimex mal angeschaut.  Das ist eine Mouse 
Emulation per USB.  Keine Ahnung warum man so etwas als Demo zur 
Verfügung stellt für Anfänger?


Wie bist du denn zum Atmel Studio Projekt gekommen ? In der Demo werden 
die Register direkt gesetzt. Ohne dessen Verständnis ist man dann 
verloren.

Die ASF von M3 und M0 unterscheiden sich bei Atmel leider grundlegend in 
ihren Funktionen.

Grundsätzlich schaut man immer erst in den Headern nach, gute 
Programmierer geben kurz und knapp hier hinweise was die Funktion macht 
und wie man sie verwendet.

Meist sind in den Headern ganz unten auch Beispiele aufgeführt.

Als Anfänger sollte man zu einen Board greifen was sehr gut Dokumentiert 
ist und wo es Zahlreiche Beispiele gibt. In dessen kann man den Arduinos 
nichts nachsagen.

: Bearbeitet durch User
von Viktor G. (vg232)


Lesenswert?

Danke für eure Beiträge. Also sieht es so aus das ich mich mehr mit dem 
Datenblatt des Controllers auseinander setzen muss.
Ich habe das Board gewählt weil es in einem Buch ARM Cortex-M3 
Mikrocontroller: Einstieg und Praxis (mitp Professional) verwendet wird. 
Die IDE habe ich von Atmel genommen, weil im Buch nur Eclipse mit 
hundert anderen zusätzlichen Tools vorgestellt wurden die nicht richtig 
funktionierten. Exclipse mit den hundert anderen zusätzlichen Tools ist 
der größte Misst.

von Jonny O. (-geo-)


Lesenswert?

Hi,

Wenn ST eine Alternative ist:

Ich kann das stm32VLdiscovery wärmstens emfpehlen.
http://www.watterott.com/de/STM32VL-Discovery

Dazu die kostenlose IDE "EMBitz" (ohne L!)
https://www.embitz.org/

Mit diesen beiden Komponenten hast du innerhalb weniger Minuten dein 
erstes Blinky mit dem CortexM3 fertig. Falls Fragen aufkommen wird dir 
hier gerne weitergeholfen. Es ist wirklich kinderleicht!

Ein blinky-Beispielprojekt kann ich beisteuern.

Grüße!
J.O

: Bearbeitet durch User
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.