Forum: Mikrocontroller und Digitale Elektronik AT91SAM7X512, womit programmieren?


von Andreas W. (andy_w)


Lesenswert?

Hallo,
zuhause habe ich Atmel Studio, um z.B. für den Arduino Due Software zu 
schreiben und den zu programmieren. Das funktioniert auch gut. Nun 
stellt sich das Problem, auch für den AT91SAM7X512 Software zu schreiben 
und den zu programmieren, aber Atmel Studio unterstützt den Prozessor 
nicht, obwohl auf dem Prozessor groß "ATMEL" steht...

In der Firma wird dafür Keil verwendet, das kostet einen Haufen Geld und 
dafür funktioniert der Debugger überhaupt nicht. Den brauche ich aber 
dringend, im Atmel Studio funktioniert der auch wunderbar mit dem 
Arduino Due.

Gibt es eine Entwicklungsumgebung (IDE) von Atmel, die auch den 
AT91SAM7X512 unterstützt? Schließlich verkaufen sie ja auch den 
Prozessor, der immer noch hergestellt wird. Evtl. eine ältere Version 
von Atmel Studio? Wenn ja, woher bekommt man die noch? Oder gibt es auch 
noch eine andere IDE von Atmel?

Gruß

von pegel (Gast)


Lesenswert?

Ist leider schon zu lange her.
Mit der IDE ging das auch, wenn ich mich recht erinnere.

Gefunden hatte ich alles nötige dort:

http://at91.com/

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Muss es etwas von Atmel sein? Ansonsten wären Embedded Studio und J-Link 
so die Klassiker:
https://www.segger.com/products/development-tools/embedded-studio/
https://www.segger.com/products/debug-probes/j-link/models/j-link-edu-mini/

von Modellbahner (Gast)


Lesenswert?

Gibt es Gründe, warum es ausgerechnet Atmel Studio (-ähnlich) sein muß? 
Intern läuft das doch eh auf GCC raus...

Ich bin sehr glücklich beim kleineren 7x256 mit Eclipse, arm-gcc+gdb und 
einem mittlerweile recht betagten Olimex-Adapter (OpenOCD-kompatibel, 
basierend auf FT2232)

Und wer Eclipse nicht mag, kann sich auch gerne mit QT Creator, 
notepad++ oder sonstigem Texteditor arrangieren  ;)

von Andreas W. (andy_w)


Lesenswert?

Hallo,
da ich ein vorhandenes Atmel Studio Projekt übernehmen und nur etwas 
anpassen wollte, sind andere IDEs als von Atmel ungünstig, man müßte da 
das Projekt komplett neu aufsetzen und zum Laufen bringen. Beim Atmel 
Studio weiß ich auch, daß der Debugger funktioniert und ich habe auch 
den entsprechenden Programmier- und Debugadapter (Atmel ICE oder so 
ähnlich).

Von Keil ist in der Firma nur die Version 4.13 vorhanden, für 4.7 müßte 
die Firma die Keil IDE komplett neu kaufen. Und Version 4.13 hat keinen 
funktionierenden Debugger. Setzt man einen Breakpoint und läßt den 
Debugger dorthin laufen, zeigt er eine ganz andere Zeile an, oft sogar 
in einem anderen Sourcefile des Projektes... Die Schritte macht er 
offensichtlich mit dem Code, wo der Breakpoint ist, anzeigen tut er die 
Schritte aber mit einem gewaltigen Offset, so daß man den so nicht 
gebrauchen kann. Oft geht der Debugger aber auch gar nicht, manche 
Projekte scheinen dagegen mit Debugger zu laufen. Allerdings steht der 
Debugger bei einem Return aus einer Funktion immer im Wald, es sei denn, 
man setzt einen Breakpoint auf das Rücksprungziel und drückt statt F10 
oder F11 F5 für "run". Einen Patch gibt es dafür von Keil nicht. Es 
heißt, Version 4.7 neu kaufen und nicht wissen, ob der Debugger dort 
dann funktioniert.

Gruß

von Modellbahner (Gast)


Lesenswert?

Andreas W. schrieb:
> da ich ein vorhandenes Atmel Studio Projekt übernehmen und nur etwas
> anpassen wollte, sind andere IDEs als von Atmel ungünstig, man müßte da
> das Projekt komplett neu aufsetzen und zum Laufen bringen. Beim Atmel
> Studio weiß ich auch, daß der Debugger funktioniert

