cancel
Showing results for 
Search instead for 
Did you mean: 

Ethernet with FreeRTOS not working in STM32H743v controller.

srikanth
Associate III

hi all,

I want to implement Ethernet(static IP) with FreeRTOS in stm32h743v MCU '

I tried ethernet (static IP) without FreeRTOS it is working and the I generated the same .ioc file to RTOS ,it's not working .in the sense ping is not working.

MCU_Config I initialize

static void MPU_Config(void)

{

 MPU_Region_InitTypeDef MPU_InitStruct;

  

 /* Disable the MPU */

 HAL_MPU_Disable();

 /* Configure the MPU attributes as Device not cacheable 

   for ETH DMA descriptors */

 MPU_InitStruct.Enable = MPU_REGION_ENABLE;

 MPU_InitStruct.BaseAddress = 0x30040000;

 MPU_InitStruct.Size = MPU_REGION_SIZE_256B;

 MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

 MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;

 MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;

 MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;

 MPU_InitStruct.Number = MPU_REGION_NUMBER0;

 MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;

 MPU_InitStruct.SubRegionDisable = 0x00;

 MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

 HAL_MPU_ConfigRegion(&MPU_InitStruct);

  

 /* Configure the MPU attributes as Cacheable write through 

   for LwIP RAM heap which contains the Tx buffers */

 MPU_InitStruct.Enable = MPU_REGION_ENABLE;

 MPU_InitStruct.BaseAddress = 0x30044000;

 MPU_InitStruct.Size = MPU_REGION_SIZE_16KB;

 MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

 MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;

 MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;

 MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;

 MPU_InitStruct.Number = MPU_REGION_NUMBER1;

 MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;

 MPU_InitStruct.SubRegionDisable = 0x00;

 MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

 HAL_MPU_ConfigRegion(&MPU_InitStruct);

 /* Enable the MPU */

 HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);

}

then TIM6 I taken as sys clock.

I am getting hard fault handler at time of low_level_init() function execution. In this again create a task for  handles the ETH_MAC ,in this task code hanged at hard fault handler

just I used debug the code for pinging which is generated from CUBE MX .

suggest me any solution to this issue.

0 REPLIES 0