Forum: Mikrocontroller und Digitale Elektronik AtSAM4S Assemblerprogramme


von Johannes H. (johu)


Lesenswert?

Hallo,

ich habe einen AtSAM4S (basiert auf ARM Cortex M-4) auf einen Evaluation 
Board.
Im Atmel Studio kann ich diesen problemlos in C programmieren.
Da ich mich aber mit Assembler beschäftigen möchte, wollte ich ein neues 
Assembler-Projekt anlegen.
Es gibt jedoch keine Möglichkeit diesen Chip auszuwählen.
Bei C klappt das problemlos.

Kennt jemand eine Lösung wie ich trotzdem mit Atmel Studio diesen Chip
in Assembler programmiere?

von Jim M. (turboj)


Lesenswert?

Die ARM Cortex-M4 wurden offensichtlich für C Compiler entwickelt, also 
will man die normalerweise auch mit C Compilern verwenden.

Du kannst aber ganz einfach Assembler Files auch in einem C Projekt 
benutzen,
und die Funktion(en) z.B. aus main() aufrufen. BTDT.

Es könnte aber sein dass für Assembler die Definitionen der 
(gefühlt)1000 Register und 10000 Register-Bits fehlen bzw. nur als 
C-Header zur Verfügung stehen.

von W.S. (Gast)


Lesenswert?

Johannes H. schrieb:
> Kennt jemand eine Lösung wie ich trotzdem mit Atmel Studio diesen Chip
> in Assembler programmiere?

Das sind zwei Fragen.

1. Lösung:
Du schreist dir eine Quelle in Assembler und assemblierst selbige mit 
dem Assembler deiner Toolchain. Syntax zwischen Keil und GCC ist 
deutlichst unterschiedlich. Siehe Lernbetty, dort findest du z.B. den 
gleichen Startupcode für Keil und Gcc, kannst also deren Syntax 
vergleichen.

2. Atmel Studio
ob dort eine Assemblerquelle in dein Projekt einfügbar ist, mußt du mal 
selber herausfinden. Notfalls selbige per externem Editor bearbeiten und 
separat assemblieren. Allerdings mußt du zusehen, selbigen Objektcode in 
die Liste der zu verlinkenden Objektcodes hinein zu bekommen.

W.S.

von Holzer (Gast)


Lesenswert?

Hallo,

In Atmelstudio 7.0 ein C-Projekt anlegen, dann alle deine Assembler 
Quelltexte einfügen und schon sollten die mit übersetzt werden. Du musst 
nur darauf achten, das die Dateien els extension '.s' oder '.S' haben.


der Unterschied ist das bei Groß-.S die Dateien auch noch vorher durch 
den C-Preprozessor gejagt werden. dadurch kannst du etliche Header Files
in denen die Register-Definitionen stehen nutzen.

Unnötige '.c' Datteien kannst du ja wieder entfernen.

mfg

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.