ARM Cortex M3 Atmel

OP #4838778
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
#4839088
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.
(Firma: EDF) #4839179
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.
Gast #4839651
Lesenswert?

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

Selber schuld.

Als Anfaenger sollte Mann eher mit einem kleinen M0 starten.
#4839756
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.
OP #4846199
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.
#4846280
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren