logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMega8][C/Eclipse/Linux] błedy budowania z ".elfa&quo

kayou 24 Sie 2009 11:34 1600 2
REKLAMA
  • #1 6928131
    kayou
    Poziom 10  
    Witam. Gdy przegladajac forum przekonalem sie ze moge programowac Atmege8 na moim kochanym ubunciaczku (:*) postanowilem szybko sie przekonac czy to prawda.
    Juz pokonalem problemy dotyczace programatora USBap, burn-o-mat dziala, lecz zabraklo mi ide do tworzenia hexow. Wtenczas znalazlem wtyczke do eclipse(ktorego uzywam od jakis 3 lat) i ku mej uciesze wszystko bylo ladnie pieknie az do wykonania polecenia [Build All], dla przykladowego, prostego kodu ukazalo mi sie cos takiego:

    
    **** Clean-only build of configuration Release for project avarrrrrr ****
    
    make clean 
    rm -rf  ./grr.o  ./grr.d  avarrrrrr.eep  avarrrrrr.hex  avarrrrrr.lss  sizedummy  avarrrrrr.elf
     
    
    **** Build of configuration Release for project avarrrrrr ****
    
    make all 
    Building file: ../grr.c
    Invoking: AVR Compiler
    avr-gcc -Wall -Os -fpack-struct -fshort-enums -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=1000000UL -MMD -MP -MF"grr.d" -MT"grr.d" -c -o"grr.o" "../grr.c"
    Finished building: ../grr.c
     
    Building target: avarrrrrr.elf
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,avarrrrrr.map -mmcu=atmega8 -o"avarrrrrr.elf"  ./grr.o   
    /usr/lib/gcc/avr/4.2.2/../../../../avr/lib/avr4/crtm8.o: In function `__bad_interrupt':
    ../../../../crt1/gcrt1.S:124: undefined reference to `main'
    make: *** [avarrrrrr.elf] Błąd 1
    


    Wujaszek google nie potrafi mi pomoc :/

    Moze ktos z was sie natknal na cos takiego?
  • REKLAMA
  • #3 6928202
    kayou
    Poziom 10  
    /*
     * grr.c
     *
     *  Created on: 2009-08-24
     *      Author: kayou
     */
    
    #include <avr/io.h>              	   // dostêp do rejestrów
    #include <util/delay.h>                // zawiera definicjê _delay_loop2
    #define przerwa 5
    int main(void)                        // program g³ówny
    {
      uint8_t pwm=180;                    // zmienna zawiaraj¹ca wartoœæ wype³nienia
    
      DDRD = 0x80;   
      DDRB = 0xff;
      DDRC = 0xff;
                                    
      PORTD = 0x7F;                        // podci¹gaj wejœcia PORTD
      PORTC = 0xFF;
      TCCR2 =  _BV(COM21) | _BV(COM20)| _BV(WGM21) | _BV(WGM20) |   _BV(CS20);
      
                                      // czasomierz 2 w trybie PWM
                                      // taktowany F_CPU
    	uint8_t i,j,k=0;
      while(1)                        // pêtla nieskoñczona
      {
    /*
    	for(i=0;i<250;i++)
    	{
    		OCR2=i;
    		PORTC=0b11111110;
    		_delay_ms(przerwa);
    	}
    	PORTC=0b11111111;
    	for(j=0;j<250;j++)
    	{
    		OCR2=j;
    		PORTC=0b11111101;
    		_delay_ms(przerwa);
    	}
    	PORTC=0b11111111;
    	for(k=0;k<250;k++)
    	{
    		OCR2=k;
    		PORTC=0b11111011;
    		_delay_ms(przerwa);
    	}
    	
    	for(i=0;i<250;i++)
    	{
    		PORTC=0b11111100;
    		OCR2=i;
    		
    		_delay_ms(przerwa);
    	}
    	PORTC=0b11111111;
    	for(j=0;j<250;j++)
    	{
    		OCR2=j;
    		PORTC=0b11111001;
    		_delay_ms(przerwa);
    	}
    		PORTC=0b11111111;
    	for(k=0;k<250;k++)
    	{
    		OCR2=k;
    		PORTC=0b11111010;
    		_delay_ms(przerwa);
    	}
    	PORTC=0b11111111;*/
      }
    } 


    Po przemysleniu stwierdzam ze mozliwy jest bląd w bibliotece, chociaz jest to malo prawdopodobne

    EDIT: Po resecie wszystko gra ze az milo, zamykam :)

    Dziekuje za zainteresowanie
REKLAMA