Zase arm cortex zahada
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Středa Listopad 20 00:05:35 CET 2013
Tak jsem po hodinach badani stahnul nejnovejsi verzi 3q2013 a tam zda se
vse funguje OK...
Dalsi problem totiz byl, ze s tou vynulovanou pameti to fungovalo s
funkci _sbrk ale uz ne s verzi _sbrk_r, kde to do ni ani neslo a
skoncilo to na Hard Fault... Ted to do ni normalne jde a ani nevadi,
kdyz na zacatku startup kodu celou pamet vyplnim 0xa5
No uvidime, dal jsem tam FreeRTOS a zatim 2 tasky blikajici ledkou jedou ;-)
Zdrojaky jsem zatim nestahoval, ale ta puvodni verze podle me mela
vlastni funkci _malloc_r psanou v asm, nebo aspon castecne jako inline,
zdrojak jsem kazdopadne nenasel...
Dne 19.11.2013 23:03, Miroslav Mraz napsal(a):
> 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...:
>>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list