|
@@ -41,9 +41,9 @@ struct rt_stm32_eth
|
|
|
/* interface address info, hw address */
|
|
|
rt_uint8_t dev_addr[MAX_ADDR_LEN];
|
|
|
/* ETH_Speed */
|
|
|
- uint32_t ETH_Speed;
|
|
|
+ rt_uint32_t ETH_Speed;
|
|
|
/* ETH_Duplex_Mode */
|
|
|
- uint32_t ETH_Mode;
|
|
|
+ rt_uint32_t ETH_Mode;
|
|
|
};
|
|
|
|
|
|
static ETH_DMADescTypeDef *DMARxDscrTab, *DMATxDscrTab;
|
|
@@ -167,8 +167,14 @@ static rt_err_t rt_stm32_eth_control(rt_device_t dev, int cmd, void *args)
|
|
|
{
|
|
|
case NIOCTL_GADDR:
|
|
|
/* get mac address */
|
|
|
- if (args) rt_memcpy(args, stm32_eth_device.dev_addr, 6);
|
|
|
- else return -RT_ERROR;
|
|
|
+ if (args)
|
|
|
+ {
|
|
|
+ SMEMCPY(args, stm32_eth_device.dev_addr, 6);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return -RT_ERROR;
|
|
|
+ }
|
|
|
break;
|
|
|
|
|
|
default :
|
|
@@ -214,7 +220,7 @@ rt_err_t rt_stm32_eth_tx(rt_device_t dev, struct pbuf *p)
|
|
|
while ((byteslefttocopy + bufferoffset) > ETH_TX_BUF_SIZE)
|
|
|
{
|
|
|
/* Copy data to Tx buffer*/
|
|
|
- memcpy((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), (ETH_TX_BUF_SIZE - bufferoffset));
|
|
|
+ SMEMCPY((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), (ETH_TX_BUF_SIZE - bufferoffset));
|
|
|
|
|
|
/* Point to next descriptor */
|
|
|
DmaTxDesc = (ETH_DMADescTypeDef *)(DmaTxDesc->Buffer2NextDescAddr);
|
|
@@ -236,7 +242,7 @@ rt_err_t rt_stm32_eth_tx(rt_device_t dev, struct pbuf *p)
|
|
|
}
|
|
|
|
|
|
/* Copy the remaining bytes */
|
|
|
- memcpy((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), byteslefttocopy);
|
|
|
+ SMEMCPY((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), byteslefttocopy);
|
|
|
bufferoffset = bufferoffset + byteslefttocopy;
|
|
|
framelength = framelength + byteslefttocopy;
|
|
|
}
|
|
@@ -327,7 +333,7 @@ struct pbuf *rt_stm32_eth_rx(rt_device_t dev)
|
|
|
while ((byteslefttocopy + bufferoffset) > ETH_RX_BUF_SIZE)
|
|
|
{
|
|
|
/* Copy data to pbuf */
|
|
|
- memcpy((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), (ETH_RX_BUF_SIZE - bufferoffset));
|
|
|
+ SMEMCPY((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), (ETH_RX_BUF_SIZE - bufferoffset));
|
|
|
|
|
|
/* Point to next descriptor */
|
|
|
dmarxdesc = (ETH_DMADescTypeDef *)(dmarxdesc->Buffer2NextDescAddr);
|
|
@@ -338,7 +344,7 @@ struct pbuf *rt_stm32_eth_rx(rt_device_t dev)
|
|
|
bufferoffset = 0;
|
|
|
}
|
|
|
/* Copy remaining data in pbuf */
|
|
|
- memcpy((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), byteslefttocopy);
|
|
|
+ SMEMCPY((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), byteslefttocopy);
|
|
|
bufferoffset = bufferoffset + byteslefttocopy;
|
|
|
}
|
|
|
}
|
|
@@ -385,7 +391,9 @@ void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
|
|
|
rt_err_t result;
|
|
|
result = eth_device_ready(&(stm32_eth_device.parent));
|
|
|
if (result != RT_EOK)
|
|
|
+ {
|
|
|
LOG_I("RxCpltCallback err = %d", result);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)
|