Zase arm cortex zahada
Miroslav Mraz
mraz na seznam.cz
Úterý Listopad 19 23:03:05 CET 2013
Tak tohle jsem taky začal zkoumat a nedopracoval jsem se k výsledku. Ani
jsem nepochopil kde si vlastně malloc tu paměť alokuje. Sežere to 2KB
paměti, dá se najít jak haldu zvětšit pomocí _sbrk, ale jak to zmenšit,
ví bůh.
Je to napsané v C-čku, ne v assembleru, ale zdroják mallocr.c má ve
verzi 1.20.0 130KB - původní ve verzi 1.6 měl 8KB. Je to sice dobře
dokumentované, ale čert se v tom vyznej. Možná by bylo lepší použít
nějakou prastarou verzi ve které se ještě vyznat jde. Ono je na tom
vidět, jak to optimalizovali až k nepoužitelnosti. Přece jen, když mám
uP s 8KB RAM, tak 2K už jsou znát.
Přitom na x51 to šlo ještě docela jednoduše - stačilo nadefinovat pole
char _heap[SIZE] a bylo.
Mrazík
Jaroslav Buchta píše v Út 19. 11. 2013 v 20:51 +0100:
> pouzivam u STM32F103 tools 4.7-2012-q4 z
> https://launchpad.net/gcc-arm-embedded - pro M4 stm32F4 zda se funguje
> OK ale u teto M3 jsem narazil na problem s funkci malloc, zda se, ze se
> ten problem na internetu resi, ale reseni jsem nenasel - koukam, ze uz
> je novejsi verze toolchainu, zkusim, ale zatim jsem zjistil, ze pomuze
> vynulovani cele pameti, coz me samozrejme neuspokojuje (ne jen
> inicializace dat a nulovani bss ale cele pameti, pokud ma nejake
> promenne v asm mimo sekce v ld scriptu, tak by to byl problem).
> Nevi nekdo pricinu? Vlastni fce malloc je evidentne psana v assembleru,
> zdrojak jsem zatim nelokalizoval a pri krokovani jsem zjistil houby...
>
> Skript pouzivam tento - predpokladam, ze chybi nejaka sekce pro knihovny
> v asm...:
>
Další informace o konferenci Hw-list