Forum: Compiler & IDEs Umstieg von Eclipse auf Atmel Studio 6, wie vorgehen?


von C. H. (hedie)


Lesenswert?

Hallo zusammen...

Ich möchte (damit ich hoffentlich endlich vernünftig debuggen kann...) 
von Eclipse auf das neue Atmel Studio 6 umsteigen.

Zuerst dachte ich, das wird ein Kinderspiel, packst du da deine 
bisherigen Dateien in einen neuen Ordner und klickst ein bisschen rum 
und dann klappt des...

Aber leider klappte es nicht.

Hier meine Projektordner Struktur:

Hauptordner
- Datei.c
- Datei.h
...
- Unterordner
   - Datei2.c
   - Datei2.h
....

Beim ausprobieren, ist mir folgendes passiert:

- Ich habe mir extrem genervt, dass in den ProjectProperties keine 
Clockangabe zum Controller gemacht werden kann. Es steht immer 0
Ich weiss bis jetzt nicht, wie man F_CPU angibt.

- Ich konnte meine Unterordner einfach nicht hinzufügen.
Ich hatte eine ähnliche Include im main: #include "Unterordner/Datei2.h"

Bei dieser Zeile meckerte der Compiler nicht, jedoch an der stelle wo 
ich eine Funktion aus der Datei2.c aufrufen wollte.
Meldung: "unknown definition functionxy()"

Also habe ich alle meine schönen Unterordner aufgelöst, und die Dateien 
direkt ins Hauptverzeichnis kopiert.

Doch dann meckerte der Compiler, dass er DDB3 nicht kennt.
Bei dieser Zeile:
1
DDRB &= ~((1 << DDB3) | (1 << DDB4) | (1 << DDB6));

Also hab ichs aufgegeben, und frage nun euch.

Wie gehe ich am besten schritt für schritt vor, um ein Eclipse Projekt 
AtmelStudio6 tauglich zu machen?

Ich bin über jede Hilfe dankbar!

Gruss


P.S. Hoffe, dass ist die richtige Forumskategorie dafür :)

von Ingo (Gast)


Lesenswert?

Du erstellst dir ein neues Symbol unter Symbols in den Properties:
F_CPU=1000000

Achtung, kein Leerzeichen verwenden!

DDB3 sollte aber bekannt sein, wenn er den Rest kennt...

von C. H. (hedie)


Lesenswert?

Ingo schrieb:
> Du erstellst dir ein neues Symbol unter Symbols in den Properties:
> F_CPU=1000000
>
> Achtung, kein Leerzeichen verwenden!
>
> DDB3 sollte aber bekannt sein, wenn er den Rest kennt...

Danke für deine Antwort..

Er kennt auch die anderen DDB's nicht...

Wirklich sehr merkwürdig...

Hat jemand noch eine idee, wie ich das entfernen der unterordner 
vermeiden kann?

Dass muss doch auch mit unterordnern klappen oder?

von C. H. (hedie)


Lesenswert?

Was könnte der Grund sein, weshalb er DDB3 etc nicht kennt?

In Eclipse funktionierte alles Problemlos...

von Ingo (Gast)


Lesenswert?

Hast du die
1
#include <avr/io.h>

Bei mir geht es jedenfalls, gerade getestet...



Ingo

von Fabian O. (xfr)


Lesenswert?

Das mit den Unterordnern ist ziemlich mühsam, aber geht. Du kannst 
leider (zumindest afaik) keine existierenden Ordner importieren, sondern 
musst sie in Atmel Studio neu erstellen.

Dazu im Solution Explorer Rechtsklick -> Add -> New Folder. Danach 
Rechtsklick auf den Ordner -> Add -> Existing Items. Dort alle Dateien 
auswählen, die in den Ordner sollen. Hier gibt es zwei Möglichkeiten: 
Wenn Du in dem Dialog auf "Add" klickst, werden sie in den neuen Ordner 
im Projektverzeichnis kopiert. Wenn Du auf "Add as Link" klickst, 
bleiben sie in dem Ordner, wo sie derzeit auf der Festplatte liegen und 
in Atmel Studio entsteht nur eine Verknüpfung. Das ist nützlich, wenn Du 
die gleichen Dateien in mehreren Projekten nutzen willst.

Alle C-Dateien, die Du in den Solution Explorer einfügst, werden 
standardmäßig kompiliert und gelinkt. Wenn Du das für einzelne Dateien 
nicht willst, kannst Du im Fenster "Properties" die "Build Action" 
umstellen. Es ist vom Prinzip her egal, in welchem Ordner die C-Dateien 
liegen.

Bei den H-Dateien ist es anders. Die werden ja nicht kompiliert, sondern 
nur in andere C-Dateien inkludiert. Sie müssen in einem der "Include 
Paths" liegen, die dem Compiler übergeben werden. Die Einstellung dazu 
findet sich hier: Project -> Properties -> Toolchain -> C Compiler -> 
Directories. Dort musst Du alle Ordner angeben, in denen H-Dateien 
liegen, auch wenn sie Unterodner des Projektverzeichnises sind.

Die Einstellung zu Taktfrequenz ist ganz in der Nähe:
Project -> Properties -> Toolchain -> C-Compiler -> Symbols.

von C. H. (hedie)


Lesenswert?

Vielen Dank Fabian für deine Ausführliche Antwort.


Das mit dem DDB3 hab ich rausgefunden.

Es muss nun DDRB3 lauten... weshalb auch immer..


Weshalb ist das mit den Ordnern und den include search path's so eine 
mühsame sache?

Eclipse schafft das ja auch problemlos.

Ich persönlich finde auch die Bedienung des Atmel Studios seht 
umständlich.

Von Eclipse war ich es mir gewohnt mit CTRL + Click zur Implementation 
springen zu können. Dies funktioniert jetzt ja leider nicht mehr.

Kann man dieses "Verhaltensschema" irgendwo an Eclipse anpassen?


Ich habe es inzwischen geschafft, dank eurer hilfe, dass das Studio nun 
Kompiliert. nun kämpfe ich leider mit meinem MKii Debugger...

Das Studio meldet ständig zeugs wie:
1
[ERROR] Unexpected signature 0x00808080 (expected 0x001e9508)., ModuleName: TCF (TCF command: Device:startSession failed.)

oder
1
[ERROR] Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xc0, expected 0x00, ModuleName: TCF (TCF command: Device:startSession failed.)

wenn da zufällig noch jemand einen Tipp hat, bin ich dankbar!

Die Debugger Firmware ist 7.19

Studio Version: 6.0.1996 SP2

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.