|
|

楼主 |
发表于 2025-12-31 00:32:29
|
显示全部楼层
ETH_MAC_STM32.c修改
/**
\fn int32_t ETH_MAC_Initialize (ARM_ETH_MAC_SignalEvent_t cb_event)
\brief Initialize Ethernet MAC Device.
\param[in] cb_event Pointer to \ref ARM_ETH_MAC_SignalEvent
\return \ref execution_status
*/
static int32_t ETH_MAC_Initialize (ARM_ETH_MAC_SignalEvent_t cb_event) {
static const uint8_t mac_def[6] = { 2, 0, 0, 0, 0, 0 };
heth.Instance = ETH;
heth.Init.TxDesc = DMATxDscrTab;
heth.Init.RxDesc = DMARxDscrTab;
heth.Init.RxBuffLen = ETH_MAX_PACKET_SIZE;
heth.Init.MACAddr = (uint8_t *)(uint32_t)mac_def;
heth.Init.MediaInterface = HAL_ETH_RMII_MODE;
/* Set Tx packet config common parameters */
memset (&TxConfig, 0 , sizeof(ETH_TxPacketConfig));
TxConfig.Attributes = ETH_TX_PACKETS_FEATURES_CSUM | ETH_TX_PACKETS_FEATURES_CRCPAD;
TxConfig.ChecksumCtrl = ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC;
TxConfig.CRCPadCtrl = ETH_CRC_PAD_INSERT;
// Clear run-time info
memset((void *)ð_mac0_rw_info, 0, sizeof(RW_Info_t));
// Register callback function
eth_mac0_rw_info.cb_event = cb_event;
// Set driver status to initialized
eth_mac0_rw_info.drv_status.initialized = 1U;
return ARM_DRIVER_OK;
} |
|