AVR ve Eclipse Kurulumu

Başlatan Erol YILMAZ, 26 Mayıs 2010, 16:25:27

Erol YILMAZ

AVR severler için kısa bir derleyici ortamı kurulumu...

Ticari derleyicilere göre daha uzun olmakla beraber kesinlikle daha zor değil.

öncelikle 3 tane program indiriyoruz...

1. WinAVR :: http://sourceforge.net/projects/winavr/files/
2. Eclipse :: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-cpp-galileo-SR2-win32.zip
3. WinAVR yi Eclipse'ye tanıtan bir AVR-Eclipse PLUGIN :: http://sourceforge.net/projects/avr-eclipse/files/

4.WinAVR kurulumu yapıyoruz...
5. Eclipse ve  kurulum gerektirmiyor.
6. AVR-Eclipse PLUGIN i bir klasöre açtıktan sonra içinden 2 tane klasör çıkıyor...
    Plugins  ve Features  Klasörleri
    bunların içini Eclipse'yi açtığımız klasörün içinde aynı klasör adındaki yere koyuyoruz...

hepsi bu :)



http://avr-eclipse.sourceforge.net/user%20manual/gettingstarted/gs_tutorials.html
devamını buradan takip edebilirsiniz...

emrahmrcn

Eclipse gömülü işletim sistemlerinden olan ve gün geçtikçe kullanımı artan QNX de de ide olarak kullanılmakta.
Benim yaradılışımda bir ayrıcalık varsa o da TÜRK olmamdır. M.K ATATÜRK

Gökhan BEKEN

Eclipse programını kullanmaya başlamak bir işkence gibi.
http://www.screentoaster.com/watch/stVEpVSkBIR1xaQFxcX19YUldU/avr_programming_with_eclipse_ide
Bu videoda olmasa çözemezdim galiba.
Özel mesaj okumuyorum, lütfen göndermeyin.

aykut54

[IMG]http://img412.imageshack.us/img412/8071/adszwim.jpg[/img]

Merhaba
Allegro hocamızın verdiği bütün linklerde programları kurdum.Dediklerinin hepsini yaptım. Yeni bir kod içeriği oluşturmaya çalıştım ancak bu ibareden sonra daha gidemedim.

Hatam nerdedir.
Hayırlı ramazanlar...


ferdem

Sanırım AVR-Eclipse plugin i yüklenmemiş, ben eclipse in içinden indirip kurmuştum. Şu yazıda anlatıldığı şekilde:
http://www.scienceprog.com/setup-avr-eclipse-plugin-to-work-with-winavr/
Eclipse i açtıktan sonra Help> Install New Software >
çıkan menüye http://avr-eclipse.sourceforge.net/updatesite/ yazıyoruz, kendisi indiriyor. Kolay gelsin.

aykut54

fatih hocam teşekkür ederim cevabınız için ben gerçi onuda denedim yine olmadı. Tekrar bir deneyelim. Sorunu çözer isem burda cevaplarım.

aykut54

Ne hikmetse sorun çözülmedi aynı programlar başka pc'de denendi aynı sorun devam etmekte.Win Avr ile denemeleri şimdi yapıyorum. Aklıma gelen birkaç sebebten olabilirmi ? Bendeki windows xp sp2 bundan dolayı sorun olabilirmi?

İyi günler

airforce

Alıntı yapılan: aykut54 - 20 Ağustos 2010, 18:24:16
[IMG]http://img412.imageshack.us/img412/8071/adszwim.jpg[/img]

Merhaba
Allegro hocamızın verdiği bütün linklerde programları kurdum.Dediklerinin hepsini yaptım. Yeni bir kod içeriği oluşturmaya çalıştım ancak bu ibareden sonra daha gidemedim.

Hatam nerdedir.
Hayırlı ramazanlar...


project name i yazarsanız finish tuşu aktif olmuyor mu?

project name: ilk_proje gibi :)

aykut54

Bütün yardım eden arkadaşlarımıza sonsuz teşekkürler. Sorun çözüldü?

Sebebi ise java programından kaynaklanmaktaydı.Program güncellemeleri yapıldıktan sonra win avr programı sorunsuz bir şekilde çalışmakta.

Sağlıcakla.....

dhan000

yukardaki videoyu izlerken yazılan komutların otomatik tamamlandığını gördüm benim kurduğum da bu özellik yok. hanği menüden bu özelliği açabilirim. bir eklenti felan mı kurmam lazım...
selametle.

rf

Eclipse üzerinde Makefile'in otomatik oluşturulduğu şekilde printf fonksiyonunda float sayıları yazmayı etkinleştirmek için eclipse ide üzerinde nasıl bir ayar yapmak lazım.

Makefile'ı kendim yarattığım zaman sorun olmuyor. fakat otomatik oluşturmada bunu nasıl aktifleştirebiliriz?

