|

楼主 |
发表于 2019-7-19 11:46:04
|
显示全部楼层
还是会存在影响的,接受是在单独的进程里面的
osThreadDef(EthIf, ethernetif_input, osPriorityRealtime, 0, INTERFACE_THREAD_STACK_SIZE);
osThreadCreate (osThread(EthIf), netif);
所以在其他进程里面发送数据,那么HAL_LOCK有被同时调用的风险(并发风险),但接受在一个while函数里面,所以影响不大
for( ;; )
{
if (osSemaphoreWait( s_xSemaphore, TIME_WAITING_FOR_INPUT)==osOK)
{
do
{
p = low_level_input( netif );
if (p != NULL)
{
if (netif->input( p, netif) != ERR_OK )
{
pbuf_free(p);
}
}
} while(p!=NULL);
}
}
但发送就可能受到影响
|
|