Forum: Mikrocontroller und Digitale Elektronik AVR32 Studio - C++ Projekt erstellen - Elemente aus Framework einfügen - kleine main.cpp erstellen


von Jo Mc (Gast)


Lesenswert?

Hallo,

(Sorry, viel Text aber vermutlich kleines Problem...)

Ich möchte mit dem AVR32 Studio:
 - ein C++ Projekt erstellen
 - die Library zu den IOs aus dem Framework einfügen
 - eine kleine main.cpp erstellen, um zu testen

Das mit dem Projekt erstellen bekomme ich ohne weiteres hin.
File -> New -> AVR C++ Project
Target Device: AT32UC3C0512C
Project type: 32-Bit AVR/GNU Executable
-> Finish

Nun binde ich das IO-Element aus dem Framework ein.
Framework-> Select Drivers/Components/Services
Dort wähle ich GPIO - Gerneral Purpose I/O Controller aus
-> Finish

Jetzt noch die main.cpp im Projekt erstellen.
Rechte Maustate auf TestProjektName -> New -> Source File
Source Folder: TestProjektName
Source File: main.cpp
Template: Default C++ source template
-> Finish

So nun die main.cpp mit wenig code füllen:
#include "gpio.h"
int main(void)
{
   while(1)//Nur zum testen ob komillieren geht.
   {;}
   //Später möchte ich damit IOs schalten...
   //pio_clr_gpio_pin(0);
   //gpio_set_gpio_pin(0);
}

Und nun kompilliren.
Project -> Build all
wait... ...währe schön gewesen...
2 errors:
**** Build of configuration Debug for project test ****
**** Internal Builder is used for build               ****
avr32-g++ -I../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE 
-I../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC 
-I../src/SOFTWARE_FRAMEWORK/BOARDS 
-I../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR 
-I../src/SOFTWARE_FRAMEWORK/UTILS 
-I../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO -O0 -g3 -Wall -c 
-fmessage-length=0 -mpart=uc3c0512crevc -ffunction-sections 
-masm-addr-pseudos -omain.o ..\main.cpp
In file included from ..\main.cpp:2:
../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h:101: error: non-local 
function 'int gpio_enable_module(const<anonymous struct>*, unsigned 
int)' uses anonymous type
../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h:125: error: non-local 
function 'void gpio_enable_gpio(const<anonymous struct>*, unsigned int)' 
uses anonymous type
Build error occurred, build is stopped
Time consumed: 703  ms.

Was habe ich falsch gemacht???

Währe super, wenn ihr mir weiterhelfen könnt.

Gruß Jo

von cskulkw (Gast)


Lesenswert?

Nun, da sind die Code-Dateien für die GPIO nicht im Projekt integriert 
worden.

Im Projektbrowser müßte unter dem Ordner src (Sources) die gpio.h und 
gpio.c enthalten sein.

Man kann auch alternativ unter Kontext-Menü Properties / Compiler diese 
Dateien händisch einbinden.

Aber, wenn der Compiler da meckert, fehlen diese Dateien definitiv im 
make-file.

Entweder hat die Auswahl über die Wizard nicht funktioniert oder in der 
SW-Version ist eine Macke.

Ich habe die Benutzung ddes AVR32-Studios eingestellt, weil man sich nur 
verzettelt. Außerdem ist das Debugging sehr unübersichtlich.

Das AVRStudio 5.0 ist jetzt realeased worden. Das ist wesentlich 
komfortabeler.

von Jo Mc (Gast)


Lesenswert?

Hallo, danke für deine Antwort...

Ich habe mittlerweile die Ursache für die Errors gefunden.

Der Fehler war: Ich hab ein C++ Projekt erstellt und dann in der Library 
C-Funktionen aufgerufen...
Die Lösung war das gleiche wie oben, nur anstatt C++ einfach C-Projekt 
auswählen...

> Ich habe die Benutzung ddes AVR32-Studios eingestellt,
> weil man sich nur verzettelt. Außerdem ist das Debugging
> sehr unübersichtlich.

Ja, ich bin von dem AVR32 Studio auch nicht begeistert. Das einsigste, 
was mir daran gefällt, ist das schöne einbinden der Frameworkelemente 
über das Menü. Das einbinden von Frameworkelementen bekomme ich im 
AVR-Studio 5 nicht hin...

Wie bindest du Librarys also teile des Frameworks ins AVRStudio 5 ein?

Hast du Lust mir eine Mail an mc.joe.werbung@web.de zu schreiben?
...dann schreib ich dir von meiner "richtigen" E-Mail-Adresse zurück...
Ich würde gern noch ein paar fragen loswerden...

Jo (www.elektronik-hannes.de)

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.