如何使用 DMtimer 在 Beaglebone 中设置 1 分钟计时器



我想使用 beaglebone 的 DMtimer 将计时器设置为 1 分钟。任何人都可以指导我完成相同的程序吗?我使用过Pic微控制器和它的计时器,所以我知道计时器的工作,但是在beaglebone中的编程和寄存器处理方面,它似乎以不同的方式工作。以下是我的比格骨绿的细节

uname -r
4.14.71-ti-r80
cat /etc/dogtag
BeagleBoard.org Debian Image 2018-10-07
cat /etc/debian_version
9.5

尝试在 Linux Ubuntu 中编写 C 代码

以下答案假定您正在尝试创建用户空间程序(而不是内核空间代码,如典型的驱动程序)。

在像Linux这样的完整操作系统上,你不需要操纵寄存器来编程计时器。您宁愿使用内核 API。

根据程序的结构,有许多选项。

如果您有事件循环(通过轮询或选择),则可能需要使用 timerfd API。请参阅 http://man7.org/linux/man-pages/man2/timerfd_create.2.html。

如果您希望通过信号进行异步通知,则可以使用setitimer。请参阅:http://man7.org/linux/man-pages/man2/setitimer.2.html

一般来说,我会尽量避免信号,因为它们的异步性质。

最新更新