您尚未登录。

楼主 #1 2018-11-11 10:56:08

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

v3s实现流水灯显示

请问一下,我想在v3s板子上实现流水灯显示,修改驱动能实现吗?

离线

楼主 #3 2018-11-11 11:20:58

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

晕哥 说:

https://blog.csdn.net/lu_embedded/article/details/53061901

Linux下用文件IO的方式操作GPIO(/sys/class/gpio)

谢谢晕哥

离线

楼主 #4 2018-11-11 15:53:03

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

现在led灯常亮,我想实现led闪烁状态,是应该去改leds-gpio.c文件和相应的dts和dtsi文件来实现?

离线

楼主 #6 2018-11-11 16:34:58

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

用户层操作是指直接在开发板上操作?

离线

楼主 #9 2018-11-11 21:15:32

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

green_led {
			label = "licheepi:green:usr";
			gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
			default-state = "on";
		};

.dts文件中关于led灯的描述,其中gpios中的6是第6个gpio?那么0是指什么....

离线

楼主 #10 2018-11-11 21:50:08

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

怎么找到led对应的gpio引脚编号....

离线

楼主 #12 2018-11-11 22:26:05

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

晕哥 说:

算出来的,比如 

PB5 = 32*1 + 5
PC6= 32*2 + 6

_20181111221927.png

gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; * PG0 *

如果我没看错原理图的话,led应该用的PG0,那应该是32+0?但我给gpio32输值没反应...

离线

楼主 #14 2018-11-11 23:05:14

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

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,板子依旧会亮绿灯,这是为什么?

离线

楼主 #18 2018-11-12 22:18:40

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

通过应用层控制gpio引脚已经可以实现led灯的闪烁,如果我想把led闪烁功能做成一个新的驱动模块,大致流程能说一下吗?

离线

楼主 #20 2018-11-14 17:11:40

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

我想交叉编译一个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改了各种版本也不行,会是什么问题?

离线

楼主 #21 2018-11-14 22:40:13

605364021
会员
注册时间: 2018-10-23
已发帖子: 251
积分: 251

Re: v3s实现流水灯显示

我想交叉编译一个可以在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写得有问题?

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn