首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义以太网驱动问题

自定义以太网驱动问题
EN

Stack Overflow用户
提问于 2009-12-17 17:43:04
回答 2查看 920关注 0票数 1

我不知道这个问题在这里是相关的还是超级用户,但无论如何都要问。

我已经在下面提到的设置- Linux桌面PC系统。这是一个连接自定义的FPGA开发board.In,这个FPGA有一个以太网网卡IP的实现和执行。该板采用USB接口-USB线和串口连接到FPGA开发板上.从本质上说,这整个设置测试的是基于FPGA的网卡和相关的以太网驱动程序。

有许多应用程序运行在主机linux上,并将数据发送给基于FPGA的以太网n/w卡,后者接受它,进行必要的处理,并发送到FPGA上实现的物理层,然后通过以太网将其发送到网络上的其他节点/设备。

这一设置工作良好,即使多个应用程序从主机-pc发送数据到FPGA网卡。作为其中一个应用程序,我使用一个基于Linux的VLC播放器(它是一个多媒体播放器)来播放来自Linux主机的一些多媒体流,这些数据被发送到FPGA网卡。在VLC播放器中,我使用vlc播放器控件查找(反向/转发)流。当我连续执行这个查找操作时,它使linux主机pc。挂/别动。没有i/o设备工作,只有重新启动工作。

现在,我试图查看linux主机pc /var/log (dmesg)中的日志,以了解是什么进程/应用程序导致了冻结,但无法从其中获得任何输入。

  1. 我如何进行隔离不同的组件(软件,硬件,)涉及我的整个设置,以缩小问题的根源?
  2. 是否有任何方式通过某种方式(串行电缆或其他连接)与冻结的linux主机进行通信,以便在挂起数据时从其获取任何数据?
  3. 我应该遵循什么步骤?如何判断VLC应用程序是问题,还是FPGA网卡驱动程序是问题,还是其他问题?

任何指针都是有用的。

谢谢。

-AD。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-17 20:04:01

您提到Linux主机已被冻结。首先,我将确定它是否实际上被锁在内核中,或者是否有某个用户空间进程(Es)占用了过多的CPU。

主机可以点击(最好是在与您的FPGA以太网卡分开的接口上)吗?如果它回复,内核就不会被锁定。

硬件问题?

如果可能的话,是否可以暂时更改设置以删除FPGA以太网卡,然后再重现问题?我会这样做,以帮助隔离与硬件(FPGA以太网)具体相关的问题。

用户空间(软件)问题?

如果将VLC从方程中删除,还能通过使用另一种方法生成以太网通信量来实现锁定/挂起吗?

您可以尝试创建一个以更高优先级运行的shell,以便在系统挂起时检索数据。也许通过在这个高优先级shell中运行top,您可以确定谁(如果有人)正在使用所有CPU。您可以通过网络(telnet/ssh)或通过串行终端运行此shell。

代码语言:javascript
复制
#include <errno.h>
#include <sched.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
    struct sched_param scheduling_parameters;

    scheduling_parameters.sched_priority = 10;

    if (sched_setscheduler(getpid(), SCHED_FIFO, &scheduling_parameters) < 0) {
        printf("error is %d\n", errno);
    }

    execlp("/bin/bash", "bash",0, 0, 0, 0);

    return 0;
}

内核(软件)问题?

您可以启用魔法sysrq密钥并检查系统状态,然后从那里开始。内核开发人员使用这个接口来调试他们的软件。为了使用此功能,必须在内核编译时启用CONFIG_MAGIC_SYSRQ选项。

在经验地将bug缩小到特定模块之后,printk()仍然是一个很好的资源。

它还可能有助于启用内核调试器(KDB)并通过串行电缆连接到它。

票数 2
EN

Stack Overflow用户

发布于 2009-12-20 16:32:44

@Jscheimer:谢谢关于我的问题的详细提示。经过大量调试&与工作场所的其他系统开发人员进行了一些讨论,我终于找到了根本原因。在整个设置中有一个DMA外围设备。DMA用于对齐访问,但是在某些数据传输中,它接收的是一个未对齐的地址,这是因为我在代码中没有检查缓冲区对齐情况,这导致挂起/冻结。这种行为是没有规律的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1923400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档