为时间戳IP创建Linux驱动程序

时间:2018-10-16 10:24:36

标签: embedded linux-device-driver

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

我对驱动程序开发有基本的了解,但问题是如何连接时间戳。我计划使用Linux PTP程序来执行PTP。通过查看执行此操作的其他驱动程序可以得出的结论是,有一个SO_TIMESTAMPING标志可以启用硬件时间戳。然后,skb(套接字缓冲区)文件中有一些函数对其进行设置。有人可以解释在驱动程序中连接PTP程序所需的内容。

谢谢

1 个答案:

答案 0 :(得分:2)

编写内核模块并非易事。您肯定会面对学习的弯路。

比这更多的东西,但是从高层次上讲,您需要做一些事情。

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

在解决问题时,可以对驱动程序中的内存地址进行硬编码,但是最终,驱动程序应从设备树中拉出内存区域。 一些提示: