Forum: Mikrocontroller und Digitale Elektronik Anfänger: ARM in C programmieren


von Stefan (Gast)


Lesenswert?

Hallo!

Ich habe mir hier das Board mit dem Atmel Sam7s256 gekauft und habe 
Crossworks mal zum Test installiert, da ich ja mit Arms anfangen möchte.
Habe vorher Pics programmiert, da sich mein Lehrer mit denen am besten 
auskannte.
Habe nun das Problem, dass ich einfach nicht rein komme. Mein Problem 
ist auch, dass es verschieden Header-Files gibt, Crossworks hat eigene 
und die Beispiele die ich finde, verwenden meistens andere.
Kann mir da jemand einen Tipp geben oder irgendwie helfen, wie ich da 
mit dieser IDE weitermachen kann und vll dazupassende Beispiele finde.

Mfg Stefan

von Tobias P. (hubertus)


Lesenswert?

Hoi Stefan,
was hast du denn für eine Version von Crossworks? Beachte:
Nicht jeder ARM wird von der Software unterstützt. Du kannst dann zwar 
trotzdem Code dafür schreiben, nur wenns dann ans Linkerscript bzw. an 
den Startup-Code geht wirds etwas hässlich. Ansonsten kannst du dir von 
der Rowley-Seite sogenannte Board Support Packages runterladen - die 
brauchst, wenn du ein fertiges Development Board einsetzt. In den 
Packages sind dann alle Header-Dateien drin, die man für dieses Board 
braucht.

Wenn du ein selber gebautes Board verwendest, gibts dafür natürlich kein 
BS, da musst du dir dann halt das entsprechende Support Package für den 
jeweiligen Controller runterladen. In dem sind jeweils die 
Startup-Dateien und alle nötigen Header drin.

In der Dokumentation zum Crossworks findest du eine Beschreibung von 
allen mitgelieferten Header-Dateien und wozu man die braucht. Ist halt 
schon so: Wenn du irgend ein Beispiel aus dem Internet runterlädst, das 
nicht mit Crossworks gemacht wurde, dann sind da natürlich andere Header 
includiert und es werden u.U. andere Funktionen aufgerufen, als die in 
Crossworks verfügbaren. Da musst du dann halt ein bisschen rumpröbeln, 
geht wohl kaum anders. Es gibt im Programmordner, wo Crossworks 
installiert ist, 2 simple Beispiele, wo man nachschauen kann, wie man 
z.B. Interrupts initialisiert und solchen Kram. Mir persönlich haben die 
etwas weitergeholfen; da ich mein Board selber baue werde ich auch ein 
Board Support Package benötigen, das ich selber bauen muss.

Gruss

von Stefan (Gast)


Lesenswert?

Hallo Tobias!

Danke für deine Antwort.
Habe zuerst Crossworks 1.6 verwendet mit dem ich etwas zusammen gebracht 
habe. Dann habe ich die 1.7er Version gefunden und mit der komme ich 
überhaupt nicht klar. Nichts funktioniert mit dieser Version.
Also bleib ich mal bei der 1.6er. Ich werd mir die Beispiele anschauen, 
vll komm ich dann weiter, ist ziemlich schwer mit dem arm.
Danke für deine Hilfe.

Mfg Stefan

von Stefan (Gast)


Lesenswert?

Ach ja, das Board ist von Olimex.

Mfg Stefan

von Stefan (Gast)


Lesenswert?

Ich hätte da noch eine Frage:

Wie kann ich den Ram mit Samba programmieren. Weil man ja sonst dauernd 
den Samba vom Flash löscht?

Mfg Stef

von Tobias P. (hubertus)


Lesenswert?

Keine Ahnung, dazu müsste man wissen was Samba ist....

von Stefan (Gast)


Lesenswert?

Das ist der Bootloader für den AT91SAM. Dieser überschreibt sich dauernd 
und man muss ihn mit der Recovery Methode (Jumper umstecken, 10s 
warten.....) wieder aktivieren.

Mfg Stefan

von Tobias P. (hubertus)


Lesenswert?

Ach so.
Der Bootloader liegt wohl ab Adresse 0 im Flash, was?
Das Flash muss aber gelöscht werden, bevor man was reinschreiben kann. 
Also MUSS sich dieser Samba beim Programmieren löschen. Denke ich mal. 
Ich kenn den nicht, aber so muss es ja wohl sein, denn sonst kann man 
nichts ins Flash schreiben, wenn das vorher nicht gelöscht wurde.

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.