2025-10-09 9:57 AM - edited 2025-10-09 9:58 AM
I am working to send data continuously using TCP/IP, LWIP and free-RTOS. I created three tasks and using one task to send data. Each data packet is 1460 bytes and after sending around 300K packets the system halts and resets. I wanted to increase the size of descript ETH_RX_DESC_CNT and ETH_TX_DESC_CNT from 4 to 8 to check the performance. I do not want to change it in .ioc file as it will generate code again that will result in deletion of my code. I tried to redefine using every method, in compiler preprocess, main.h, stm32h7rsxx_hal_conf.h, stm32h7rsxx_hal_eth.h, ethernetif.c but nothing works. The value remains same 4U (default).
How I can do that?
Edit: I am using Nucleo-H7S3L8 board
2025-10-09 12:17 PM
The number of descriptors is not defined in the project files. The default numbers are here:
You can redefine in the compiler preprocessor settings or stm32h7rsxx_hal_conf.h.
2025-10-09 12:23 PM
Thanks for the reply.
I did in compiler preprocessor (as shown in figure attached) and to check the value I am printing on UART in ethernet.c (in low_level_init() function )but it is unchanged.
printf("DMARxDscrTab=%p DMATxDscrTab=%p RX_POOL=%p\n", DMARxDscrTab, DMATxDscrTab, memp_memory_RX_POOL_base);
printf("ETH_RX_DESC_CNT=%u ETH_TX_DESC_CNT=%u ETH_RX_BUFFER_CNT=%u\r\n",
(unsigned)ETH_RX_DESC_CNT,
(unsigned)ETH_TX_DESC_CNT,
(unsigned)ETH_RX_BUFFER_CNT);
I also tried to change in stm32h7rsxx_hal_conf.h but i always give me makefile error. I tried define again (overwrite), undefine and define again but I am not able to.
2025-10-09 12:50 PM
Thanks for the reply.
I did in compiler preprocessor (as shown in figure attached) and to check the value I am printing on UART in ethernet.c (in low_level_init() function )but it is unchanged.
printf("DMARxDscrTab=%p DMATxDscrTab=%p RX_POOL=%p\n", DMARxDscrTab, DMATxDscrTab, memp_memory_RX_POOL_base);
printf("ETH_RX_DESC_CNT=%u ETH_TX_DESC_CNT=%u ETH_RX_BUFFER_CNT=%u\r\n",
(unsigned)ETH_RX_DESC_CNT,
(unsigned)ETH_TX_DESC_CNT,
(unsigned)ETH_RX_BUFFER_CNT);
I also tried to change in stm32h7rsxx_hal_conf.h but i always give me makefile error. I tried define again (overwrite), undefine and define again but I am not able to.