#programowanie #avr #atmel #aduino

Zobaczcie na wartości w konsoli - to odczyt programu dla uC z pliku .elf, zobaczcie na dane w pliku .hex i .lss. W pliku .elf brakuje wartości 0x20 (zamiast tego jest 0xC0), albo to w .hex jest nadmiarowy. Kompilator generuje domyślnie plik .elf a opcjonalnie .hex. i .lss Na którym polegać i dlaczego są inne?
A.....k - #programowanie #avr #atmel #aduino 

Zobaczcie na wartości w konsoli - to o...

źródło: comment_99IS0IA4MifCq3kWhrVemWwKWClA5w3E.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nvll: To nie jest reguła, plik elf też służy do programowania. Do tego ma w sobie jedną ważną rzecz - sekcję .fuse - a to pozwala mi zapomnieć o ustawianiu fusebitów w programatorze. Robi się to w kodzie i ma się spokój. Programator powinien korzystać właśnie z tego sposobu (moim zdaniem) i taki programator właśnie tworzę. Na razie odczytuje wszystkie ważne informacje itd, pora na zapisywanie. Tu tak z ciekawości
  • Odpowiedz
MkAVRcalculatorem


@Analityk: Polecam Eclipse + AVR Tools + AVR-Toolchain, za free, legalnie, do zastosowań komercyjnych i rownież wszystko da się z poziomu interfejsu graficznego

Ale 86zł za USBASP to strasznie drogo, za ~50zł można dostać świetny klon AVR mkII
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Analityk: jak się odczytują fusy, to zapisać też powinny. Chyba, że tylko Ci się wydaje że się odczytują, a tak nie jest (miałem tak kiedyś, po długiej rozkminie okazało się, że to tylko udaje, że odczytuje) Sprawdź, czy się nadal "odczytują" gdy odłączysz mikrokontroler od programatora
  • Odpowiedz
@profesorek92: Pierwsza rzecz jaka się dzieje to sprawdzenie jakie uC programuje - to proste bo to jest właściwość projektu. Później trzeba sprawdzić, czy ten sam uC jest podłączony do programatora - w tym celu odczytuje sygnaturę z uC. Gdybyś podłączył inny procek niż wybrałeś we właściwościach projektu programator poinformowałby Cię o tym fakcie i anulował dalsze działania. Ta funkcjonalność działa, trzy bajty sygnatury z pewnością są pobierane z uC. Tak
  • Odpowiedz
#programowanie #avr #programator

Wchodzę do trybu programowania - echo 0x53 - elegancko. Pobieram sygnaturkę - śmiga. Pobieram fusy - pięknie. Czyszczę pamięć - do ostatniego bitu w bajtach flash i eeprom. Zapisuje fusy - tu się "zapisuje" - niestety bez efektu. Dataszit jakby milczał.

Macie jakieś propozycje/wskazówki/rozwiązania? Nie chcę zabierać się za flash dopóki nie będą działały fusy.
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nvll: Tak, chcę programować ATtiny i ATmegi spod Atmel Studio 6. A że swój - każdy ma swoje zboczenia :-)

Patrząc na plik avrdude.conf nie znajduję natchnienia. Rozkazy są zawsze takie same, przesunięcia bitów w bajtach rozkazów zależą tylko od rozmiaru strony flash - wystarczy go poznać, co już sobie zrobiłem. Chociaż jakiś powód niedziałania musi być ...
  • Odpowiedz
@plkwykop: nie miała otworów, a jedynie pady. Po jednej stronie coś koło 1,27mm między środkami, a po drugiej trochę węziej. Na stykówce zaraz by się rozpadło, od rzucania płytką i w ogóle łatwiej mi to teraz będzie łączyć z płytką prototypową dla avr.
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@miszczo997: To nie była zmienna lokalna tylko argument dla funkcji. Jeśli kompilator uzna, że nic się z nią nie dzieje, uzna, że jest nieistotna. Dla kodu:

while(i){i--;};

jeśli i nie będzie volatile w ogóle tą funkcję ominie. I to zależy też od poziomu optymalizacji, bo dla poziomu -00 wszystko będzie działać a dla -0s już nie będzie. Z delayms też za bardzo nie widzi mi się korzystać, bo konfiguruje ona
  • Odpowiedz