MDIO master VIP 图解 (ArrayBox的妙用)

本文介绍了MDIO Master VIP中ArrayBox的关键作用,特别是在实现阻塞式读取操作时。通过示例说明了readword函数如何更新RdDataPtr,以及为何使用mailbox存储transaction而不是直接使用ArrayBox。还探讨了使用semaphore和不同类型的mailbox实现阻塞等待的替代方案。

如图:

 

1. readword 每调用一次,最后都会update RdDataPtr,使其自增1.

2. 关联数组RdDataArrayBox, Index 是 RdDataPtr, Value 是各个mailbox。 mailbox中放入的是各个transaction。 为何不直接将RdDataArrayBox的值设为各个transaction呢? 这是个关键所在!不防考虑一下这种情况,在调用了readword后立即调用getword函数。 runloop还没有来得及把transaction放入到对应的mailbox中,而getword却要立即返回,当然应该阻塞住getword的返回runloop直到拿到了transaction并放入对应的mailbox中。 回想起来也只有mailbox才能实现这个功能。

3. 所以当我们设计的master要将返回的数据保存以待查用并需要实现阻塞时,通常需要一个ArrayBox来通过put和get实现阻塞。 

4. 等待mailbox中排在自己前面的transaction全部处理完毕,这个过程可以用semaphore 加以实现

  /////////////////////////////////////////////////////////////////////////////
  /*- mdioDone(): Wait until all transactions in the input mailbox
  //  are finished.*/
  /////////////////////////////////////////////////////////////////////////////
  task mdioDone();
    this.tr               = new();
    this.tr.TrType    
### 使用 `mdio-tools-master` 的方法 `mdio-tools-master` 是一个用于操作 MDIO(Management Data Input/Output)总线的工具集,常用于调试和配置以太网 PHY 设备。它通常以源代码形式提供,需要手动编译和安装。以下是使用 `mdio-tools-master` 的步骤: #### 编译与安装 在使用 `mdio-tools-master` 之前,需要先下载源码并进行编译安装。通常情况下,可以使用以下命令完成: ```bash git clone https://github.com/xxx/mdio-tools.git cd mdio-tools make sudo make install ``` 此步骤会将工具编译并安装到系统中,确保后续可以调用相关命令进行操作[^1]。 #### 使用 `mdio` 命令 安装完成后,可以使用 `mdio` 命令来读写 MDIO 总线上的寄存器。以下是一些常见的使用示例: - **读取 PHY 寄存器** 例如,读取 MDIO 总线设备 `eth0` 上地址为 `0x1` 的 PHY 寄存器 `2` 的值: ```bash mdio read eth0 1 2 ``` - **写入 PHY 寄存器** 写入值 `0x3` 到 MDIO 总线设备 `eth0` 上地址为 `0x1` 的 PHY 寄存器 `2`: ```bash mdio write eth0 1 2 3 ``` 这些命令允许用户直接与 PHY 芯片进行交互,进行调试或配置操作[^1]。 #### 支持的硬件平台 `mdio-tools-master` 通常适用于基于 Linux 的嵌入式系统,支持多种 MDIO 控制器架构,包括但不限于 ARM、MIPS 和 x86 平台。使用前需要确认内核已启用 `CONFIG_MDIO` 及相关驱动支持[^1]。 #### 调试与日志输出 在调试过程中,可以结合 `dmesg` 或 `ethtool` 命令查看网络接口的详细信息,以辅助分析 MDIO 操作是否成功。例如: ```bash ethtool -d eth0 ``` 该命令可以显示与 `eth0` 接口相关的调试信息,包括 MDIO 总线状态和 PHY 配置情况[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值