erps wrote on Friday, August 15, 2014:
Hi:
I am working with a STMicrolectronics Demo STM3221G-EVA board. This Demo uses on FreeRTOS. I would like to add a GUI Module into this demo. I have followed the documentation UM1550 STM32 Demonstration Builder developer guide, at Chapter 5 Building a Module. Also I have used the template file provided with the Demo, to add this new module and I was successful to include an icon in the right location.
Now, when I click in the icon the code goes to an infinite loop at: (arrowed part)
static void TEMPLATE_INFO_SwitchPage(GL_Page_TypeDef* pParent, uint32_t PageIndex)
{
/* Switch to new page, and free previous one. /
GL_Page_TypeDef NextPage = NULL;
(pParent).ShowPage(pParent, GL_FALSE);
DestroyPage(pParent);
vPortFree(pParent); /<— Code stuck here */
pParent = NULL;
if (PageIndex == PAGE_MENU)
{
GL_ShowMainMenu();
return;
}
This function is referenced in the following function:
static void TEMPLATE_INFO_Startup (void)
{
vTaskSuspend(Core_Time_Task_Handle);
TEMPLATE_INFO_SwitchPage(GL_HomePage, TEMPLATE_MAIN_PAGE);
}
vPortFree is a FreeRTOS function, but it may be a pointer problem where there’s no definition of the pointer or something, I don’t know. This Demo uses heap_2.c
The original Modules work ok. I am missing something here?
Thanks.