gpt4 book ai didi

ntp - 如何让 NTP 与自定义 I/O 引脚一起工作?

转载 作者:行者123 更新时间:2023-12-04 08:47:45 25 4
gpt4 key购买 nike

我有一 block 带有 I/O 引脚的主板,并且我编写了一个 C 库,其中包含设置和查询这些 I/O 引脚状态的函数。假设这些函数之一的名称是 get_pin(int pin_no) ,并返回该引脚的逻辑电压。我想向我的一个引脚发送一个每秒 1 个脉冲 (PPS) 的信号,并告诉 Linux 的 NTPD 根据该信号进行校准。

是否可以告诉 NTPD 使用这些 I/O 引脚之一作为其 PPS?如果是这样,这样做的方法是什么? IE。是通过配置文件还是需要修改NTPD的源代码?我的早期研究似乎表明后者可能是必要的。

编辑:我正在使用 Centos 上的 ntpd

最佳答案

你的内核有 PPS 支持吗?

$ grep PPS /boot/config-$(uname -r)
# PPS support
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
# PPS clients support
# CONFIG_PPS_CLIENT_KTIMER is not set
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PPS_CLIENT_GPIO=m
# PPS generators support

ldattach安装?
$ which ldattach
/usr/sbin/ldattach

您可能不需要 ldattach . LinuxPPS installation 中提到过指示。但是,它似乎仅用于通过串行线路发送的 PPS(例如 RS-232 )。

pps-tools安装?
$ which ppstest
/usr/bin/ppstest

pps-gpio.ko模块安装?
$ modinfo pps-gpio
filename: /lib/modules/4.4.0-38-generic/kernel/drivers/pps/clients/pps-gpio.ko
version: 1.0.0
license: GPL
description: Use GPIO pin as PPS source
author: James Nuss <jamesnuss@nanometrics.ca>
author: Ricardo Martins <rasm@fe.up.pt>
srcversion: D2C22B0A465DA63746EFB59
alias: of:N*T*Cpps-gpio*
depends: pps_core
intree: Y
vermagic: 4.4.0-38-generic SMP mod_unload modversions

您可以通过在 GRUB 配置中的内核行中添加类似这样的内容来告诉内核 GPIO 引脚将用作 PPS 信号:
dtoverlay=pps-gpio,gpiopin=18

您需要将“18”更改为您正在使用的 GPIO 引脚。

您需要在 ntp.conf 中添加几行这样的行。 :
server 127.127.22.1            # ATOM(PPS)
fudge 127.127.22.1 flag3 1 # enable PPS API

引用:

http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm

http://linuxpps.org/wiki/index.php/Main_Page

http://rdlazaro.info/compu-Raspberry_Pi-RPi-stratum0.html

http://doc.ntp.org/4.1.1/refclock.htm

http://doc.ntp.org/4.1.1/driver22.htm

关于ntp - 如何让 NTP 与自定义 I/O 引脚一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42215346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com