Conversation
|
/bot run formatting |
| { | ||
| UBaseType_t uxIPv4EndPoints = 0U; | ||
| uint32_t ulIPv4Address = 0U; | ||
| const NetworkEndPoint_t * pxEndPoint; |
There was a problem hiding this comment.
const NetworkEndPoint_t * -> NetworkEndPoint_t * because
error: passing argument 2 of 'FreeRTOS_NextEndPoint' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
2848 | pxEndPoint = FreeRTOS_NextEndPoint( pxInterface, pxEndPoint ) )
| #define niEMAC_MAX_INTERFACE_NAMES 16U | ||
| #define niEMAC_TX_QUEUE_LENGTH ETH_TX_DESC_CNT | ||
| #define niEMAC_TX_BUFFERS_PER_DESC 2U | ||
| #define niEMAC_TX_MAX_BUFFER_FRAGMENTS ( ETH_TX_DESC_CNT * niEMAC_TX_BUFFERS_PER_DESC ) | ||
|
|
||
| #define niEMAC_AUTO_NEGOTIATION ipconfigENABLE |
There was a problem hiding this comment.
please add #ifndef's for
niEMAC_AUTO_NEGOTIATIONniEMAC_USE_100MBniEMAC_USE_FULL_DUPLEX,niEMAC_AUTO_CROSSniEMAC_CROSSED_LINK
| ( void ) HAL_ETHEx_SetL4FilterConfig( pxEthHandle, ETH_L4_FILTER_0, &xL4FilterConfig ); | ||
| #if ipconfigIS_ENABLED( niEMAC_USE_ARP_OFFLOAD ) | ||
| UBaseType_t uxIPv4EndpointCount = 0U; | ||
| const NetworkEndPoint_t * pxEndPoint; |
There was a problem hiding this comment.
const NetworkEndPoint_t * -> NetworkEndPoint_t * because
NetworkInterface.c:3038:67: error: passing argument 2 of 'FreeRTOS_NextEndPoint' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
3038 | pxEndPoint = FreeRTOS_NextEndPoint( pxInterface, pxEndPoint ) )
|
|
||
| #define niEMAC_TX_MUTEX_NAME "EMAC_TxMutex" | ||
| #define niEMAC_TX_DESC_SEM_NAME "EMAC_TxDescSem" | ||
| #define niEMAC_TX_QUEUE_NAME "EMAC_TxQueue" | ||
| #define niEMAC_MAX_INTERFACE_NAMES 16U |
There was a problem hiding this comment.
niEMAC_MAX_INTERFACE_NAMES Causes enourmous DTCMRAM usage, should configurable and reduced by default I think.
BTW, I'm not aware of any STM32 F/H series with more than one EMAC. Is it needed for VLANs?
There was a problem hiding this comment.
Always got this print here
To fix I need to do something like
case eMacInitComplete:
vForceRefreshPhyLinkStatus( pxPhyObject ); // new
if( prvGetPhyLinkStatus( pxInterface ) != pdTRUE )
.....
static void vForceRefreshPhyLinkStatus( EthernetPhy_t * pxPhyObject )
{
vTaskSetTimeOutState( &( pxPhyObject->xLinkStatusTimer ) );
pxPhyObject->xLinkStatusRemaining = 0U;
xPhyCheckLinkStatus( pxPhyObject, pdFALSE );
}|
Yeah this is still in progress. Many of the changes were using xEMACData to support multiple interfaces, if we drop that then I can simplify this a fair bit |
Few fixes, update HAL drivers, implement rest of HAL