我要和一个司机约会。有以下几种说法:
/* Get the interrupt GPIO pin number */
gpiod = devm_gpiod_get_optional(dev, GOODIX_GPIO_INT_NAME, GPIOD_IN);
我读过关于的文章,但我仍然不知道到底返回了什么?
我知道gpiod_direction_output返回一个struct gpio_desc。但是devm_gpiod_get_optional的情况似乎并非如此,因为我尝试过在每个示例中打印gpiod->label,并且得到了dereferencing pointer to incom
如何选择在Linux下与gpio一起工作?
是否可以使用select来创建一种中断驱动程序,也许可以通过一些线程的帮助?
当我使用select调用时,我应该考虑什么?
谢谢
注意:我已经阅读了select上的手册页,但我认为我需要更多关于这个主题的帮助。
man 3位置选择
man 2选择
man 2 select_tut
更新:gpio公开在sysfs gpio块中。但我不知道我能不能用这个和select。
我在和pi3B玩的时候发现了一件奇怪的事情。我想在/sys/class/gpio中创建一个文件(只是随便找找,没有具体的原因),但是我的Permission被拒绝了。下面是一些信息。
pi@raspberrypi:/sys/class/gpio $ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi
pi@raspberrypi:/sys/class/gpio $ ls -ld .
drwxrwx--- 2 root gpio 0 May 6 00:28 .
pi
我已经成功地在我的平板电脑上闪现了一个错误的boot.img,现在我不能打开它。(是的,我有一个引导循环)我已经下载了SP闪存工具和原始源代码,但不知怎么我无法从它编译内核……我想,有些东西是缺少的。以下是我迄今所做的工作:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
cd android
tar xvf lenovo_tab_2_a8-50_osc_201505.tar.gz
export ARCH=arm64
ex
我只想知道Linux3.8中是否有一个头文件来描述硬件板(特别是Beaglebone黑板)的GPIO端口。Beaglebone黑板中有四组GPIO,每组中有32组GPIOs。因此,我猜GPIO在GROUP X(0 <= X <= 3) PORT Y (0 <= Y <= 31)中,将映射到GPIO端口(32 * X + Y)。例如,GPIO12 in GROUP1是GPIO44,当我使用Linux时,我们可以使用44个。因此,当我使用一些API(如"gpio_is_valid“)时,我可以将参数设置为44。因为我想为某些设备编写Linux驱动程序,所以我真的需要
我正在尝试一些抖动计时测试,方法是切换GPIO线并在示波器上观察波形。我的内核是用PREEMPT_RT编译的。我希望将进程的调度程序更改为SCHED_FIFO可以减少抖动,但这似乎没有太大的不同。代码如下。在试图从这段代码中获得实时性能时,我是否做错了什么?
// Program to test Linux timing jitter by driving GPIO output via sysfs interface.
// In this variant, the scheduler is changed to SCHED_FIFO.
#include <sys/stat.h>