-
1. Data: 2011-03-30 16:26:18
Temat: Pamięć RAM w armgcc
Od: Mario <m...@p...onet.pl>
Witam,
jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system -
Freertos.
Kompilator codesourcery.
--
Pozdrawiam
MD
-
2. Data: 2011-03-30 16:33:26
Temat: Re: Pamięć RAM w armgcc
Od: mk <m...@o...pl>
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
pzdr
mk
-
3. Data: 2011-03-30 21:51:58
Temat: Re: Pamięć RAM w armgcc
Od: Mario <m...@p...onet.pl>
W dniu 2011-03-30 18:33, mk pisze:
> 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
-
4. Data: 2011-03-30 22:57:32
Temat: Re: Pamięć RAM w armgcc
Od: Michoo <m...@v...pl>
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.
--
Pozdrawiam
Michoo
-
5. Data: 2011-03-30 23:50:49
Temat: Re: Pamięć RAM w armgcc
Od: Mario <m...@p...onet.pl>
W dniu 2011-03-31 00:57, Michoo pisze:
> 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