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...
Eclipse gömülü işletim sistemlerinden olan ve gün geçtikçe kullanımı artan QNX de de ide olarak kullanılmakta.
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.
[IMG]http://img412.imageshack.us/img412/8071/adszwim.jpg[/img] (http://img412.imageshack.us/i/adszwim.jpg/)
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...
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.
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.
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
Alıntı yapılan: aykut54 - 20 Ağustos 2010, 18:24:16
[IMG]http://img412.imageshack.us/img412/8071/adszwim.jpg[/img] (http://img412.imageshack.us/i/adszwim.jpg/)
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 :)
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.....
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.
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,
@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 ;)
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
@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 ;)
AVR C Linker - General - Other Arguments 'e ekle parametrelerini.
Yeni C kod oluşturma sihirbazı WinAVR için:
Eski: http://www.avrfreaks.net/index.php?module=Freaks%20Files&func=viewFile&id=2457 36Kb
Yeni: http://greschenz.dyndns.org/avrwiz/AvrWiz.zip 113Kb
@Sepiroth
:) bende zaten öyle başladım ADC,TIMER,USART,LCD,1WIRE... diye kendi kütüphanelerimi yazıyorum. ATMEL'de kaynak sorunu yok binlerce örnek var ve hepsi ANSI C anlamak ve derlemek çok kolay,
PIC'deki gibi yok CCS,C18,IAR ıvır zıvır diye ayrılmıyor. Zamanında hi-tech'e geçtiğimde bukadar sevinmiştim şimdide atmelegeçtiğim için sevindim.
Bahsettiğin FILE değişkeni usart.h'e gömdüğüm için görünmüyor.
Alıntı Yapint UartPutChar(char c,FILE* stream);
int UartGetChar(FILE* stream);
static FILE uartstr = FDEV_SETUP_STREAM(UartPutChar, UartGetChar, _FDEV_SETUP_RW);
yoksa printf'de sorun yok gayet iyi çalışıyor. Sağ olsun www.berik.net 'sitesinde gayet iyi anlatılmış.
avr-libc-user-manual'de de anlatmışlar.
ATMEL'de ısınma turları atıyorum daha :) proje kısmı sonra...
@ahmet2004
Teşekkür ederim aradığım kısım tam orası fakat benim IDE'de Settings sekmesinde sadece Binary Parsers ve Error Parsers sekmeleri var diğerlerini göremiyorum. Plugin sayfasındada aynı yerden bahsetmişler ama bende görünmüyor o kısım.
eclipse-cpp-helios-SR1-win32 kullanıyorum.
Saygılarımla,
AVR-Eclipse PLUGIN'i kurmamışsın.
3. WinAVR yi Eclipse'ye tanıtan bir AVR-Eclipse PLUGIN :: http://sourceforge.net/projects/avr-eclipse/files/
neyse halletiysen bi sorun yok tabi o zmn ;)
@ahmet2004
Pluginim kurulu, kurulu olmasaydı kodu derleyemezdim.
Sanırım sorun projeyi oluştururken yapılan seçimlerde ben
File/new/C Project adımından
AVR Cross Target Aplication / AVR GCC Toolchain 'i seçiyorum.
ama,
MakeFile Project / AVR GCC Toolchain 'i seçersem
AVR C linker sekmesini göremiyorum. :-X
Yardımlar için teşekkür ederim şimdilik pes ediyorum kendi Makfile'ımı kendim yapmaya devam edeceğim. Ozaman bir sorunla karşılaşmadım.
Saygılarımla,
eclipse-cpp-helios-SR1 indirme linkleri:
32bit
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR1/eclipse-cpp-helios-SR1-win32.zip
64bit
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR1/eclipse-cpp-helios-SR1-win32-x86_64.zip
Resimli kurulum aşamaları:
*rf* senin kullandığın eclipse sürümünü denedim bir sorun yok düzgün çalışıyor.
Alıntı yapılan: dhan000 - 25 Eylül 2010, 22:30:36
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.
Bu soruya cevap verildi mi?
Alıntı yapılan: airforce - 06 Kasım 2010, 14:47:55
Alıntı yapılan: dhan000 - 25 Eylül 2010, 22:30:36
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.
Bu soruya cevap verildi mi?
Ctrl + Space
eclips ile oluşturulan .elf uzantılı dosyaları isiste adım adım çalıştıramıyorum.
programım normal çalışıyor ama oluşturulan c kodlarını takip edemiyorum isis çalışmaya başladığında;
*[ELF]no ".debug line"section,cannot associate addresses to source line
*[ELF]no ".debug info" or ".debug_abbrev" or ".debug_str" section cannot extract variable location & type data
şeklinde uyarı veriyor çözüm için biraz kurcaladım ama bi sonuca ulaşamadım
yardımlarınızı bekliyorum arkadaşlar
arkadaşlar konu hakkında bi fikri olan yokmu..