RTV forum PL | NewsGroups PL

Jak sprawdzić zużycie pamięci RAM dla zmiennych i FreeRTOS w armgcc?

Pamięć RAM w armgcc

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak sprawdzić zużycie pamięci RAM dla zmiennych i FreeRTOS w armgcc?

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 Sad
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 Sad
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 Sad
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

elektroda NewsGroups Forum Index - Elektronika Polska - Jak sprawdzić zużycie pamięci RAM dla zmiennych i FreeRTOS w armgcc?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map