首页 > 解决方案 > 为时间戳 IP 创建 Linux 驱动程序

问题描述

我有一个运行 Linux 的嵌入式板。我想使用 PTP (IEEE 1588) 将板与网络大师同步。该板使用具有 ARM 处理器和 FPGA 的 Xilinx Zynq 设备。我已经开发了一些 IP 来做时间戳和 RTC。我现在需要将这两个 IP 与 Linux 接口。所以我需要创建一些驱动程序,但由于我不是 Linux 专家,我真的不知道该怎么做。

我对驱动程序开发有基本的了解,但问题是如何连接时间戳。我打算使用 Linux PTP 程序来做 PTP。从我可以通过查看其他执行此操作的驱动程序得出的结果来看,有一个 SO_TIMESTAMPING 标志可以启用硬件时间戳。然后在设置它的skb(套接字缓冲区)文件中有一些函数。有人能解释一下驱动程序需要什么来连接 PTP 程序吗?

谢谢

标签: embeddedlinux-device-driver

解决方案


编写内核模块不是一件容易的事。你肯定会面临学习曲线。

还有比这更多的部分,但在高层次上,您需要做一些事情。

  1. 确定您希望在 IP 和驱动程序之间交换信息的内存位置。
  2. 添加一个设备树条目,指定您将使用的内存范围。
  3. 编写驱动程序与您的 IP 接口。
  4. 将信息公开给用户空间。

当您弄清楚事情时,您可以在驱动程序中硬编码内存地址,但最终驱动程序应该从设备树中提取内存区域。一些技巧:


推荐阅读