sekcja linkera

Znaleziono około 386 wyników dla: sekcja linkera
  • ARM LINKER - ARM skrypt linkera, nowa sekcja pamięci

    Przy okazji sprawdź, czy w ustawieniach debuggera nie masz włączonego czyszczenia całej pamięci Flash przy programowaniu. Jeśli używasz jawnej wartości wskaźnika - nie musisz w ogóle definiować nowej sekcji dla linkera, wystarczy, że skrócisz główną sekcję Flash. Elegancko byłoby zadeklaropwać nową sekcję,a nestępnie zdefiniować zmienne z atrybutami...

    Mikrokontrolery ARM   05 Lip 2016 15:12 Odpowiedzi: 3    Wyświetleń: 1407
  • Jak ustawić kolejność sekcji w skrypcie linkera dla gcc 4.3.3?

    Nowe gcc to 4.4.0. Ale ono nie ma nic do tego. Jeśli już to raczej binutils (ld -v prawdę Ci powie) W wersji 2.19 dla ARM faktycznie coś namieszali z sekcjami, ale o takim błędzie nie słyszałem. Ja mam 2.19.1 i jest OK Co do CodeSourcery to Ci nie pomogę. Albert

    Mikrokontrolery ARM   06 Cze 2009 16:43 Odpowiedzi: 15    Wyświetleń: 4092
  • REKLAMA
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • [AVR][C]{AtmelStudio] Stała w pamięci programu pod konkretnym adresem

    Ponieważ przekazujesz do linkera gc-sections, więc sekcje nieużywane są usuwane, więc jeśli do zmiennej którą umieszczasz w tej sekcji nie ma referencji to całość jest usuwana. Tylko jeśli do zmiennej będzie referencja i sekcja nie zostanie usunięta, to linker nie zgłosi konfliktu, że sekcje .test i .text się nakładają? Czy linker może zagnieździć...

    Mikrokontrolery AVR   18 Lip 2018 20:09 Odpowiedzi: 22    Wyświetleń: 1125
  • REKLAMA
  • Kompilator Keil dla C51 wskazanie adresu w pamięci programu

    już to rozkminilem w sekcji linkera istotnie to się robi

    Mikrokontrolery   19 Paź 2023 22:03 Odpowiedzi: 3    Wyświetleń: 222
  • umiejscowienie pamięci pod konkretnym adresem [SAM7][WinArm]

    Trzeba stworzyć w skrypcie linkera sekcję pod konkretnym adresem i w tej sekcji umieścić tablicę. 4\/3!!

    Mikrokontrolery ARM   13 Lut 2011 11:54 Odpowiedzi: 4    Wyświetleń: 1625
  • REKLAMA
  • Jak poprawnie umieścić funkcję w RAMie podczas aktualizacji firmware?

    Przykład od michalko12, robi to co ci na początku napisałem. Tworzona jest dodatkowa sekcja fastrun (w skrypcie linkera) i w tej sekcji są umieszczane funkcje. Sprytne jest umieszczenie tej sekcji wewnątrz sekcji data, co pozwala na pominięcie modyfikacji pliku crt.

    Mikrokontrolery   15 Mar 2010 15:00 Odpowiedzi: 44    Wyświetleń: 4810
  • Jak zachować zmienne po resecie procesora w C na dsPIC30F4013?

    Unikać zresetowania? Nie ma żadnej gwarancji, że pamięć RAM po resecie zachowuje poprawne wartości, zwłaszcza gdy powodem resetu jest zakłócenie. Ale da się to zrobić - trzeba swoje zmienne umieścić w sekcji innej niż .bss i .data - wtedy nie będą ani zerowane, ani inicjalizowane. Jak dodać nową sekcję dla linkera, to już trzeba poczytać dokumentację...

    Mikrokontrolery   12 Gru 2010 17:40 Odpowiedzi: 4    Wyświetleń: 1190
  • [LPC2148] Jak zdefiniować nieciągłą pamięć RAM w LPC2148 w pliku LPC2148-rom.ld?

    Nie da się, zmienne musisz ręcznie umieszczać w jednej bądź drugiej sekcji (oczywiście skrypt linkera musi być na to gotowy) 4\/3!!

    Mikrokontrolery ARM   22 Sie 2009 14:36 Odpowiedzi: 2    Wyświetleń: 1287
  • [C] Jak zainicjalizowac funkcje pod konkretnym adresem?

    pierwszym (lub drugim nieparzystym) bajcie konkretnej sekcji? Funnkca jest pod adresem parzystym ale w tablicy adres do skoku będzie nieparzysty. A odpowiadając zależy co tam w tej sekcji w pliku linkera napiszesz. Jak będzie wyrównana i nie będzie w niej żadnych operacji przesuwających aktualny wskaźnik to tak.

    Mikrokontrolery   21 Wrz 2019 07:48 Odpowiedzi: 11    Wyświetleń: 669
  • [LPC2378][C / CodeSourcery / OpenOCD] FreeRTOS - kompilacja

    Nie sądze, żeby Yagarto samo dodawało jakieś sekcje do skryptu linkera "samo z siebie". Dodaj więc gdzieś na końcu skryptu linkera coś na styl: .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } (znalezione tu - http://www.codesourcery.com/archives/arm... ) I powinno działać 4\/3!!

    Mikrokontrolery ARM   27 Cze 2009 21:19 Odpowiedzi: 7    Wyświetleń: 3613
  • [OpenOCD] [LOAD] Jak wyłączyć ładowanie określonej sekcji do flash?

    Możesz w skrypcie linkera dodać przy tej sekcji `(NOLOAD)`, w ten sposób: SECTIONS { ... .noinit (NOLOAD) : { ...

    Mikrokontrolery ARM   20 Kwi 2018 17:47 Odpowiedzi: 4    Wyświetleń: 588
  • STM32 Jak umieścić dane we FLASH których się nie używa.

    A w skrypcie linkera sekcja z atrybutem KEEP? Wtedy nie powinien tego odśmiecacz wywalić, i potem po prostu sekcja #pragma? :/ Nwm tak sobie pomyslałem. Może zadziałać :D Zawsze też możesz zapisać coś do flasha pod odp oadresem jeden raz a potem to będzie. Jeśli zapiszesz to we fragmencie pamięci którego programator nie wyczyści :/ Edit: Pozwolę sobie...

    Mikrokontrolery ARM   28 Kwi 2021 23:11 Odpowiedzi: 3    Wyświetleń: 777
  • STM32F439 i STM32F429 - RTC nie działa na zasilaniu z VBAT.

    Zrobiłem u siebie na próbę 429Zi DISCO płytka. Zasiliłem 2 paluszkami. [syntax=c]void BKP_SRAM_Init(void) { RCC->APB1ENR |= RCC_APB1ENR_PWREN; RCC->AHB1ENR |= RCC_AHB1ENR_BKPSRAMEN; HAL_PWR_EnableBkUpAccess(); HAL_PWREx_EnableBkUpReg(); } #define BSRAM_B 0x40024000 void inline BKPS_Write_Byte(uint32_t address, uint8_t value) { *(volatile uint8_t *)...

    Mikrokontrolery ARM   06 Gru 2016 23:17 Odpowiedzi: 29    Wyświetleń: 2412
  • [STM32/GD32] umieszczenie kodu poniżej pewnego adresu w GCC

    Ja bym dodał dodatkową sekcję i przy pomocy attribute w gcc jawnie umieścił zmienne i funkcje w tej sekcji. Potem tylko wywołując linker należy określić gdzie ta dodatkowa sekcja ma wylądować. Inne rozwiązanie wskazał już kol. (at)Freddie Chopin .

    Mikrokontrolery ARM   04 Lut 2021 12:33 Odpowiedzi: 13    Wyświetleń: 1155
  • REKLAMA
  • Kopiowanie danych z Flash do EEPROM bez użycia RAM - jak to zrobić?

    Nie mozna tak zrobic, bo nie masz gwarancji gdzie linker umiesci zmienna - zwykle robi to w kolejnosci deklaracji, ale wcale nie musi. Zreszta to moze sie popsuc nawet i bez ingerencji linkera - wystarczy, ze ktorys naglowek stworzy zmienna w EEPROM. Sekcje pamieci EEPROM mozna przesunac przekazujac linkerowi polecenie --section-start (pamietaj o tym,...

    Mikrokontrolery   07 Lis 2010 13:51 Odpowiedzi: 26    Wyświetleń: 3607
  • Automatyzacja programowania adresów w urządzeniach z procesorem CC430F5137/6137

    Żeby zmienna była pod określonym adresem wystarczy umieścić ją w osobnej sekcji linkera, której nadajemy stały adres. A do manipulacji InteHEX służy jak pisałem program SRecord - dba on też o integralność powstałego pliku.

    Mikrokontrolery   04 Lip 2014 06:40 Odpowiedzi: 11    Wyświetleń: 1713
  • Wpływ Makefile na czas linkowania w projekcie STM32 z CodeSourcery q1-161?

    W skrypcie linkera. Kompilator tworzy jakieś sekcje (pewnie coś z obsługi wyjątków, takich sekcji jest kilka), które nie mają wpisów w skrypcie linkera, a więc domyślnie trafią one do RAM (tak jakbyś zrobił SECTIONS ... { ... } > RAM AT >RAM), ale zawartość tej sekcji jest inna niż same zera. Linker wypełnia więc obszar od flasha (adresy 0x8000000)...

    Mikrokontrolery ARM   10 Sty 2010 13:17 Odpowiedzi: 5    Wyświetleń: 1346
  • [STM32] Jak wymusić kolejność danych w sekcji eeprom STM32 przy optymalizacji GCC?

    Zastosować structure, nie licz na powtarzalność działań linkera.

    Mikrokontrolery ARM   28 Lip 2014 10:05 Odpowiedzi: 4    Wyświetleń: 1296
  • [GCC ARM] Jak ustawić stały adres dla zmiennej uint32 w projekcie?

    Można przez sekcję w linkerze, ale można też taki banał: [syntax=c] #define FIXEDLOCVAR (*((unsigned int*) 0x10000000)) [/syntax] Można też w linker skrypcie dopisać sobie co się chce: adres, stałą ... [syntax=c] .debug (NOLOAD): { FIXEDLOCVAR = .; } >SRAM [/syntax] [syntax=c] FIXEDLOCVAR = 0x1000ABCD; [/syntax] I w kodzie użyć tak: [syntax=c]extern...

    Programowanie   25 Cze 2018 10:24 Odpowiedzi: 19    Wyświetleń: 837
  • Jak kompilator C zarządza pamięcią RAM na mikrokontrolerze ARM z DDR3 512 MB?

    Przede wszystkim kompilator nie rezerwuje pamięci na nic. Przydzielaniem pamięci i zamianą symboli na konkretne adresy zajmuje się linker. Każdy linker ma swoje preferencje i skrypt pod konkretny procesor określający gdzie poszczególne sekcje programu (sekcje kodu, danych itd.) trafia - czyli jak są mapowane w fizyczną pamięć urządzenia. Stąd też można...

    Mikrokontrolery   17 Lip 2014 18:27 Odpowiedzi: 5    Wyświetleń: 1113
  • [STM32F7][C Attolic] Przesunięcie alokacji zmiennych w RAM dla całego pliku *.C

    Bezedura.. Keil i może potrafi wykryć takie coś, jednak nie GCC. No faktycznie, po próbach z GCC, przyznaję Ci rację, że nie jest w GCC tak prosto i wygodnie ze zmiennymi absolutnymi, jak mi się wydawało po praktyce w Keil. Ale pewnym prostym wyjściem może być zdefiniowanie buforów w sposób podobny jak tu: [syntax=c]unsigned char __attribute__((section...

    Mikrokontrolery ARM   24 Kwi 2018 07:24 Odpowiedzi: 7    Wyświetleń: 747
  • AVRStudio: Integracja kodu C z przerwaniami w asm dla szybkości

    mozna funkcji przypisac atrybut przynaleznosci do jakiejs sekcji, a nastepnie sobie taka sekcje zdefiniowac w opcjach linkera. http://www.ohse.de/uwe/articles/gcc-attr... ogolnie zas nie ma raczej potrzeby zeby kod umieszczac pod konkretnymi adresami - prosta droga do klopotow. wektory przerwan umieszczone beda tam gdzie trzeba, wiec o...

    Mikrokontrolery AVR   22 Gru 2008 15:29 Odpowiedzi: 5    Wyświetleń: 1356
  • [ARM][FreeRTOS]Make file nie chce zlinkować programu

    Kompilujes z opcją -ffunction-sections (czy jakoś tak), a więc każda funkcja ląduje w sekcji .text.nazwa_funkcji. main() jest więc w sekcji .text.main Powinieneś w skrypcie linkera dodać przy specyfikacji sekcji coś na styl: prog : { *(.text .text.*) *(.rodata .rodata.*) *(.glue_7) *(.glue_7t) } >flash To samo powinieneś zrobić dla sekcji .bss i .data...

    Mikrokontrolery ARM   10 Lis 2009 13:33 Odpowiedzi: 21    Wyświetleń: 3228
  • [C GCC] Jak zachować nieużywane zmienne w pamięci flash procesora ARM?

    Czy można się jakoś przed tym zabezpieczyć ? W skrypcie linkera należy włączać sekcję poprzez zapis:[syntax=c]KEEP (*(.nazwa_sekcji))[/syntax] albo użyć atrybutu 'used':[syntax=c]static const int dummy __attribute__((__used__)) = 1234;[/syntax]

    Programowanie   06 Lis 2017 13:13 Odpowiedzi: 4    Wyświetleń: 675
  • STM32F103RBT6 - Błąd kompilacji: sekcja `.text` nie mieści się w `rom`

    W skrypcie linkera masz zadeklarowaną zbyt małą pamięć. 4\/3!!

    Mikrokontrolery ARM   12 Lis 2011 20:17 Odpowiedzi: 2    Wyświetleń: 2353
  • Jak stworzyć sekcję NOLOAD w linkerze wypełniającą całą pamięć?

    Niestety to nic nie daje. Jedyny trop jaki się nasuwa to w przypadku usunięcia tych sekcji z linkera, można wywnioskować iż chodzi o symbol __exidx_start oraz __exidx_end. lib/gcc/arm-none-eabi/8.3.1/libgcc.a(unw... in function `get_eit_entry': Dodatkowo, po umieszczeniu flag pojawiają się trudności z debugowaniem (znalazłem w internecie kilka...

    Mikrokontrolery   21 Gru 2019 09:13 Odpowiedzi: 23    Wyświetleń: 744
  • [LPC2378] Jak ustawić WinARM do obsługi zewnętrznego RAM w LPC2378?

    no i zgodznie z tym co jest na tej stronce lub w instrukcji do ld (linkera) 1. wymyslic nazwe sekcji, np .ext_mem 2. zadeklarowac ja sobie w skrypcie linkera: MEMORY { ... EXTERNAL (rw) : ORIGIN = (jakis_adres), LENGTH = (jakas_dlugosc) ... } ... SECTIONS { ... .ext_mem : { *(.ext_mem) }...

    Mikrokontrolery ARM   30 Gru 2008 07:40 Odpowiedzi: 7    Wyświetleń: 2504
  • [STM32F4][C] - Zamiana bajtów miejscami "w locie"

    A no dobra, sorry - to jest inny problem. Najszybciej będzie, jak w pliku Makefile wyłączysz generowanie pliku .bin. Rozwiązanie 100% poprawne to dodanie czegoś do skryptu linkera do sekcji w SDRAM, żeby nie pakował ich do obrazu binarnego, ale chwilowo nie jestem 100% pewny co dokładnie [; Chyba (NOLOAD) (do _WSZYSTKICH_ sekcji w pamięci SDRAM), ale...

    Mikrokontrolery ARM   18 Mar 2015 15:53 Odpowiedzi: 59    Wyświetleń: 3381
  • [C] STM32F405 - Problem z obliczaniem adresu pamięci przy użyciu zmiennej

    A dat jakiego jest typu? Bo skąd ten biedny kompilator ma wiedzieć o ile bitów przeskakiwać po tej pamięci? Nie potrzebujesz przypadkiem czegoś w stylu: [syntax=c]*((volatile uint32_t *) adres) = dat;[/syntax] ?? Poza tym prościej chyba sobie zrobić sekcję linkera i tworzyć zmienne normalnie + atrybut umieszczający je w odpowiednim obszarze niż cudować...

    Programowanie   14 Mar 2015 10:11 Odpowiedzi: 13    Wyświetleń: 981
  • stm32F429 Disco + LTDC, LCD-ILI9341 - Jak poprawnie obrócić obraz o 90 stopni?

    Witam w pliku GUIConf.c mam to co pisałem u góry ale żeby to zrobić musisz mieć 1Mega ramu, czyli użyłem Sdramu dorabiając sekcje HeapMemSection w skrypcie linkera. Sekcje zrób podobnie jak np robi się sekcje data w skrypcie linkera, lub na elektrodzie znajdziesz wiele postów jak to zrobić, jak byś jednak nie znalazł napisz to coś się wymyśli.... Pozdrawiam

    Mikrokontrolery ARM   12 Kwi 2014 04:39 Odpowiedzi: 10    Wyświetleń: 3162
  • [gcc] [gcc][stm32] - Jak działają sekcje debugowe w skryptach linkera?

    Patrzę na skrypty linkera udostępnione np. przez Freddiego i widzę tam takie cuś: [syntax=c] .stab 0 (NOLOAD) : { *(.stab) } .stabstr 0 (NOLOAD) : { *(.stabstr) } /* DWARF debug sections. * Symbols in the DWARF debugging sections are relative to the beginning * of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 :...

    Mikrokontrolery   15 Mar 2013 08:17 Odpowiedzi: 1    Wyświetleń: 1080
  • Atmega128 plus xram 32kB, przeniesienie segmentu danych

    Skryptów linkera nie ma potrzeby ruszać, relokację sekcji można załatwić w IDE, przekazując parametry sekcji jako wywołanie linkera No jest to jednak pewna proteza. Mało czytelne a do tego wielu rzeczy tę metodą się nie da zrobić.

    Mikrokontrolery AVR   29 Mar 2020 11:52 Odpowiedzi: 45    Wyświetleń: 1860
  • [STM32F100][OPENOCD+Eclipse] - HardFault po pierwszej instrukcji

    A jeśli chciałbym mój program wgrać do RAM to musiałbym w tym Twoim skrypcie linkera dla sekcji np .text zamiast > rom AT > rom wpisać > ram AT > ram czy wewnątrz {} tez trzeba coś zmieniać? Jeśli wystarczy Ci, że program będzie działał jedynie przez debugger, to wystarczy ta pierwsza opcja. Jeśli byś chciał, żeby program normalnie działał z RAM, to...

    Mikrokontrolery ARM   29 Wrz 2014 19:06 Odpowiedzi: 34    Wyświetleń: 2823
  • ATMEGA64 - AVR Studio 5/6: Błąd deklaracji pamięci RAM 64kB zamiast 4kB

    Zakładka memory jest w sekcji linkera. Ale nie ma nic do rzeczy. Twój program w ogóle z pamięci nie korzysta - przy -Os wszystko jest w rejestrach MCU. Jeśli fusebit M103C masz skasowany (ma wartość 1), to inną możliwością jest po prostu błędny układ elektroniczny. Twój kod działa poprawnie i w symulatorze i w ATMega128. W M64 też musi działać bo w...

    Mikrokontrolery AVR   30 Lis 2012 20:38 Odpowiedzi: 32    Wyświetleń: 4530
  • MPLAB - linker - blad "..can not fit the absolute secti

    A jakiś skrypt linkera masz utworzony? Najlepiej jak stworzysz odpowiednie sekcje, opiszesz je w skrypcie linkera i potem będziesz w programie odwoływał się do tych sekcji, a nie do adresów (org 0xNNN).

    Mikrokontrolery   13 Lip 2007 16:09 Odpowiedzi: 5    Wyświetleń: 2913
  • [AT91SAM7S256][C++/yagarto] error: no memory region specifi.

    A na jakiej podstawie stwierdzasz, że nie działa? Co do linkera, to dodaj tam linijki: . = ALIGN(4); *(.text.*); zaraz za sekcją .text i będzie ok. 4\/3!!

    Mikrokontrolery ARM   26 Mar 2009 07:22 Odpowiedzi: 9    Wyświetleń: 2664
  • [STM32] Jak wgrać skompresowany obraz .jpg do flash przez Atollic?

    Jak się właśnie dowiedziałem w drugim moim temacie, że też tym sposobem można wgrać do flash, ale jak to zrobić aby te dane znajdowały się w drugiej połowie 128kB flash i zaczynały się dokładnie od początku drugiego 64kB?. Umieść je w oddzielnej sekcji, a następnie przekaż w wywołaniu linkera adres początkowy tej sekcji. Alternatywą, jest utworzenie...

    Mikrokontrolery ARM   22 Sty 2019 23:59 Odpowiedzi: 8    Wyświetleń: 600
  • Działanie kompilatora linkera w przypadku deklaracji tablicy

    (at)BlueDraco No i niby jak miałoby to pomóc? Przecież adres tej tablicy i tak nie będzie miał stałej wartości. Wystarczy lekko zmienić projekt albo dodać jakiś plik ze stałymi do kompilacji i całość się sypie. Może umieścić tablicę w swojej sekcji umieszczonej pod koniec pamięci FLASH.

    Mikrokontrolery ARM   30 Lip 2018 14:54 Odpowiedzi: 39    Wyświetleń: 1518
  • Przesunięcie pamięci w skrypcie linkera ATSAM7XC256 - problem z USART ISR

    Definitywnie trzeba to jakoś przewidzieć w skrypcie linkera, podobnie jak wektory we flashu. Jeśli dodatkową sekcję (tą samą co wektory we flashu) umieścisz w sekcji .data, to Twój startup RACZEJ powinien automatycznie zainicjalizować i ten obszar, więc dodatkowy kod nie powinien być potrzebny. Oczywiście konfiguracja (remapowanie wektorów) będzie konieczne...

    Mikrokontrolery ARM   03 Lis 2011 18:47 Odpowiedzi: 4    Wyświetleń: 1194
  • Lokowanie zmiennych w EEPROM-ie pod konkretnym adresem

    Jeżeli w EEPROM deklarujesz wyłącznie tą jedną tablicę, to masz gwarancję, że jej adres początkowy wyniesie 0. Więc problem rozwiązuje się sam. Jeśli masz w EEPROM zadeklarowane także inne zmienne, to wracamy do początku - nie ma gwarancji. W takiej sytuacji są co najmniej dwa rozwiązania: - jak już poradzono, wszystkie zmienne umieścić w strukturze...

    Mikrokontrolery AVR   21 Wrz 2022 17:25 Odpowiedzi: 19    Wyświetleń: 813
  • Błąd minGW: przypisanie *str = char powoduje błąd zapisu pamięci

    Używając stringów w ten sposób, czyli "12345", najczęściej umieszczane są one przez linker w sekcji, która mapowana jest do strefy pamięci oznaczonej jako 'tylko do odczytu'. Modyfikacja takiej pamięci zostanie zablokowana na poziomie procesora, który sprawdza prawa zapisu do pamięci zgodnie z informacjami zbudowanymi przez system podczas ładowania...

    Programowanie   08 Mar 2011 15:45 Odpowiedzi: 4    Wyświetleń: 995
  • ATMEGA32 - AVRStudio 6.0 - lokalizacja i edycja kodu startowego oraz zegar

    Domyślam się że jest to kod startowy - stos, wektory przerwań. Ale nie potrafię go zlokalizować. Nie wiem jak się nazywa. Jest to kod domyślnie tworzony przez kompilator w sekcjach startowych: .init0-9, .vectors, .fini9-0 Jego zawartość możesz podejrzeć w plikach .lss oraz .map. Ich edycja niczego jednak nie zmieni. Chcąc coś umieścić w tych sekcjach...

    Mikrokontrolery AVR   06 Wrz 2013 18:24 Odpowiedzi: 7    Wyświetleń: 1833
  • STM32F - Skrypt linkera: Jak poprawnie zdefiniować sekcje .text i .data?

    Witam, poczytałem sporo informacji nt. skryptów linkera, ale niestety jednej rzeczy nie mogę zrozumieć. Mam przykładowy zapis (sam napisałem): [syntax=c] .text : { . = ALIGN(4); __text_start__ = .; /* zmienna zawierająca początek sekcji text */ *(.text) /* kod wykonywalny aplikacji */ *(.text.*) *(.rodata) /* dane tylko do odczytu przechowujemy we flashu...

    Mikrokontrolery ARM   12 Kwi 2013 20:39 Odpowiedzi: 1    Wyświetleń: 1203
  • [GCC] Linker usuwa zmienne z atrybutem "used"

    1. Umieścić zmienne w konkretnej sekcji, czyli dodanie sekcji w skrypcie linkera, do tego wewnątrz umieścić ją wewnątrz KEEP, czyli np. KEEP(*(.my_section)) + __attribute__((section(".my_section"))). Jeśli zmienna jest użyta, jest prawidłowo dodawana do sekcji na zadanym adresie. Powinno być: [syntax=c]__attribute__((used, section(".my_section")))[/syntax]

    Mikrokontrolery ARM   03 Lip 2018 20:13 Odpowiedzi: 29    Wyświetleń: 1362
  • [sam7xc] [sam7xc][c/winARM] - Jak umieścić obsługę przerwań w RAM dla szybszego działania?

    __attribute__ ((section("jakas-sekcja"))) + dodanie tej sekcji do skryptu linkera + modyfikacja startupa aby inicjalizował też te obszary P.S. WinARM? Przecież ten pakiet ma jakieś 300 lat... 4\/3!!

    Mikrokontrolery ARM   15 Paź 2012 22:41 Odpowiedzi: 3    Wyświetleń: 888
  • xmega 16d4 - Jak poprawnie podłączyć LCD przez PCF8574T w C?

    w zakładce "linker settings" dodać ścieżkę w sekcji "link librarys" Bo to mowa o bibliotekach typu libm.a (potrzebne do zoptymalizowanego math.h). Dodaj jako załącznik plik główny oraz te "biblioteki" to zobaczę co tam może być nie tak.

    Mikrokontrolery AVR   02 Lut 2016 14:33 Odpowiedzi: 20    Wyświetleń: 2367
  • Jak zarezerwować fragment FLASH na stałe w GCC? Umieszczenie danych pod stałym adresem

    W gcc nie, bo to nie rola kompilatora. Musisz stworzyć własną sekcję w której umieścisz dane, a następnie przekazać info do linkera gdzie ta sekcja ma się znaleźć.

    Mikrokontrolery ARM   22 Lip 2010 20:36 Odpowiedzi: 2    Wyświetleń: 1121
  • LPC2129: Problem z funkcją printf oraz sprintf - linkowanie

    Ten skrypt linkera jest błędny... masz zdefiniowaną pamięć o nazwach ROM i RAM, a sekcje pakujesz do CODE i DATA. No to chyba coś tu nie gra? Poza tym masz kompilator i narzędzia sprzed 3 lat, ale to pewnie wiesz... 4\/3!!

    Mikrokontrolery ARM   16 Lis 2009 21:37 Odpowiedzi: 9    Wyświetleń: 2211
  • ATMega128: Jak zmieścić rozbudowany system operacyjny w pamięci bootloadera?

    Możesz albo: 1. Umieścić w częsci bootloaderowej sekcję .text (łacznie z wektorami) a w cześci aplikacyjnej jakąś swoją sekcję. W tym przypadku musisz kosekwentnie wszystkim funkcjom przeznaczonym do części aplikacyjnej nadać atrybut "section costam" i przy linkowaniu podać opcje -Ttext=<boot> --secion-start costam=<app>. Wadą jest, że funkcje...

    Mikrokontrolery   25 Lip 2007 20:55 Odpowiedzi: 4    Wyświetleń: 1125
  • Atmel Studio - Błędy kompilacji pustego projektu, oczekiwany znak przed nawiasem

    Z sekcji Linker/Libraries usuń libobjc. Pozostałe też niekoniecznie są potrzebne. A poza tym ja bym póki co używał Atmel Studio 6.2 - 7.0 to IMHO ciągle beta i jeśli nie siedzisz w temacie za bardzo to ani nic nie wnosi, a potencjalnie jak widać generuje problemy.

    Mikrokontrolery Początkujący   21 Lis 2015 09:47 Odpowiedzi: 11    Wyświetleń: 1707
  • Jak umieścić dane w sekcji .eeprom pod konkretnymi adresami

    Jeśli zadeklarujesz, że tablica będzie się znajdować w sekcji o nazwie sekcja_o_skomplikowanej_nazwie_1 i w skrypcie linkera umieścisz ją jako pierwszą - przed tą która jest tam "normalnie" to zawsze będzie ona na początku. Jeśli tych zmiennych masz więcej, to prościej będzie Ci umieścić je w wielkiej strukturze, a całą strukturę w owej dziwnie nazwanej...

    Mikrokontrolery AVR   11 Lis 2009 11:08 Odpowiedzi: 1    Wyświetleń: 1032
  • [STM32F405] - Problem z użyciem zmiennej w wyliczaniu fizycznego adresu.

    Problem dodać sekcje w linkerze, albo zrobić jak ST albo jak BB.

    Mikrokontrolery ARM   11 Lut 2015 18:36 Odpowiedzi: 32    Wyświetleń: 2223
  • Wszystko o ARM (LPCxxxx) i programowaniu w asm i C.

    Po pierwsze upewnij się, że w tych adresach nie siedzi firmowy bootloader, bo mnie się właśnie coś wydaje, że znajduje się on powyżej 500kB. Co do skryptu linkera, to jak mniemam poniżej masz jeszcze stworzoną sekcję o nazwie .eeprom_mem podobną do .data, .text itp. ? Co do kolejności - tak jak proponujesz sam - taką samą uzyskasz tworząc gigantyczną...

    Mikrokontrolery ARM   28 Lis 2009 17:35 Odpowiedzi: 141    Wyświetleń: 17203
  • [stm32] Jak wysyłać i odbierać dane z zewnętrznego RAMu przez FSMC w STM32?

    Chciałem się jeszcze jak utworzyć tą sekcję w linkerze, bo to jeszcze mnie przerasta ?

    Mikrokontrolery ARM   13 Wrz 2011 08:50 Odpowiedzi: 26    Wyświetleń: 3632
  • Zapisywanie danych testowych w arbitralnie ustalonym miejscu FLASH w STM32F030 przez GCC

    Może raczej odpowiedz, z jakiego to powodu chcesz dane umieścić w pliku .h ,a nie .c? Ja tego zupełnie nie rozumiem. Jedyny powód - to łamanie na siłę konwencji przyzwoitego pisania programów (kompilacja samego pliku nagłówkowego nie powinna powodować utworzenia ani bajta kodu ani danych). Wkompilować dane pod określony adres możesz tylko drugim sposobem...

    Mikrokontrolery ARM   11 Mar 2021 23:36 Odpowiedzi: 6    Wyświetleń: 621
  • [AVR][AVR-GCC] Tablica pod wskazanym adr. w pamięci programu

    PROGMEM tu nic nie da, bo dla linkera ten atrybut już nie istnieje, dla niego jest adres z odpowiednim prefixem określającym lokalizację. Po określeniu sekcji należy jej adres początkowy przekazać poprzez parametr -Wl,--section-start=, lub po prostu zdefiniować nową sekcję w AVR Studio. Napisz co się pluje, że adres wykracza poza SRAM i jak dokładnie...

    Mikrokontrolery AVR   03 Mar 2011 16:14 Odpowiedzi: 18    Wyświetleń: 3967
  • PIC32 - Jak umiescić dane pod wskazanym adresem w pamieci Flash

    ale nie do konca chce działać Tzn. co? Działa do połowy? Listę obsługiwanych atrybutów masz w dokumentacji kompilatora. Ale raczej proponuję utworzyć sekcję w skrypcie linkera i w niej umieścić Twoją zmienną. Albert

    Mikrokontrolery PIC   31 Lip 2012 12:17 Odpowiedzi: 5    Wyświetleń: 1549
  • AVR - Obsługa pamięci PROGMEM powyżej 64KB w ATmega1284p, wersja gcc?

    __flash adresuje w obrębie pierwszych 64 kB, __flash1 w obrębie kolejnych 64 kB itd. Operator (at) pobiera prawidłowy 24-bitowy adres, stąd nie ma już potrzeby korzystania z makra GET_FAR_ADDRESS. Położenie danych w pamięci można zmieniać ręcznie przesuwając sekcje, lub przez zmianę skryptu linkera. Należy jednak pamiętać, że __flash "zawija" się na...

    Mikrokontrolery AVR   18 Gru 2013 08:23 Odpowiedzi: 5    Wyświetleń: 2112
  • AVR Studio 4.13: Jak ustawić adres sekcji bootloadera?

    ... ale gdy dodawałem to samo linijkę --section-start=.bootloader=0x1F000 w AVR Studio Project -> Custom Options i tam do All dodawałem to linijkę... Wszystko ładnie i pięknie , tylko że ... to linker ma wiedzieć gdzie "wepchać" daną sekcję. W AVRStudio , masz conajmniej 2 możliwości: 1)Project -> Custom Options i tam do [Linker Options] -Wl,-section-start=.bootloader=0x1F000.....

    Mikrokontrolery   30 Sty 2007 15:39 Odpowiedzi: 1    Wyświetleń: 2321
  • Błąd kompilacji make: *** [pubny.elf] Error 1 po dodaniu nowych bibliotek

    Nie miales wykasowywac wszystkich -Wl tylko drugi a jego opcje dodac do pierwszego wywolania.To sa opcje ktore przekazuje sie do linkera a w chwili obecnej nie przekazujesz do linkera zadnych opcji.Bledy zwiazane z eepromem moga wynikac z tego ze go nie uzwyasz i w elfie nie ma sekcji .eeprom ktora mozna by z niego wyciagnac.Generalnie czytaj uwazniej...

    Mikrokontrolery   08 Lis 2007 10:12 Odpowiedzi: 8    Wyświetleń: 4613
  • Jak dołączyć biblioteki standardowe w GCC na Eclipse z WinARM?

    Jak używałeś pierwszej wersji, do kodu wykonywalnego nie były dołączne biblioteki standardowe. W drugiej wersji są. Jakaś część tego kodu umieszczona jest w sekcji .init . Jak różne sekcje kodu umieścić w pamięci procesora mówi linkerowi jego skrypt. W Twoim wypadku LCD_nokia_olimex.cmd. W nim należy dodać w sekcji SECTIONS analogicznie do wpisów już...

    Mikrokontrolery ARM   30 Gru 2008 05:49 Odpowiedzi: 18    Wyświetleń: 4435
  • Konfiguracja przerwania zewnętrznego na pinie PA7 w AVR32DA28 - błąd w ustawieniach?

    Tematu nie zamykam, proszę o wypowiedź co do definicji #define XCALL Kompilując na ten chip chyba nie masz zdefiniowanego symbolu __AVR_MEGA__, więc jest tam wstawiane rjmp, czyli tak jak być powinno. Rzuć jeszcze dla pewności okiem na wygenerowany plik lss, czy wszystko się w tabeli wektorów zgadza. Dodano po 12 Tylko dwie sprawy. RJMP może adresować...

    Mikrokontrolery AVR   22 Paź 2020 11:22 Odpowiedzi: 26    Wyświetleń: 1518
  • Jak stworzyć dwie sekcje pod jednym adresem w skrypcie linker?

    Witam! Potrzebuję mieć dwie sekcje pod tym samym adresem. Kombinuję już ze skryptami kilka godzin. Może ktoś kolegów ma pomysł.

    Mikrokontrolery   03 Maj 2019 14:02 Odpowiedzi: 1    Wyświetleń: 267
  • Jak umieścić tablice struktur w SDRAM na Xplaind z ATxmega128A1?

    Albo zmienić skrypty linkera, tak, aby poinformować linker, że masz więcej RAM, albo stworzyć nową sekcję pokrywającą SDRAM i w niej umieszczać struktury: int foo __attribute__ ((section (".sekcja"))); Przy czym adres sekcji należy zdefiniować albo w skrypcie linkera, albo w opcjach projektu w Atmel Studio.

    Mikrokontrolery   02 Cze 2014 14:11 Odpowiedzi: 22    Wyświetleń: 1422
  • Optymalizacja pamięci RAM przy wyświetlaniu bitmap na ST7565 i ATmega328P

    Ale tak, czy inaczej, const się przyda, by kompilator zgłosił błąd przy próbie zapisu do flasha. W większych prockach dane statyczne oznaczone const są kompilowane do innej sekcji (chyba "rodata") i potem sprawą skryptów linkera jest odpowiednie umieszczenie takich sekcji.

    Mikrokontrolery   15 Paź 2013 21:02 Odpowiedzi: 8    Wyświetleń: 1773
  • [Linker GCC] Jak ustawić kolejność funkcji w sekcji w GCC dla ARM?

    Problem dotyczy języka C, kompilatora/linkera GCC i procesora ARM. Stworzyłem sekcję i umieściłem w niej kilka funkcji. W jaki sposób spowodować aby jedna z nich była umieszczana przez linker zawsze na początku tego obszaru ?

    Programowanie   26 Paź 2017 10:07 Odpowiedzi: 1    Wyświetleń: 768
  • [GCC][ld script] - CRC na końcu wsadu, modyfikacja skryptu linkera

    Moje rozwiązanie polega na dodaniu do skryptu linkera nowej sekcji (.text.crc) za sekcją .data Wartość __text_end ma znaczenie! Upewnij się więc, że gdy w Twoim programie są zmienne w .data, to wartość ta jest prawidłowa.

    Mikrokontrolery   24 Lis 2015 13:25 Odpowiedzi: 7    Wyświetleń: 1218
  • [LPC1754]Automatyczna inicjalizacja zmiennych w drugim obszarze RAM'u.

    Zerknij co kiedyś napisałem: 1. Wszystko co jest związane z tym drugim obszarem RAMu przenieś na sam koniec skryptu linkera (za stackarea). Do tego napisałem też kiedyś: bazowanie na końcu sekcji .text jako adresie inicjalizacji .data nie jest specjalnie wygodne, skoro jest fantastyczna funkcja LOADADDR() To jest źródło Twojego problemu. Przeniesienie...

    Mikrokontrolery ARM   16 Gru 2011 20:13 Odpowiedzi: 29    Wyświetleń: 2254
  • Eclipse AVR - dostęp do sekcji Application Table we FLASH dla procków Xmega

    Witam, W książce Tomasza Francuza "AVR Układy Peryferyjne" autor opisuje jak sobie poradzić z umieszczeniem zmiennych w pamięci FLASH w sekcji Application Table (s.562). Jest to podane na przykładzie Atmel Studio. Czy wie ktoś jak to samo zrobić w Eclipse dla AVR? Nie wiem gdzie podać adres tej sekcji w linkerze, gdzie ta ma się fizycznie znajdować?...

    Mikrokontrolery AVR   23 Maj 2021 13:31 Odpowiedzi: 2    Wyświetleń: 501
  • bleeding-edge-toolchain - kolejny toolchain dla ARM

    Freddie znów feler. BET vs Linaro. 11kB ramu vs 3kB ramu. W mojej lekko zmodyfikowanej wersji skryptu linkera BET czepia się sekcji exidx

    Mikrokontrolery ARM   13 Lut 2021 16:26 Odpowiedzi: 222    Wyświetleń: 38973
  • [LPC1754][C++] Adres RAM. Inny sposób umieszczania obiektów a pamięci.

    Wiadomo że LPC1754 ma 32kB RAM'u. Jednak jest ona nieliniowa (16K pod 0x2000000 i 16K pod 0x2007C000). Czy istnieje inny sposób umieszczenia np: obiektu klasy czy innych zmiennych w tej "drugiej" pamięci niż tak jak poniżej? [syntax=cpp] class cl_file File_ __attribute__ ((section(".ramII"))); [/syntax] Oczywiście w pliku linkera sekcja ramII jest odpowiednio...

    Mikrokontrolery ARM   27 Lis 2011 12:53 Odpowiedzi: 5    Wyświetleń: 1986
  • [LPC1768][FatFS R0.10b]] - f_readdir ląduje w HardFault_Handler

    Gdzie trafi zmienna lokalna w main zainicjowana i nie niezainicjowana ? Zależy co rozumiesz przez "lokalna". Generalnie do celu tej dyskusji proponuję się ograniczyć do podziału na "statyczne" (m.in. globalne) i "automatyczne" (czyli zmienne "w" funkcjach, oczywiście bez "static"). Te pierwsze lądują w .data lub .bss (zależnie od tego czy są zainicjalizowane...

    Mikrokontrolery   06 Cze 2014 19:47 Odpowiedzi: 15    Wyświetleń: 2172
  • Błędy przy linkowaniu CStartup.s oraz konfiguracja Segger J-link+OpenOCD

    1. WinARM to staroć nierozwijany od lat - użyj CodeSourcery. 2. Twój pierwszy problem wynika z tego, że odpowiednie definicje początku/końca różnych sekcji nie są obecne/nazywają się inaczej w skrypcie linkera. 3. Do J-Linka instalujesz inne sterowniki (libusb-win32) i podłączasz normalnie do kompa, uruchamiając normalnie OpenOCD - nie ma tu żadnych...

    Mikrokontrolery ARM   30 Lis 2011 00:54 Odpowiedzi: 10    Wyświetleń: 2562
  • [stm32][C] - Przesunięcie tablicy wektorów przerwań

    Cześć, Mam problem ze zmianą położenia tablicy wektorów przerwań na STM32F417. Potrzebuję dostępu do pierwszych 4 sektorów pamięci, więc rdzeń musi od początku szukać wektorów pod innym adresem. Odpalenie programu normalnie, a potem ręczne przesunięcie wektorów nie wchodzi w grę. Potrzebują początkowych sektorów do przechowywania nieulotnych danych...

    Mikrokontrolery ARM   10 Sie 2015 10:03 Odpowiedzi: 6    Wyświetleń: 1839
  • Czy struktura `FlagProtocol` w C jest automatycznie inicjalizowana do 0?

    ad 1. A wg ciebie składnia, którą przedstawił może występować w jakim innym języku? ad 2. Jeśli coś nie spełnia standardu języka to nie jest kompilatorem tego języka. Każde odstępstwa są udokumentowane. Kompilator, który w tak podstawowej rzeczy wykazywałby odstępstwa nie byłby w stanie stworzyć funkcjonalnego kodu. ad 3. A konkretnie w jakich sytuacjach?...

    Mikrokontrolery AVR   12 Gru 2010 18:08 Odpowiedzi: 16    Wyświetleń: 3019
  • STM32 - Kod nie startuje po ponownym podłączeniu zasilania, co robić?

    Używasz jakichś elementów które z tej sekcji korzystają, a tak być nie powinno - to po pierwsze. Po drugie zaś możesz spróbować dodać po prostu sekcję .jcr do którejś z sekcji w skrypcie linkera - np do .text (jeśli może być ona stała), lub do .data (jeśli musi być faktycznie zmienna). Jeśli koniecznie chcesz używać tej wtyczki do Eclipse, to polecam...

    Mikrokontrolery ARM   10 Gru 2009 10:19 Odpowiedzi: 14    Wyświetleń: 3684
  • Jak ustawić adres 0x10000 dla bootloadera w XMEGA128/Astudio 6?

    Adresy sekcji ustala się w opcjach linkera. Generalnie temat jest dosyć długi w kontekście bootloadera - w pierwszej książce z mojego linku znajdziesz darmowe przykłady do ściągnięcia z ftp Helionu, gdzie są sekcje ustawione - po wczytaniu do Atmel Studio lub AVR Studio zobacz jak wyglądają opcje linkera. Pod XMEGA jest też kilka darmowych, fajnych...

    Mikrokontrolery AVR   12 Gru 2013 20:34 Odpowiedzi: 6    Wyświetleń: 1554
  • [C] - Jak przypisać zmiennej określony adres fizyczny?

    Nie możesz zmienić "&zmienna", bo to jest r-wartość. W gcc możesz użyć atrybutu section, który powie kompilatorowi do jakiej sekcji wrzucić zmienną: https://gcc.gnu.org/onlinedocs/gcc/Varia... [syntax=c] #define BKP_SRAM __attribute__ ((section ((".bkpsram")))) uint32_t zmienna BKP_SRAM; [/syntax] Linkerowi należy podać argument "--section-start=.bkpsram=0x40024000",.....

    Programowanie   09 Sty 2015 09:48 Odpowiedzi: 10    Wyświetleń: 1593
  • ATmega 8A - Jak odczytać plik .hex wyciągnięty z kontrolera

    Witam! Mam dość praktyczny problem - mam zaprogramowany kontroler i chciałbym odzyskać z niego kod, tak bym mógł nanieść na niego kilka poprawek Pierwotny plik projektu, jak i kod w c przepadły wraz z formatem komputera, jedyne co zostało to plik .hex odzyskany z kontrolera Czy istnieje jakaś stosunkowo bezbolesna metoda żeby ten plik odczytać? Na...

    Mikrokontrolery AVR   28 Cze 2015 12:00 Odpowiedzi: 5    Wyświetleń: 5100
  • [STM32F4] Udostępnienie biblioteki do bit-bandingu dla peryferiów ADC, GPIO, I2C

    No więc faktycznie nie ma dostępu bit-band do obszaru 0x10000000. Szkoda, że kompilator nie ostrzega przed próbą takiego dostępu. Problem z automatycznym umieszczaniem zmiennych w dodanej sekcji (0x22000000) można zrealizować dzięki funkcji linkera ImageLength(<nazwa sekcji>), której zwróconą wartość można wykorzystać przy deklarowaniu adresu...

    Mikrokontrolery ARM   13 Maj 2013 13:45 Odpowiedzi: 27    Wyświetleń: 5257
  • Jak skonfigurować IAR dla stm32H743VI z STLinkv2 i IAR kickstart?

    Czemu uważasz, że zadziała to tylko dla kodu? Jeśli w skrypcie linkera zaznaczysz że sekcja jest kopiowana z flasha to powinien poprawić podczas linkowania pointery na dane, by nie wskazywały na ROM tylko na odpowiednie przestrzenie w sekcji. Tak samo jak dzieje się z sekcją .data, tylko że zrobisz sobie własną sekcję. Nie do końca rozumie o co chodzi...

    Mikrokontrolery ARM   08 Sie 2019 08:20 Odpowiedzi: 52    Wyświetleń: 2673
  • STM32 - Plik linkera od ST oraz ustawiania stosu i sterty

    Skrypt linkera z Cube'a "działa" tak, że na początku pamięci ram ląduje sekcja data (zmienne inicjalizowane przy starcie programu - lokalne statyczne i globalne), potem jest bss (zmienne zerowane przy starcie programu - nie inicjalizowane statyczne i globalne). Następny kawałek to _user_heap_stack - czyli sterta i stos "w jednym". Rozmiar data i bss...

    Mikrokontrolery ARM   05 Lut 2016 10:30 Odpowiedzi: 12    Wyświetleń: 2325
  • AVR-GCC: Czy generuje pętlę nieskończoną po zakończeniu funkcji main()?

    Najwyrazniej avr-gcc ma w nosie standardy. Co do drugiego to oczywiscie tak by bylo najlepiej ale to jeszcze jeden dowod na to ze warto sobie przejrzec co tam nasz kochany kompilator wypluwa a do tego potrzebna jest wiedza z asemblera. W sumie zaproponowana przeze mnie dekompilacja pliku obiektowego main.o nie ma wiekszego sensu bo i tak linker moze...

    Mikrokontrolery   23 Kwi 2007 13:07 Odpowiedzi: 18    Wyświetleń: 2142
  • [AVR] [AVR][C] - Jak efektywnie tworzyć rozbudowane menu wielopoziomowe?

    Sprawę można obejść prościej - wystarczy zrobić coś na kształt sekcji inicjalizacyjnych z newliba - po prostu w każdym module masz stałą umieszczoną w odpowiedniej sekcji i linker sobie już to wmontuje gdzie należy. Funkcja od menu po prostu zakłada że opis menu znajduje się w danej sekcji. Prostsze niż to co proponujesz [; 4\/3!!

    Mikrokontrolery AVR   08 Paź 2012 11:50 Odpowiedzi: 16    Wyświetleń: 20328
  • Przykładowe projekty ARM dla NXP LPC2103 i ST STM32F103RB w Eclipse

    Rozumiem, że problem leży w rozmiarach poszczególnych sekcji pamięci ustawionych w skrypcie linkera? Przejrzyj ten plik zaczynając od góry - tam naprawdę jest WSZYSTKO napisane. 4\/3!!

    Mikrokontrolery ARM   21 Maj 2013 09:25 Odpowiedzi: 341    Wyświetleń: 101253
  • Zmienna const w STM32 - czy zajmuje miejsce w RAM czy tylko w FLASH?

    Czyli nie ma żadnej przeszkody, żeby w tablicach globalnych oznaczonych jako const przechowywać duże zawartości danych ? chciałbym w takich tablicach trzymać rysunki do wyświetlacza LCD. Skoro zostaną one umieszczone w flashu to nic nie stoi na przeszkodzie, żeby zajmowały nawet z 200 kB? (o ile nie przekroczę wolnej pamięci flash oraz pewnie zadeklarowanej...

    Mikrokontrolery ARM   16 Mar 2019 16:05 Odpowiedzi: 16    Wyświetleń: 960
  • [STM32][CodeSourcery]Deklaracja struktury w pamięci flash.

    Zamiast tworzyć sekcję poprzez makefile, stwórz ją normalnie w skrypcie linkera tak samo jak jest stworzona sekcja .text. Ewentualnie (jeśli koniecznie potrzebujesz mieć ją w konkretnym miejscu), to dodaj nowy region pamięci (tam gdzie zadeklarowany jest ram i rom), a swoją sekcję umieść właśnie tam. Problemem może też być to, że kompilator (a w zasadzie...

    Mikrokontrolery ARM   13 Lut 2010 15:11 Odpowiedzi: 21    Wyświetleń: 7694
  • [LPC2148] Jak ustawić CRP w LPC2148 bez nadpisywania kodu w GCC?

    Witam wszystkich. Temat dotyczy CRP w mikrokontrolerach LPC21XX gdzie według producenta aby uruchomić CRP należy zapisać 0x87654321 pod adres 0x1fc we flashu. Wszystko fajnie tylko jakoś nie bardzo mam pomysł jak to uczynić wewnątrz programu w taki posob, aby kompilator "wiedział" o istnieniu "czegoś" pod tym adresem i nie zapisywał tak innych instrukcji....

    Mikrokontrolery ARM   26 Mar 2010 22:32 Odpowiedzi: 10    Wyświetleń: 1496
  • AVR - jak radzić sobie z fusebitami i ograniczeniami 8-bit?

    cont zmienia linkage zmiennej globalnej z external na internal. Klasycznie jest to RO, więc leci do sekcji .ro, która jest w flash (albo inaczej, pozostaje w flashu), chyba że stworzysz osobną sekcję i ją przeniesiesz w linker script lub zmusisz by cała sekcja RO była w RAM.

    Projektowanie i Tworzenie Po godzinach   30 Sty 2020 18:45 Odpowiedzi: 368    Wyświetleń: 17241
  • Jakie pliki ELF, HEX i MAP użyć do programowania SAM7S64 z OOCD i GCC?

    Łopatologicznie: W pliku .map masz swoje źródło programu + skrypt linkera. Plik .map "mówi" gdzie dane i program,( funkcje )są umieszczone w pamięci. Czyli jeśli w skrypcie linkera masz że program zaczyna się od adresu 0x10000 i ma długość 30 kilo to tam będzie umieszczony kod programu, natomiast zmienne będą umieszczone w sekcji Data i w skrypcie linkera...

    Mikrokontrolery ARM   25 Lut 2009 04:31 Odpowiedzi: 4    Wyświetleń: 5856
  • STM32H753 - brak transmisji UART z DMA1, konfiguracja DMAMUX

    1. Musisz zmienić plik linkera dodając sekcje analogicznie do .bss z odpowiednimi symbolami aby móc zidentyfikować gdzie one są 2. od "label"a CopyDataInit do LoopFillZeroes masz wypełnianie .data - analogicznie zrób dla innych swoich segmentów. Jeśli tych zmiennych nie masz setek, to prościej niż przerabiać startup i skrypt linkera będzie Ci je zainicjalizować...

    Mikrokontrolery ARM   08 Sty 2019 23:32 Odpowiedzi: 23    Wyświetleń: 1206
  • [STR7][C][RIDE7] Bootloader, Undefined instruction exception

    Long calls potrzebne jest tylko dla funkcji z tym atrybutem. Swoją drogą twój skrypt linkera ma już gotową sekcję na ten cel - *(.RAMtext) Problemem może być wyrównanie - spróbuj dodać PRZED KAŻDĄ sekcją: . = ALIGN(4); 4\/3!!

    Mikrokontrolery ARM   15 Wrz 2009 14:05 Odpowiedzi: 7    Wyświetleń: 2301
  • Cortex-M3: Jak używać bit bandingu w pamięci SRAM i rejestrach peryferyjnych?

    Zwróć uwagę, że ŧą wartość, o której piszesz dostajesz dopiero po linkowaniu ;-( A co do deklaracji to nie chodziło mi o deklarację jako rejestr tylko jak rejestr ;-) A co do rozwiązania problemu to najprościej wywalić kawałek ramu w skrypcie linkera, dodać sekcję bitową i w niej deklarować zmienne logiczne. Albert

    Mikrokontrolery ARM   14 Maj 2013 12:45 Odpowiedzi: 30    Wyświetleń: 6390
  • Konfiguracja AT91sam7x256 + jtag lock pick pod Windows 7 64b

    Skrypt linkera jest lewy [; Rozwiązania widzę 2: 1. "na szybko i nieoptymalnie" - w Makefile wyłączysz opcję usuwania nieużywanych funkcji i danych (REMOVE_UNUSED = 0) 2. "lepiej" - w swoim skrypcie linkera zamieniasz WSZYSTKIE sekcje z "*(.nazwa)" na "*(.nazwa*)" Jest jeszcze trzecia opcja, tzn zastosowanie mojego zestawu plików (skryptu linkera, wektorów...

    Mikrokontrolery ARM   10 Gru 2011 18:51 Odpowiedzi: 28    Wyświetleń: 5308
  • [STM32F0] [STM32F0][GCC] - Hard fault przy HAL_Init() i HAL_SYSTICK_Config()

    Skrypt linkera definiuje sekcję .isr_vector. Jej zawartość jest zdefiniowana w asemblerowym pliku startupu. Jest to zrobione w typowy sposób. Z resztą hard fault następuje przed włączeniem systicka, więc nie widzę związku tabelą wektorów przerwań. Na to, że jest ona w porządku wskazuje też fakt, że wykonywana jest funkcja void HardFault_Handler(void),...

    Mikrokontrolery ARM   09 Wrz 2016 19:46 Odpowiedzi: 14    Wyświetleń: 1668
  • Jak odczytać dane z pamięci Flash powyżej 64kB w C/C++?

    Jesli korzystasz z AVR Studio to w opcjach projektu mozesz dodawac swoje sekcje podajac ich adres startu i ew. dlugosc. Oczywiscie musisz je nazwac inaczej niz PROGMEM, bo ta nazwa jest juz zajeta. Jesli nie to przekazujesz parametry dla linkera przy wywolaniu gcc, tu jest howto: http://www.nongnu.org/avr-libc/user-manu...

    Mikrokontrolery AVR   19 Mar 2010 12:08 Odpowiedzi: 21    Wyświetleń: 2773
  • STM32H750 (743) i skomplikowane konfigurowanie zegarów.

    Co do umieszczania kodu w odpowiednich przestrzeniach to trzeba zmodyfikować skrypt linkera oraz użyć atrybutów do danych i kodu aby kompilator odpowiednio stworzył obiekty. Ale to nie jest wystarczające. Trzeba dopisać trochę kodu w startupie jeżeli mają być zainicjalizowane (zerowanie też uznamy dla uproszczenia za inicjalizację aby nie tworzyć dodatkowych...

    Mikrokontrolery ARM   01 Sty 2020 22:23 Odpowiedzi: 15    Wyświetleń: 1149
  • Bootloader dla PIC24HJ128GP506 - przechowywanie zmiennych w pamięci programu

    Witam wszystkich. Chciałbym napisac bootloader dla uC PIC24J128GP506, w związku z tym mam parę pytań. http://obrazki.elektroda.net/3_128713068... Stworzyłem sekcje bootloadera w skrypcie linkera. Czy możliwe jest przechowywanie zmiennej w pamięci programu ( wersja Firmware) ? Czy muszę stworzyć osobną sekcję, w której będę przechowywał tą zmienną...

    Mikrokontrolery PIC   21 Paź 2010 10:47 Odpowiedzi: 3    Wyświetleń: 1014
  • [ARM] Jak zrozumieć plik linkera dla STM32F103VBT6? Szukam prostych wyjaśnień i przykładów

    A w kontekście licencji to na stronie jest napisane: Simplified BSD Licence, GNU GPL v2, GNU GPL v3, GNU LGPL v2.1, GNU LGPL v3, MIT / X / Expat Licence Czyli mimo iż może nie czyste BSD to i tak otwarte i darmowe. Ale zrozum, że żaden "packager" nie może zmienić licencji komponentów. Licencja pakietu CodeSourcery jest identyczna jak dowolnego innego...

    Mikrokontrolery ARM   13 Sty 2014 08:27 Odpowiedzi: 23    Wyświetleń: 6564
  • Jak umieścić skompilowany plik pod konkretnym adr. w STM32 ?

    Piszę aplikację na STM32F103 i muszę umieścić niektóre skompiowane pliki pod konkretnym adresem we Flash (a właściwie od konkretnego adresu). Uzywam środowiska Ride7 i kompilatora GCC Wiem, że można to zrobić w pliku skryptu linkera ale za nic nie udaje mi się tego wykonać. Do tej pory nie miałem takiego problemu z innymi kompilatorami. Szukałem jak...

    Mikrokontrolery ARM   27 Paź 2009 12:10 Odpowiedzi: 3    Wyświetleń: 1696