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

ATXMega32D4 - Konfiguracja avrdude dla układów Xmega, problem z wpisami configu

bisz 10 Gru 2013 14:27 1143 2
REKLAMA
  • #1 13045483
    bisz
    Poziom 18  
    Witam,
    Usiłuję rozpocząć 'przygodę' z układami Xmega, i chyba utknąłem na kwestii wsparcia przez program avrdude. Oczywiście odpowiednie wpisy w configu umieściłem, oto wycinek:

    
    #------------------------------------------------------------
    # ATXMEGA32D4
    #------------------------------------------------------------
    
    part
        id	= "x32d4";
        desc        = "ATxmega32D4";
        signature	= 0x1e 0x95 0x42;
        has_jtag	= yes;
        has_pdi	= yes;
        nvm_base	= 0x01c0;
    
        memory "eeprom"
            size		= 0x0400;
            offset		= 0x08c0000;
            page_size	= 0x20;
            readsize	= 0x100;
        ;
    
        memory "application"
            size		= 0x00008000;
            offset		= 0x0800000;
            page_size	= 0x200;
            readsize	= 0x100;
        ;
    
        memory "apptable"
            size		= 0x00001000;
            offset		= 0x00807000;
            page_size	= 0x200;
            readsize	= 0x100;
        ;
    
        memory "boot"
            size		= 0x00001000;
            offset		= 0x00808000;
            page_size	= 0x200;
            readsize	= 0x100;
        ;
    
        memory "flash"
            size		= 0x00009000;
            offset		= 0x0800000;
            page_size	= 0x200;
            readsize	= 0x100;
        ;
    
        memory "prodsig"
            size		= 0x200;
            offset		= 0x8e0200;
            page_size	= 0x200;
            readsize	= 0x100;
        ;
    
        memory "usersig"
            size		= 0x200;
            offset		= 0x8e0400;
            page_size	= 0x200;
            readsize	= 0x100;
        ;
    
        memory "signature"
            size		= 3;
            offset		= 0x1000090;
        ;
    
        memory "fuse0"
            size		= 1;
            offset		= 0x8f0021;
        ;
    
        memory "fuse1"
            size		= 1;
            offset		= 0x8f0021;
        ;
    
        memory "fuse2"
            size		= 1;
            offset		= 0x8f0022;
        ;
    
        memory "fuse4"
            size		= 1;
            offset		= 0x8f0024;
        ;
    
        memory "fuse5"
            size		= 1;
            offset		= 0x8f0025;
        ;
    
        memory "lock"
            size		= 1;
            offset		= 0x8f0027;
    	;
    	
    	memory "data"
            offset      = 0x1000000;
    		
        ;
    ;
    


    Efekt jest taki że potrafię poprawie zweryfikować swój fizyczny układ:


    
    C:\Documents and Settings\Tomek>avrdude -p x32d4 -cavrisp2 -Pusb -V
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.03s
    
    avrdude: Device signature = 0x1e9542
    
    avrdude done.  Thank you.
    
    
    C:\Documents and Settings\Tomek>
    


    Natomiast próba wgrania prostego programu kończy się pewnym niepowodzeniem:

    
    C:\Documents and Settings\Tomek>avrdude -p x32d4 -cavrisp2 -Pusb -U flash:w:"C:\
    Documents and Settings\Tomek\workspace\xmega_master\Release\xmega_master.hex":i
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.03s
    
    avrdude: Device signature = 0x1e9542
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
    
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "C:\Documents and Settings\Tomek\workspace\xmega_mas
    ter\Release\xmega_master.hex"
    avrdude: writing flash (456 bytes):
    
    Writing | ################################################## | 100% 0.05s
    
    avrdude: 456 bytes of flash written
    avrdude: verifying flash memory against C:\Documents and Settings\Tomek\workspac
    e\xmega_master\Release\xmega_master.hex:
    avrdude: load data flash data from input file C:\Documents and Settings\Tomek\wo
    rkspace\xmega_master\Release\xmega_master.hex:
    avrdude: input file C:\Documents and Settings\Tomek\workspace\xmega_master\Relea
    se\xmega_master.hex contains 456 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.06s
    
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
             0x0c != 0xff
    avrdude: verification error; content mismatch
    
    avrdude done.  Thank you.
    
    


    Zmierzam do zapytania o istotę generowania sekcji dla poszczególnych układów w pliku avrdude. Są tam różne adresy. Ja moją sekcję znalazłem gdzieś w internecie ale nie jestem pewien czy jest wolna od błędów. Chciałbym sięwas zapytać, skąd brać informacje o adresach tych wszystkich sekcji które są w configu avrdude ? Mógłbym wtedy zweryfikować czy to co mam jest poprawne czy nie.
    Z góry dziękuję i pozdrawiam
  • REKLAMA
  • #2 13046401
    Konto nie istnieje
    Poziom 1  
  • #3 13048331
    bisz
    Poziom 18  
    Niestety jestem zbyt zżyty ze środowiskiem eclipse oraz Linuksem, na windowsie pracuję akurat teraz wyjątkowo :-) Tak czy siak udało mi się rozwiązać problem przepisując konfigurację z najnowszego configa avrdude. Tak czy siak wciąż nie wiem skąd biorą się te wartości.
REKLAMA