&引用;调用;来自设备驱动程序的特定功能';s C代码

&引用;调用;来自设备驱动程序的特定功能';s C代码,c,linux,linux-kernel,raspberry-pi,embedded-linux,C,Linux,Linux Kernel,Raspberry Pi,Embedded Linux,如果我用C编写了一个可以控制RPI上GPIO的设备驱动程序的代码,那么我如何能够从我的C代码中实际调用一个函数,例如ssize\t mygpio\u write(struct file*filep,const char\u user*ubuf,size\t count,loff\u*f\u pos)来打开LED 我知道我可以/必须这样做 在C文件上执行Makefile 使用insmod插入模块,如“name.ko” 我可以使用cat/dev/name 使用rmmod删除诸如“name.ko”之

如果我用C编写了一个可以控制RPI上GPIO的设备驱动程序的代码,那么我如何能够从我的C代码中实际调用一个函数,例如
ssize\t mygpio\u write(struct file*filep,const char\u user*ubuf,size\t count,loff\u*f\u pos)
来打开LED

我知道我可以/必须这样做

  • 在C文件上执行Makefile
  • 使用
    insmod
    插入模块,如“name.ko”
  • 我可以使用
    cat/dev/name
  • 使用
    rmmod
    删除诸如“name.ko”之类的模块
但除此之外,我不知道如何为驱动程序提供某些“参数”,以便例如控制RPI上的GPIO


另外请注意:我也知道主数字和次数字是什么,但我不知道是否必须使用它们从代码中调用函数或控制GPIO。

这可能是一个过于宽泛的主题。建议你仔细阅读。有一种定义明确的方法可以将LED暴露给用户区域。@kaylum我不是说raspberry pi上的LED。我是指连接到GPIO引脚的LED。不帮忙?我不是Linux驱动程序方面的专家,但我认为ioctl是访问驱动程序函数的方法。为自定义服务分配任意号码,并从用户空间调用它们。对于LED,LED子系统具有自己的ABI,以及许多其他功能。使用
libgpiod
工具可以实现简单的GPIO使用。