2025-09-20 3:10 AM
I am using the core STM32H743IITx with Dev board OpenH7XXI-C.
PHY IC - DP83848,With RMII configuration.
I am facing issue in Ethernet communication for every 10 min of interval, I am getting DMA Error with RBU,ETI,AIS bit in DMACSR is set.
but after few sec(30 to 40sec), It is reconnecting again.
DMA descriptors allocated in RAM_D2 section.
LWIP_RAM_HEAP_POINTER @ 0x30020000
.lwip_sec (NOLOAD) :
{
. = ABSOLUTE(0x30040000);
*(.RxDecripSection)
. = ABSOLUTE(0x30040060);
*(.TxDecripSection)
. = ABSOLUTE(0x30040200);
*(.Rx_PoolSection)
} >RAM_D2
MPU Configuration
MPU_InitStruct.Number = MPU_REGION_NUMBER5;
MPU_InitStruct.BaseAddress = 0x30020000;
MPU_InitStruct.Size = MPU_REGION_SIZE_128KB;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
HAL_MPU_ConfigRegion(&MPU_InitStruct);
/** Initializes and configures the Region and the memory to be protected
*/
MPU_InitStruct.Number = MPU_REGION_NUMBER6;
MPU_InitStruct.BaseAddress = 0x30040000;
MPU_InitStruct.Size = MPU_REGION_SIZE_512B;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
2025-09-20 11:00 PM - edited 2025-09-20 11:03 PM
The problem usually arise from the application you are running, not from device or device setup.
For more advice, which drivers are you running (HAL or other), which Middleware ( TreadX or other) and which application is running.
Ethernet communication to be reliable require to manage receivd packets in real time; any other task can block your ethernet thread and generate DMA overflow.
LAST but not LEAST - there is a well known bug in 743 drivers that I explained in one of my previous post and was never fixed by stm - https://community.st.com/t5/stm32cubeide-mcus/stmcubemx-migration-to-v6-13-fw-h7-v1-12/td-p/749691 :
RxDecripSection
AND
TxDecripSection
in C code are
TxDescripSection
and
TxDescripSection
did you fix it ?
Mike