ATNEL tech-forum
https://forum.atnel.pl/

Dostęp do sekcji Application Table w pamięci FLASH w Xmega
https://forum.atnel.pl/topic23793.html
Strona 1 z 1

Autor:  gordon10 [ 23 maja 2021, o 10:27 ]
Tytuł:  Dostęp do sekcji Application Table w pamięci FLASH w Xmega

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ź.

Autor:  andrews [ 23 maja 2021, o 13:09 ]
Tytuł:  Re: Dostęp do sekcji Application Table w pamięci FLASH w Xme

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:  gordon10 [ 23 maja 2021, o 14:48 ]
Tytuł:  Re: Dostęp do sekcji Application Table w pamięci FLASH w Xme

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.

Autor:  andrews [ 23 maja 2021, o 15:07 ]
Tytuł:  Re: Dostęp do sekcji Application Table w pamięci FLASH w Xme

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

Autor:  gordon10 [ 23 maja 2021, o 15:37 ]
Tytuł:  Re: Dostęp do sekcji Application Table w pamięci FLASH w Xme

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)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/