C++ i Avr Studio 5
Postat: 13 augusti 2011, 18:15:50
Då var det dags att plocka upp AVR-programmerandet igen efter ett par månaders avbrott. AVR Studio 5 - alltid kul med en ny version...
Tyvärr så verkar den inte fungera speciellt bra. Vid import av gamla projekt så fick den med sig en del inställningar. Dock tappade den bort hälften av filerna, men de letade jag upp igen. Problemet kommer när man kompilerar en C++-fil. Av någon anledning verkar den då strunta i att ge g++ några direktiv, så g++ kör utan optimeringar och vet inte vilket chip den arbetar med.
Den enda workaround som jag känner till är att inkludera en .h-fil i stil med:
#define __AVR_ATmega8__
#define F_CPU 8000000UL
Om man ska kunna göra så gäller det att hitta något som motsvarar optimering -O2 som jag kan skriva i .h-filen. Men det här känns helt fel. Det måste ju finnas inställningar för hur den ska anropa g++? Allt som finns under "toolchain" i project properties gäller bara gcc, assembler och länkare.
Det sättet som beskrivs bl.a. på avrfreaks är att man ska döpa om filerna till .c och lägga in direktiv för att tolka dem som c++. Med denna metod tolkas då alla filer som c++, och det vet jag inte om jag är sugen på.
Nån som har några smarta lösningar?
Tyvärr så verkar den inte fungera speciellt bra. Vid import av gamla projekt så fick den med sig en del inställningar. Dock tappade den bort hälften av filerna, men de letade jag upp igen. Problemet kommer när man kompilerar en C++-fil. Av någon anledning verkar den då strunta i att ge g++ några direktiv, så g++ kör utan optimeringar och vet inte vilket chip den arbetar med.
Den enda workaround som jag känner till är att inkludera en .h-fil i stil med:
#define __AVR_ATmega8__
#define F_CPU 8000000UL
Om man ska kunna göra så gäller det att hitta något som motsvarar optimering -O2 som jag kan skriva i .h-filen. Men det här känns helt fel. Det måste ju finnas inställningar för hur den ska anropa g++? Allt som finns under "toolchain" i project properties gäller bara gcc, assembler och länkare.
Det sättet som beskrivs bl.a. på avrfreaks är att man ska döpa om filerna till .c och lägga in direktiv för att tolka dem som c++. Med denna metod tolkas då alla filer som c++, och det vet jag inte om jag är sugen på.
Nån som har några smarta lösningar?