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: | 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: 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/ |