GCC newlib-nano a multitasking - vyreseno
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Sobota Prosinec 13 08:27:10 CET 2014
Tak uz to mam GCC a google je mocny, klicove slovo je wrap function a
nejak takto (zatim bez lock) + option pro linker:
extern void *__real__malloc_r(
struct _reent *r,
size_t size
);
void *__wrap__malloc_r(
struct _reent *r,
size_t size
)
{
return __real__malloc_r(r, size);
}
extern void __real__free_r(
struct _reent *r,
void *ptr
);
void __wrap__free_r(
struct _reent *r,
void *ptr
)
{
__real__free_r(r, ptr);
}
Dne 13. 12. 2014 8:02, Jaroslav Buchta napsal(a):
> 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
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com
Další informace o konferenci Hw-list