Hello,
I'm facing the problem with run modus of stm32f746 together with lpIP and LVGL. Can anybody say what can be wrong?
If I activate lwIP, then came that problem without debugger.
Please provide more information, that experts can help you.
the main looks like this:
int main(void) { /* USER CODE BEGIN 1 */ SystemCoreClock = 200000000; SystemCoreClockUpdate(); // EventRecorderInitialize (EventRecordAll, 1); // initialize and start Event Recorder // EventRecorderStart(); /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ //HAL_Delay(2000); /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_FMC_Init(); MX_LTDC_Init(); MX_TIM3_Init(); MX_LWIP_Init(); /* USER CODE BEGIN 2 */ //HAL_Delay(2000); initTouchDisplay(); api_fadein_graphics(); // HAL_Delay(2000); // MX_LWIP_Init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { lv_timer_handler(); lv_tick_inc(HAL_GetTick() - lv_tick_get()); MX_LWIP_Process(); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }
Perhaps the problem is in addresses, therefore I list the configuration (the LWIP_RAM_HEAP_POINTER was added manualy as user constrant in CubeMX, because is missing in STM32CubeMX Version 6.11.1):
// in ethernetif.c: __attribute__((at(0x2004fa00))) ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT]; /* Ethernet Rx DMA Descriptors */ __attribute__((at(0x2004f000))) ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT]; /* Ethernet Tx DMA Descriptors */ // in main.h: #define LWIP_RAM_HEAP_POINTER 0x20040000
okay the problem is eliminated by actvating checkbox "Use MicroLIB" in Options for target. But why? Can be discribed what the purpouse of that LIB?
You can read the details about MicroLIB in our Manual:
https://developer.arm.com/documentation/100073/0622/The-Arm-C-Micro-library/Differences-between-microlib-and-the-default-C-library?lang=en
The Stack and/or Heap might be too small for the standard library after adding the lpIP and LVGL libraries to your application.