请问一下,我想在v3s板子上实现流水灯显示,修改驱动能实现吗?
离线
https://blog.csdn.net/lu_embedded/article/details/53061901
Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
谢谢晕哥
离线
现在led灯常亮,我想实现led闪烁状态,是应该去改leds-gpio.c文件和相应的dts和dtsi文件来实现?
离线
用户层操作是指直接在开发板上操作?
离线
green_led {
label = "licheepi:green:usr";
gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
default-state = "on";
};
.dts文件中关于led灯的描述,其中gpios中的6是第6个gpio?那么0是指什么....
离线
怎么找到led对应的gpio引脚编号....
离线
算出来的,比如
PB5 = 32*1 + 5
PC6= 32*2 + 6
gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; * PG0 *
如果我没看错原理图的话,led应该用的PG0,那应该是32+0?但我给gpio32输值没反应...
离线
leds {
compatible = "gpio-leds";
blue_led {
label = "licheepi:blue:usr";
gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
};
green_led {
label = "licheepi:green:usr";
gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
default-state = "on"; //default状态表示设备处于active时的状态
};
red_led {
label = "licheepi:red:usr";
gpios = <&pio 6 2 GPIO_ACTIVE_LOW>; /* PG2 */
};
};
谢谢解答,我还有个不懂的地方,我把default-state = “on” 放到blue_led节点上,重新生成dtb文件,但是板子上电还是亮的绿灯,我去掉defalut-state,板子依旧会亮绿灯,这是为什么?
离线
通过应用层控制gpio引脚已经可以实现led灯的闪烁,如果我想把led闪烁功能做成一个新的驱动模块,大致流程能说一下吗?
离线
我想交叉编译一个helloworld.ko模块至v3s板子,我的Makefile是这样写
CROSS_COMPLE:=arm-linux-gnueabihf-
ARCH:=arm
CC:=$(CROSS_COMPILE)gcc
LD:=$(CROSS_COMPILE)ld
obj-m := helloworld.o
KDIR := /home/zhang/linux //内核所在目录
PWD := $(shell pwd)
defaule:
make -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) modules clean
编译命令是make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
但是一编译出来,各种提示头文件错误。我按照别人Makefile改了各种版本也不行,会是什么问题?
离线
我想交叉编译一个可以在v3s开发板上运行hello.ko内核模块,下面分别是我的.C文件和Makefile文件
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int hello_init(void)
{
printk(KERN_INFO "Hello world enter\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_INFO "Hello world exit\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("A simple hello worild Module");
MODULE_ALIAS("a simplest module");
KERNELDIR:=/home/zhang/linux
obj-m += hello.o
default:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules clean
我用的编译命令是make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
我进行编译是出现的大量的warning和error,能帮忙看下代码,是不是Makefile写得有问题?
离线