-Wl,-u,vfprintf -lprintf_flt gibi bir komut ekinden bahsediliyor. eclipse ide'de
make komutunun arkasına ekledim ama işe yaramadı.

İyi çalışmalar dilerim.
Saygılarımla,
KOSGEB Girişimcilik Desteği Bilgi ve Paylaşım Platformu http://www.girisimcilikdestegi.com/

Sepiroth

@rf, en sonunda -lm de olmasi lazim, WinAvr'de bu sekilde yapinca sorunsuz basiyor float sayilari. Birde soyle bir durum var, bu sekilde yaptiktan sonra float sayilari direk verince gene calismiyor, double tipine cast etmen gerekiyor, bu da avr-gcc'nin yaptigi bir sacmalik.. OK ;)
Either you feel it, or not...

rf

http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga4c04da4953607fa5fa4d3908fecde449

make -Wl,-u,vfprintf -lprintf_flt -lm olarak girdim parametreyi ama olmadı. (-lm'yi denemişim)

Hata verince double'a çevirmiştim bende ama bişey değişmedi.



Parametreyi doğru yeremi giriyorum ondan emin değilim...
Program
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <float.h>
#include <math.h>
#include "usart.h"
#include "adc.h"

unsigned int ADCCount;
double ADCVoltage;
unsigned char *p;


int main(void) {
	DDRD = (1 << DDD1);
	usart_init();
	adc_init(ADC_REF_AVCC);
	while (1) {
		_delay_ms(253);
		ADCCount=(int)(read_adc(0));
		ADCVoltage = (double)(ADCCount*5.0)/1023.0;
		printf("\r Voltage: %2.2f", ADCVoltage);

	}
}


Compiler çıktısı
**** Build of configuration Release for project 06ADCtoUSART ****

make -Wl,-u,vfprintf -lprintf_flt -lm all 
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
Finished building: ../main.c
 
Building target: 06ADCtoUSART.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,06ADCtoUSART.map -mmcu=atmega32 -o"06ADCtoUSART.elf"  ./main.o   
Finished building target: 06ADCtoUSART.elf
 
Invoking: AVR Create Extended Listing
avr-objdump -h -S 06ADCtoUSART.elf  >"06ADCtoUSART.lss"
Finished building: 06ADCtoUSART.lss
 
Create Flash image (ihex format)
avr-objcopy -R .eeprom -O ihex 06ADCtoUSART.elf  "06ADCtoUSART.hex"
Finished building: 06ADCtoUSART.hex
 
Create eeprom image (ihex format)
avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex 06ADCtoUSART.elf  "06ADCtoUSART.eep"
Finished building: 06ADCtoUSART.eep
 
Invoking: Print Size
avr-size --format=avr --mcu=atmega32 06ADCtoUSART.elf
AVR Memory Usage
----------------
Device: atmega32

Program:    4068 bytes (12.4% Full)
(.text + .data + .bootloader)

Data:        311 bytes (15.2% Full)
(.data + .bss + .noinit)


Finished building: sizedummy
KOSGEB Girişimcilik Desteği Bilgi ve Paylaşım Platformu http://www.girisimcilikdestegi.com/

Sepiroth

#13
@rf simdi hatirladim, ben kendi printf()'mi kendim yazdiydim ^^ sprintf ile formatlayip kendi fonksiyonumla gonderiyordum direk UART'a..  nedeni ise su, PIC C kullanirkene ordaki printf amca direk UART'a yonlendirilmis halde oluyodu, bizde catir catir yaziyorduk, avr-gcc de snn bu islemi manuel yapman gerekiyor. yani bi tane file stream olusturup bunu init ederken ilgili uart'in gonderme fonksiyonuna ilistiriyorsun ^^
FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);

int main()
{
        //some other stuff
   InitUSART(BAUD_PRESCALE);
   
   stdout = &mystdout;
   
   printf("moo\n");
        //more other stuff
} 

//---uart_putchar------------
uint8_t uart_putchar(uint8_t byte, FILE *unused)
{
   if(byte == '\n')
   {
      uart_putchar('\r', 0);
   }
   //Wait until buffer ready flag is raised
   loop_until_bit_is_set(UCSR0A, UDRE0);
   UDR0 = byte;
   
   return 0;
}


buna benzer bisi yapman lazim.. ben bunu yaptim ilk, sonra ne kasacam dedim kendi uart driver, port,protocol vs diye uzayan giden bi sistem gelistirdim, her istedigimi hiiiic ugrastirmadan yapiyorum.. Atmel de boyle iste, welcome to AVR, saygilarimla OK ;)

edit:
ps: sen daha beni isin icine katma emi :))) haftasonlari bos bos yatiyorum iste.. neyse sen anladin onu ;)
Either you feel it, or not...

ahmet2004

AVR C Linker - General - Other Arguments 'e ekle parametrelerini.