Alocação dinâmica com FreeRTOS

Software e Hardware para uC STM

Moderadores: andre_luis, 51

Alocação dinâmica com FreeRTOS

Mensagempor mrgadotti » 01 Abr 2019 10:30

Iniciei um trabalho com o STM32F4 e CMSIS-RTOS, aproveitando o STM32CubeMX para gerar o código base e principais configurações para o projeto no TrueStudio.

Meu problema com esse RTOS está na alocação dinâmica de memória. Utilizei como referência a documentação do FreeRTOS e o link Implementing Malloc With FreeRTOS.

A alocação está funcionando perfeitamente com pvPortMalloc(size), porém ao desalocar essa memória o RTOS está travando na chamada da função vPortFree(ptr). Estou utilizando a heap_4 do FreeRTOS.

Gostaria de trocar uma ideia se alguém já teve algum problema parecido no CMSIS-RTOS e alocação dinâmica no mesmo.
Avatar do usuário
mrgadotti
Byte
 
Mensagens: 421
Registrado em: 02 Jun 2010 21:14
Localização: Timbó - SC

Re: Alocação dinâmica com FreeRTOS

Mensagempor Rodrigo_P_A » 01 Abr 2019 12:11

já tive problema, usei rotina de malloc externa, tipo essa:

http://g.oswego.edu/dl/html/malloc.html

Você consegue iniciar ela, e usar para alocar e desalocar, e funciona bem, já usei em vários projetos.

Além disso o legal é que você consegue configurar, para usar por exemplo, uma área da RAM, eu usei em um ARM LPC17xx , eu num usava os 16KB de ram da ETHERNET, então inicializei a rotina para usar de forma dinamica aquela área de ram, e o resto deixei usando pelo compilador mesmo ( estática e heap )... dá uma olhada


Eu nunca tive sucesso com a alocação dinamica do freertos, mas usei versão bem antiga, o projeto eu fiz em meados de 2009-2011
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: Alocação dinâmica com FreeRTOS

Mensagempor mrgadotti » 01 Abr 2019 17:41

Rodrigo_P_A escreveu:já tive problema, usei rotina de malloc externa, tipo essa:

http://g.oswego.edu/dl/html/malloc.html

Você consegue iniciar ela, e usar para alocar e desalocar, e funciona bem, já usei em vários projetos.

Além disso o legal é que você consegue configurar, para usar por exemplo, uma área da RAM, eu usei em um ARM LPC17xx , eu num usava os 16KB de ram da ETHERNET, então inicializei a rotina para usar de forma dinamica aquela área de ram, e o resto deixei usando pelo compilador mesmo ( estática e heap )... dá uma olhada


Eu nunca tive sucesso com a alocação dinamica do freertos, mas usei versão bem antiga, o projeto eu fiz em meados de 2009-2011


Show, vou testar esse esquema da rotina externa!
Avatar do usuário
mrgadotti
Byte
 
Mensagens: 421
Registrado em: 02 Jun 2010 21:14
Localização: Timbó - SC

Re: Alocação dinâmica com FreeRTOS

Mensagempor Rodrigo_P_A » 01 Abr 2019 19:24

Dica:
- Após testar, se for usar com o freertos, num se esqueça de fazer tipo um "semáforo simples" para evitar reentrada na rotina de malloc / calloc / realloc / free , pois se duas tarefas chamarem ao mesmo tempo, pode ter problema.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil


Voltar para STMicroelectronics

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x