From cca0739b1550859217a6dda6ab4123fdd4eca553 Mon Sep 17 00:00:00 2001 From: Huibean Date: Sat, 25 Jan 2025 20:54:04 +0800 Subject: [PATCH] Fix:mac_lld_init build error, '__eth_rb' will never be NULL --- os/hal/ports/STM32/LLD/MACv2/hal_mac_lld.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/os/hal/ports/STM32/LLD/MACv2/hal_mac_lld.c b/os/hal/ports/STM32/LLD/MACv2/hal_mac_lld.c index 1be6a6e4f9..8af6a429c2 100644 --- a/os/hal/ports/STM32/LLD/MACv2/hal_mac_lld.c +++ b/os/hal/ports/STM32/LLD/MACv2/hal_mac_lld.c @@ -279,10 +279,24 @@ OSAL_IRQ_HANDLER(STM32_ETH_HANDLER) { bool mac_lld_init(void) { unsigned i; - if (__eth_rb == NULL || __eth_tb == NULL || __eth_rd == NULL || __eth_td == NULL) { +#if defined(STM32_ETH_BUFFERS_EXTERN) + if (__eth_rd == NULL || __eth_td == NULL) { return false; } + for (i = 0; i < STM32_MAC_RECEIVE_BUFFERS; i++) { + if (__eth_rb[i] == NULL) { + return false; + } + } + + for (i = 0; i < STM32_MAC_TRANSMIT_BUFFERS; i++) { + if (__eth_tb[i] == NULL) { + return false; + } + } +#endif + macObjectInit(ÐD1); ETHD1.link_up = false;