GCC newlib-nano a multitasking

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Prosinec 13 08:02:54 CET 2014


Narazil jsem na problém u CM0 a FreeRTOS
Tyto redukovane knihovny nepodporují zřejmě u funkcí malloc a free 
callback funkce při vstupu a výstupu a nelze tedy locknout systém? Nějak 
takto to normálně dělám:

void __malloc_lock ( struct _reent *_r )
{
     vPortEnterCritical();
}

void __malloc_unlock ( struct _reent *_r )
{
     vPortExitCritical();
}

Existuje nějaké jiné řešení, než upravit a zkompilovat celé knihovny 
(netuším, jak moc je to práce)
Případně dá se implementovat vlasní funkce pro správu paměti a příslušné 
části knihovny linkeru zakázat (pokud napíšu vlastní malloc např., tak 
linker vyhodí error )
Nebo nějaký další nápad?
Normálně používám plnohodnotné knihovny ale tady je průšvih, že alokuje 
haldu po blocích 4kB asi natvrdo a zase s 8kB RAM jsem jaksi v .... To 
zas ta nano verze vola sbrk pro kazdy malloc presne na miru.


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com



Další informace o konferenci Hw-list