Will Dich absolut nicht "bekehren", mußte aber beim Lesen etwas 
schmunzeln... Das waren für mich vor Jahren genau die Gründe, dem AVR 
Studio den Rücken zu kehren. Klar war es am Anfang lästig, makefiles zu 
generieren und da ohne GUI rumzupfuschen. Aber mittlerweile war das nach 
diversen Systemwechseln (Windows->Linux) der richtige Schritt für mich.
Das Phänomen, das Du von Keil beschreibst, kenne ich in ähnlicher Form 
vom JTAG ICE auf ATmega im Avr Studio. Hat mich auch zwischenzeitlich an 
den Rand des Wahnsinns getrieben. 8)

von Jim M. (turboj)


Lesenswert?

Andreas W. schrieb:
> Beim Atmel
> Studio weiß ich auch, daß der Debugger funktioniert und ich habe auch
> den entsprechenden Programmier- und Debugadapter (Atmel ICE oder so
> ähnlich).

Hattest Du das jemals mit ARM7TDMI µCs ausprobiert..?

Das sind nämlich keine Cortex-M, sondern deren Vorgänger-Architektur.

Beim (GCC)Compiler könntest Du Glück haben wenn sie die ARM-Libs mit 
dazu gepackt haben - die sind IIRC bei Gnu Arm Embedded dabei. Lies: 
Manuell Compiler (und Linker!) Optionen setzen und manuell Startup Code 
einfügen könnte klappen.

Beim Debugger sehe ich allerdings eher schwarz.

Andreas W. schrieb:
> Schließlich verkaufen sie ja auch den
> Prozessor, der immer noch hergestellt wird

Hergestellt: Ja. Empfohlen für neue Designs: Eher nicht.
Cortex-M3 als architektureller Nachfolger ist seit ~10 Jahren im Markt.

von Dr. Sommer (Gast)


Lesenswert?

Andreas W. schrieb:
> Setzt man einen Breakpoint und läßt den Debugger dorthin laufen, zeigt
> er eine ganz andere Zeile an, oft sogar in einem anderen Sourcefile des
> Projektes

Das ist normal (bei allen Debuggern!) wenn die Compiler Optimierung 
eingeschaltet ist. Kompiliere im Debug Modus (GCC Option -O0) um 
Debuggen zu vereinfachen, dafür im Gegenzug aber das Programm langsamer 
zu machen. Ein Mittelweg ist -Og.

Habt ihr nichtmal ansatzweise versucht dieses Problem zu lösen, z.B. mit 
dem Support (dafür kauft man ja überhaupt kommerzielle Software)? 
Professionell ohne funktionierenden Debugger zu arbeiten ist doch 
absurd.

von Andreas W. (andy_w)


Lesenswert?

Hallo,
ich habe den AT91SAM7X512 nicht ausgesucht, der wird seit ca. 10 Jahren 
von der Firma verwendet. Immerhin denkt man darüber nach, in 1-2 Jahren 
vielleicht was Neues zu verwenden...

Das Problem beim Keil ist, daß man die Optimierung nicht ganz 
ausschalten kann, selbst in der niedrigsten Optimierungsstufe wird noch 
etwas optimiert. Einen Weg, die Optimierung ganz auszuschalten hat 
bisher noch keiner gefunden.

Das Problem ist auch, daß man nicht so leicht wie bei normalen 
Konsolenprogrammen einfach ein printf() einfügen kann, um 
Debuginformationen ohne Debugger zu bekommen. Es bleibt nur die Serielle 
Schnittstelle, die aber oft zu langsam ist. Ein kleines Textdisplay an 
den SPI-Bus könnte noch eine Idee sein, aber bisher wurde so etwas nie 
angedacht und auch kein SPI-Kanal dafür vorgesehen. Auch da bleibt das 
Problem, daß man bei Originalgeschwindigkeit des Programms nicht alles 
mitbekommen kann.

Beim Atmel Studio hhabe ich bisher nur den Arduino Due verwendet, da 
funktioniert der Debugger einwandfrei, schließlich kann man da auch die 
Optimierung ganz ausschalten, was ich fürs Debuggen auch mache.

Gruß

von Thomas Z. (usbman)


Lesenswert?

Das Problem ist also gar nicht Keil sondern das Ihr nicht mit den Tools 
umgehen könnt. Natürlich kann man die Optimierung ausschalten. Es gibt 
zig verschiedene Wege Ausgaben zur Laufzeit zu machen. Das muss man aber 
wollen. Von alleine passiert das nicht. Ich hab noch mal nachgeschaut 
aktuell ist v5,28. Eure Version ist also steinalt. 10 Jahre könnte 
hinkommen.
Soweit mir bekannt ist bekommt man bei Keil 1Jahr Updates oder eben 
solange der Vertrag läuft.

Thomas

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.