Mario
Guest
Wed Mar 30, 2011 4:26 pm
Witam,
jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system -
Freertos.
Kompilator codesourcery.
--
Pozdrawiam
MD
mk
Guest
Wed Mar 30, 2011 4:33 pm
W dniu 2011-03-30 18:26, Mario pisze:
Quote:
Witam,
jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system -
Freertos.
Kompilator codesourcery.
arm-none-eabi-size
pzdr
mk
Mario
Guest
Wed Mar 30, 2011 9:51 pm
W dniu 2011-03-30 18:33, mk pisze:
Quote:
W dniu 2011-03-30 18:26, Mario pisze:
Witam,
jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system -
Freertos.
Kompilator codesourcery.
arm-none-eabi-size
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
--
Pozdrawiam
MD
Michoo
Guest
Wed Mar 30, 2011 10:57 pm
W dniu 30.03.2011 23:51, Mario pisze:
Quote:
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
Hint - 20 strona dokumentacji.
--
Pozdrawiam
Michoo
Mario
Guest
Wed Mar 30, 2011 11:50 pm
W dniu 2011-03-31 00:57, Michoo pisze:
Quote:
W dniu 30.03.2011 23:51, Mario pisze:
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
Hint - 20 strona dokumentacji.
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.
--
Pozdrawiam
MD