Witam, jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system - Freertos. Kompilator codesourcery.
- posted
13 years ago
Witam, jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system - Freertos. Kompilator codesourcery.
W dniu 2011-03-30 18:26, Mario pisze:
arm-none-eabi-size
pzdr mk
W dniu 2011-03-30 18:33, mk pisze:
Dzięki. Znalazłem w makefile, że te polecenie ( w postaci ELFSIZE) jest wywoływane w:
sizeafter: @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \ 2>/dev/null; echo; fi
dając na koniec kompilacji:
Size after: text data bss dec hex filename 30732 308 32074 63114 f68a MD1768_Main.elf
Z tego co się zorientowałem segmenty data i bss stanowią obszar ram (data zainicjowane a bss niezainicjowane zmienne)
No i pojawia mi się problem bo gdy dodam odrobinkę zmiennych to wywala mi się kompilacja z powodu nie mieszczenia się sekcji bss w regionie 'ram'. Zdziwiło mnie to trochę bo lpc1768 ma 64kb ram a wygląda, że nie można użyć więcej niż 32k.
W pliku LPC17xx_Linker_Script.ld znalazłem wpis: MEMORY { rom (rx) : ORIGIN = 0x00000000, LENGTH = 512K ram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K }
To jest plik wzięty z przykładem FREERTOSa z ich strony. No i albo dali plik jakiegoś z innego cortexa mającego 32k ram albo ja czegos nie wiem i drugie 32k idzie na coś innego :( Oczywiście zaraz zmienię ten wpis ale nie jestem, pewien jak ustawić stos. w oryginale jest _StackTop = (0x10000000 + 0x8000) - 16; chyba zmienię 0x8000 na 0xf000
W dniu 30.03.2011 23:51, Mario pisze:
Hint - 20 strona dokumentacji.
W dniu 2011-03-31 00:57, Michoo pisze:
No tak, już znalazłem. dwa 16kb bloki pamięci AHB dedykowane -jedna do Eth, druga do USB adresy 0x2007C000 i 0x20080000. Może lpcusb nie korzysta z tego bloku od usb i jakoś go wykorzystam.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.