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