Pami?? RAM w armgcc

Witam, jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system - Freertos. Kompilator codesourcery.

Reply to
Mario
Loading thread data ...

W dniu 2011-03-30 18:26, Mario pisze:

arm-none-eabi-size

pzdr mk

Reply to
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

Reply to
Mario

W dniu 30.03.2011 23:51, Mario pisze:

Hint - 20 strona dokumentacji.

Reply to
Michoo

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.

Reply to
Mario

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.