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



Teraz jest 27 gru 2024, o 20:48


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 5 gości


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