请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LC4357 主题中讨论的其他器件: HALCOGEN
以下是 HalCoGen 生成的 EMAC 驱动程序(TMS570LC4357)的一部分:
void EMACReceive(hdkif_t *hdkif)
{...
CURR_TAIL->NEXT =(EMAC_Rx_BD_t *) EMACSwizzleData ((uint32) rxch_int->free_head);
(笑声)
LAST_BD->NEXT =空;
但它可能具有竞态条件。 它在 RX 缓冲区描述符链的末尾添加了新的部分。 问题是添加了未终止的链件、如果之后终止、则终止。 当 MAC 控制器的速度比 SW 快时(SW 可以被更重要的东西中断)、这就包含了可能的竞态条件