Software-Entwicklung in C für den ASURO nur mit AVRSTudio!!!
Hallo Asuro's,
vielen von euch ist glaube ich nicht bekannt, dass man mit dem neuen AVRStudio von ATMEL, jetzt auch C-Programme ohne make und Programmers Notepad entwickeln kann. Man benötigt nur noch eine Programmoberfläche und die Projektverwaltung wird vollständig vom AVRStudio übernommen. ATMEL hat den GCC (GNU-C-Copiler aus WINAVR) voll in AVRStudio integriert. Neue Source-Dateinen (*.s oder *.c) werden einfach mit einem Rechtsklick der Maus in das aktuelle Projekt übernommen. Ihr müsst nur noch im Menü-Punkt [Project][Configuration Options] die Parameter für den von euch verwendeten Mikrocontroller wie System-CLK usw. eintragen. Zusätzlich können auch Include-Dateien und Libraries die sich in einem anderen Datei-Ordner befinden, einfach in das Projekt aufgenommen werden. Das mühselige Editieren der make-Projektdatei gehört der Vergangenheit an! Für neue Projekte in C oder Assembler verwendet ihr einfach die Auswahl [Project][New Project][ AVR GCC]. Die Startdatei (*.c) wird automatisch mit dem Projektnamen erzeugt. Ihr könnt natürlich C-Dateien und Assembler-Dateien gleichzeitig im Projekt verwenden. Wenn ihr ein Assembler-Projekt eröffnen wollt, könnt ihr das mit einem kleinen Trick sehr einfach durchführen. Wenn ihr ein neues GCC-Projekt beginnt, erzeugt das AVRStudio automatisch die Startdatei mit der Extension *.c. In diesem Source File gebt ihr dann einfach die folgenden Programmzeilen ein:
#include <avr/io.h>
int main(void)
{
asm("rjmp asm_main");
return(0);
}
Die Assembler-Datei, z.B. start.s, sieht dann wie folgt aus:
#include <avr/io.h>
.section .text
. global asm_main
asm_main:
// hier beginnt jetzt das Assemblerprogramm
Der Vorteil dieser Vorgehensweise ist der: Der C-Compiler ezeugt automatisch eine Startprozedur in der der Stackpointer und die Interruptvektoren-Tabelle initialisiert wird. Strings werden aus dem Flash ins RAM kopiert und der verwendete RAM-Bereich für Variable wird auch automatisch initialisiert.
Was ihr benötigt, ist natürlich die neuste Version von WINAVR (GCC) und dem AVRStudio. Für das neue AVRStudio benötigt ihr 3 Dateien:
1. AVRStudio 4.12 (built 460)
2. AVRStudio 4.12 Service Pack2 03/06
3. avrgccplugin.exe
Die Dateien müssen in der angegebenen Reihenfolge installiert werden!
Die Dateien 1 und 2 könnt ihr euch von ATMEL's Homepage downloaden
(Achtung: 1x45MB und 1x18MB).
http://www.atmel.com/dyn/products/to...p?tool_id=2725
Der Plug-In-Patch (3.) wird auf der Homepage von Arexx in Kürze downloadbar sein.
Die neuste Version von WINAVR gibts hier:
http://sourceforge.net/projects/winavr/
ACHTUNG!!!!
Wenn ihr eine ältere Version von WINAVR oder AVRStudio auf eurem Rechner installiert habt, müsst ihr diese erst deinstallieren! Sicherheitshalber entfernt ihr nach der Deinstallation auch die alten Programmordner in c:\Programme\ da sich die alten Programme evtl. nicht vollständig deinstallieren!
So, jetzt viel Spass mit dem neuen AVRStudio und tolle neue Programme für unseren ASURO!
Viele asurorische Grüße
Peter (Ronny10 / peli51)
ich könnte eure Hilfe brauchen
](*,) Hallo zusammen
wenn ich n´Stück Code aus den Forum nehme oder mit ne ganz einfache Funktion schreibe , bekomme ich ständig die Compilermeldung :
Code:
Build started 6.1.2007 at 10:43:29
avr-gcc.exe -mmcu=atmega8 test1.o -L"I:\Asuro\test1\lib" -L"I:\Asuro\test1\lib\inc" -o test1.elf
test1.o(.text+0xc): In function `main.0':
: undefined reference to `Init'
test1.o(.text+0x10): In function `main.0':
: undefined reference to `FrontLED'
test1.o(.text+0x16): In function `main.0':
: undefined reference to `MotorDir'
vermutilch greife ich auf falsche *.h zu oder was mache ich falsch.
Liste der Anhänge anzeigen (Anzahl: 1)
daran lags nicht
](*,) Hallo Dalmator
dake für die schnelle Antwort, leider liegts daran nicht ; ich vermute irdenwelche falschen Pfad einstellungen. denn selbst bei diesem hoch komplexen Programm kommt ne fehlermeldung:
Code:
#include "asuro.h"
int main(void){
/*Init();*/
FrontLED(ON);
while(1);
return 0;
}
die Fehlermeldung lautet:
Build started 7.1.2007 at 12:40:55
avr-gcc.exe -I"C:\Dokumente und Einstellungen\Arno und Andrea\test\." -mmcu=atmega8 -Wall -gdwarf-2 -Os -fsigned-char -MD -MP -MT test.o -MF dep/test.o.d -c ../test.c
In file included from ../asuro.h:34,
from ../test.c:1:
i:/winavr/bin/../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
avr-gcc.exe -mmcu=atmega8 test.o -lm -lc -o test.elf
test.o: In function `main':
../test.c:4: undefined reference to `FrontLED'
make: *** [test.elf] Error 1
Build failed with 1 errors and 1 warnings...
an was liegt das ??? Hab noch Word angehängt wo man nen screenshot vom AVRSTudio sieht.
Gruß Coolhand :-k