Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 7 kwi 2025, o 06:40


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 23 maja 2021, o 10:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Witam,
    Zglębiając temat Xmega mam pytanie odnośnie dostępu do specjalnej sekcji Application Table w pamięci Flash.
    Jak uzyskać do niej dostęp? Jak umieścić i odczytać zmienne w tej sekcji z poziomu Eclipse?

    Obrazek

    jeszcze fragment noty
    Obrazek

    Będę wdzięczny za podpowiedź.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 maja 2021, o 13:09 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Należy zdefiniować sekcję:
    https://microchipsupport.force.com/s/article/Define-a-constant-array-in-Application-Table-of-AVR-XMEGA-devices

    Różnica polega tylko na tym, że w Eclipse opcję linkera wpisujesz w innym miejscu. Opis, w jaki sposób to zrobić znajdziesz np. tutaj:
    http://avr8bit.cba.pl/?doc=avr_flash_data#custom_section_data
    W prawdzie to nie dotyczy konkretnie xmega, ale to raczej nie ma większego znaczenia i powinno zadziałać.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 maja 2021, o 14:48 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Dzięki za podpowiedź. Jednak coś jeszcze nie działa.
    wpisuję adres nowej sekcji w linkerze (wg tabeli z datasheet - procek Xmega32A4U)
    -Wl,-section-start=.apptable=0x3800
    utworzyłem makro sekcji i umieszczam w niej zmienne jak w przykładzie:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    jednak po kompilacji otrzymuję error, że sekcja .apptable zachodzi na sekcję .text:
    c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: section .apptable loaded at [00003800,00003952] overlaps section .text loaded at [00000000,00004add]

    Wpisuję zły adres dla sekcji .apptable czy coś jeszcze przeoczyłem?

    ------------------------ [ Dodano po: 16 minutach ]

    Już chyba wiem. Adresy z datasheet trzeba pomnożyć x2. Czyli 0x3800*2 = 0x7000
    Jeśli to też błąd to mnie poprawcie.

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 maja 2021, o 15:07 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    Microchip napisał(a):
    Datasheet shows word address. Multiply the address by two and use it in linker settings.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 maja 2021, o 15:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 lut 2013
    Posty: 158
    Lokalizacja: KTT
    Pomógł: 1

    Dokładnie.
    Adresy słów trzeba potraktować x2 żeby uzyskać adresy bajtów.
    W każdym razie wielkie dzięki za pomoc andrews. Teraz wszystko śmiga :)

    ------------------------ [ Dodano po: 30 minutach ]

    Jeszcze mam jedno pytanie:
    Gdzie to ustawić, żeby po kompilacji wyświetlało zajętość nowej sekcji?

    ----------------
    Device: atxmega32a4u

    Program: 18698 bytes (50.7% Full)
    (.text + .data + .bootloader)

    Data: 391 bytes (9.5% Full)
    (.data + .bss + .noinit)

    EEPROM: 116 bytes (11.3% Full)
    (.eeprom)

    'Finished building: sizedummy'

    W tym drugim linku jest tylko taka krótka informacja:
    "Jeśli teraz będziemy chcieli, aby nasze wcześniej utworzone narzędzie wyświetliło nam informacje o rozmieszczeniu danych w naszej sekcji, powinniśmy w opcjach narzędzia (Memory objects) w polu Arguments (na końcu) dopisać jej nazwę."
    którą nie wiem jak zastosować (nie widzę nigdzie Memory objects)

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO