首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为时间戳IP创建Linux驱动程序

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

Stack Overflow用户
提问于 2018-10-16 18:24:36
回答 1查看 199关注 0票数 0

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

我对驱动程序开发有一个基本的了解,但问题是如何接口时间戳。我计划使用Linux PTP程序来做PTP。从我通过查看其他这样做的驱动程序可以得出的结论是,有一个启用硬件时间戳的SO_TIMESTAMPING标志。然后在skb (套接字缓冲区)文件中有一些函数来设置它。谁能解释一下驱动程序需要什么才能连接到PTP程序。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 04:57:19

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

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

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

当你弄清楚事情的时候,你可以在你的驱动程序中硬编码内存地址,但最终驱动程序应该从设备树中拉出内存区域。一些小贴士:

  • 驱动程序需要请求内存区域(Request_mem_region),然后映射它(ioremap_nocache)。然后,您可以通过在/proc/或/dev/中创建文件、通过创建套接字或各种其他方法来将该信息公开给用户空间。如果要在内核中使用
  • ,请查看http://derekmolloy.ie/writing-a-linux-kernel-module-part-1-introduction/

等介绍模块编写教程的

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

https://stackoverflow.com/questions/52833314

复制
相关文章

相似问题

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