导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. a614547915
    3. 帖子
    A
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 1472
    • 主题 4
    • 帖子 27
    • 最佳 2
    • 群组 0

    a614547915 发布的帖子

    • 麻雀派T113 连接GT911出现以下状况该怎么去调试

      报警信息6aa5f680-0b1f-4025-a08f-76ee0dc6af9d-image.png
      设备树
      2222c16f-79c6-4ea9-9fef-4317febf5788-image.png
      内核驱动
      db59fbfa-3abb-462e-8c68-64ec1c0e19a7-image.png

      发布在 其它全志芯片讨论区
      A
      a614547915
    • 回复: 屏幕显示不正确之前4.3寸屏幕是可以的

      @evler 那就不清楚了 😥

      发布在 MR Series
      A
      a614547915
    • 回复: 屏幕显示不正确之前4.3寸屏幕是可以的

      @yuzukitsuru 按照 上面回复的 已经解决了 好像芒果哥最新发布的也有这个问题

      发布在 MR Series
      A
      a614547915
    • 回复: 屏幕显示不正确之前4.3寸屏幕是可以的

      直接参考的https://blog.csdn.net/qq_34440409/article/details/122021748 直接将使用方法:
      将 kernel-fix-rgb-lcd-dclk-set-invalid.patch 复制到 lichee/linux-5.4 目录下,运行命令
      git kernel-fix-rgb-lcd-dclk-set-invalid.patch

      将uboot-fix-rgb-lcd-dclk-set-invalid.patch 放置到 lichee/brandy-2.0/u-boot-2018 目录中
      执行 uboot-fix-rgb-lcd-dclk-set-invalid.patch
      即可 使用
      另外我将https://open.allwinnertech.com/#/sdk/0?menuID=36的几个补丁也进行了添加并没有什么用

      发布在 MR Series
      A
      a614547915
    • 回复: 屏幕显示不正确之前4.3寸屏幕是可以的

      @whycan 大佬还是不行按照您昨天的方式还是出现闪烁的情况

      发布在 MR Series
      A
      a614547915
    • 回复: 屏幕显示不正确之前4.3寸屏幕是可以的

      @whycan 可否帮忙看一下

      发布在 MR Series
      A
      a614547915
    • 屏幕显示不正确之前4.3寸屏幕是可以的

      屏幕显示不正确之前4.3寸屏幕是可以的

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 嗯嗯 可以确定 用的是讯为的屏幕

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan

      上面视频体现的是卡顿这个就有一些跳动

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      晕哥求助 在校正的时候就很卡怎么解决

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 7d687cef-0276-4aa4-be93-590a04b477c0-image.png 按照您之前说的 应该不能用TSLIB_TSDEVICE=/dev/input/event2 ts_test这个来测试了

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 8f316523-0f2c-453b-a98b-f939fbf2bdef-1659535290033(1).jpg 不太行

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 没有试过 回去试试

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 在使用 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate校正的时候就很卡,大概得一秒左右才能出坐标

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 谢谢晕哥 我就是按照这个帖子流程来的 现在已经能够触摸但是没有办法确定在LVGL中坐标是否正确,是否有什么办法进行查看现在使用的是lvgl8参考的是链接文本

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 触摸 卡的不像话 现在有没有办法解决 ts.conf 已经调了 但是没有什么改善

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan event0时 先校正了一次 通过TSLIB_TSDEVICE=/dev/input/event0 ts_uinput生成了event2这个通过SLIB_TSDEVICE=/dev/input/event2 ts_calibrate 没有反应

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @a614547915 并且会很卡 getevent xy数据无问题但是lvgl触摸有问题

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      @whycan 在 lvgl电阻触摸 中说:

      CONFIG_INPUT_UINPUT

      好的已经调试出event2 但是新的问题是1659448478785.jpg

      发布在 MR Series
      A
      a614547915
    • 回复: lvgl电阻触摸

      715f8e7b37b4a45aaadd5d0fcc0152a.png

      发布在 MR Series
      A
      a614547915
    • lvgl电阻触摸

      D1s自带的电阻触摸TPADC已经能够做触摸校正,并且ts_test数据也正常现在就是TSLIB_TSDEVICE=/dev/input/event0 ts_uinput报错,是因为什么呢截图如下

      发布在 MR Series
      A
      a614547915
    • 回复: MQ_Pro Tina GPIO驱动

      linux系统操作:
      1.通过make 编译出gpioled.ko文件
      2.通过 /home/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-
      thead_20200702/bin/riscv64-unknown-linux-gnu-gcc -o ledapp ledApp.c 编译出ledgpio 软件
      MQpro:
      1.通过insmod gpioled.ko加载gpioled驱动,通过ls /dev 查看是否有gpioled
      2.通过 chmod 777 ledapp 添加权限
      3.通过 ./ledapp /dev/gpioled 0 点亮LED
      4.通过 ./ledapp /dev/gpioled 1 熄灭LED
      注:以上命令没有跟LED高低电平相对应可以通过修改 gpioled.c led_write函数进行修改就好了

      发布在 MR Series
      A
      a614547915
    • 回复: MQ_Pro Tina GPIO驱动

      ledAPP.c 正点原子原封不动的历程

      #include "stdio.h"
      #include "unistd.h"
      #include "sys/types.h"
      #include "sys/stat.h"
      #include "fcntl.h"
      #include "stdlib.h"
      #include "string.h"
      
      /***************************************************************
      Copyright © ALIENTEK Co., Ltd. 1998-2029. All rights reserved.
      文件名		: ledApp.c
      作者	  	: 左忠凯
      版本	   	: V1.0
      描述	   	: chrdevbase驱测试APP。
      其他	   	: 无
      使用方法	 :./ledtest /dev/led  0 关闭LED
      		     ./ledtest /dev/led  1 打开LED		
      论坛 	   	: www.openedv.com
      日志	   	: 初版V1.0 2019/1/30 左忠凯创建
      ***************************************************************/
      
      #define LEDOFF 	0
      #define LEDON 	1
      /*
       * @description		: main主程序
       * @param - argc 	: argv数组元素个数
       * @param - argv 	: 具体参数
       * @return 			: 0 成功;其他 失败
       */
      
      int main(int argc, char *argv[])
      {
      	int fd, retvalue;
      	char *filename;
      	unsigned char databuf[1];
      	if(argc != 3){
      		printf("Error Usage!\r\n");
      		return -1;
      	}
      	filename = argv[1];
      	/* 打开led驱动 */
      	fd = open(filename, O_RDWR);
      	if(fd < 0){
      		printf("file %s open failed!\r\n", argv[1]);
      		return -1;
      	}
      	databuf[0] = atoi(argv[2]);	/* 要执行的操作:打开或关闭 */
      	/* 向/dev/led文件写入数据 */
      	retvalue = write(fd, databuf, sizeof(databuf));
      	if(retvalue < 0){
      		printf("LED Control Failed!\r\n");
      		close(fd);
      		return -1;
      	}
      	retvalue = close(fd); /* 关闭文件 */
      	if(retvalue < 0){
      		printf("file %s close failed!\r\n", argv[1]);
      		return -1;
      	}
      	return 0;
      }
      
      发布在 MR Series
      A
      a614547915
    • 回复: MQ_Pro Tina GPIO驱动

      Makefile 文件编写 如下:

      KERNELDIR := /home/tina-d1-h/lichee/linux-5.4/
      CURRENT_PATH := $(shell pwd)
      
      CFLAGS= ARCH=riscv CROSS_COMPILE=/home/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-
      obj-m := gpioled.o
      
      build: kernel_modules
      
      kernel_modules:
      	$(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(CURRENT_PATH) modules 
      clean:
      	$(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(CURRENT_PATH) cleanmake
      

      KERNELDIR CFLAGS 路径需要根据自己的路径设置

      发布在 MR Series
      A
      a614547915
    • 回复: MQ_Pro Tina GPIO驱动

      gpioled.c 如下 该文件直接复制 正点原子历程

      #include <linux/types.h>
      
      #include <linux/kernel.h>
      
      #include <linux/delay.h>
      
      #include <linux/ide.h>
      
      #include <linux/init.h>
      
      #include <linux/module.h>
      
      #include <linux/errno.h>
      
      #include <linux/gpio.h>
      
      #include <linux/cdev.h>
      #include <linux/device.h>
      #include <linux/of.h>
      #include <linux/of_address.h>
      #include <linux/of_gpio.h>
      /***************************************************************
      Copyright © ALIENTEK Co., Ltd. 1998-2029. All rights reserved.
      文件名		: gpioled.c
      作者	  	: 左忠凯
      版本	   	: V1.0
      描述	   	: 采用pinctrl和gpio子系统驱动LED灯。
      其他	   	: 无
      论坛 	   	: www.openedv.com
      日志	   	: 初版V1.0 2019/7/13 左忠凯创建
      ***************************************************************/
      #define GPIOLED_CNT			1		  	/* 设备号个数 */
      #define GPIOLED_NAME		"gpioled"	/* 名字 */
      #define LEDOFF 				0			/* 关灯 */
      #define LEDON 				1			/* 开灯 */
      
      /* gpioled设备结构体 */
      struct gpioled_dev{
      	dev_t devid;			/* 设备号 	 */
      	struct cdev cdev;		/* cdev 	*/
      	struct class *class;	/* 类 		*/
      	struct device *device;	/* 设备 	 */
      	int major;				/* 主设备号	  */
      	int minor;				/* 次设备号   */
      	struct device_node	*nd; /* 设备节点 */
      	int led_gpio;			/* led所使用的GPIO编号		*/
      };
      struct gpioled_dev gpioled;	/* led设备 */
      /*
       * @description		: 打开设备
       * @param - inode 	: 传递给驱动的inode
       * @param - filp 	: 设备文件,file结构体有个叫做private_data的成员变量
       * 					  一般在open的时候将private_data指向设备结构体。
       * @return 			: 0 成功;其他 失败
       */
      static int led_open(struct inode *inode, struct file *filp)
      {
      	filp->private_data = &gpioled; /* 设置私有数据 */
      	return 0;
      }
      /*
       * @description		: 从设备读取数据 
       * @param - filp 	: 要打开的设备文件(文件描述符)
       * @param - buf 	: 返回给用户空间的数据缓冲区
       * @param - cnt 	: 要读取的数据长度
       * @param - offt 	: 相对于文件首地址的偏移
       * @return 			: 读取的字节数,如果为负值,表示读取失败
       */
      static ssize_t led_read(struct file *filp, char __user *buf, size_t cnt, loff_t *offt)
      {
      	return 0;
      }
      /*
       * @description		: 向设备写数据 
       * @param - filp 	: 设备文件,表示打开的文件描述符
       * @param - buf 	: 要写给设备写入的数据
       * @param - cnt 	: 要写入的数据长度
       * @param - offt 	: 相对于文件首地址的偏移
       * @return 			: 写入的字节数,如果为负值,表示写入失败
       */
      static ssize_t led_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *offt)
      {
      	int retvalue;
      	unsigned char databuf[1];
      	unsigned char ledstat;
      	struct gpioled_dev *dev = filp->private_data;
      	retvalue = copy_from_user(databuf, buf, cnt);
      	if(retvalue < 0) {
      		printk("kernel write failed!\r\n");
      		return -EFAULT;
      	}
      	ledstat = databuf[0];		/* 获取状态值 */
      	if(ledstat == LEDON) {	
      		gpio_set_value(dev->led_gpio, 0);	/* 打开LED灯 */
      	} else if(ledstat == LEDOFF) {
      
      		gpio_set_value(dev->led_gpio, 1);	/* 关闭LED灯 */
      	}
      	return 0; 
      }
      /*
       * @description		: 关闭/释放设备
       * @param - filp 	: 要关闭的设备文件(文件描述符)
       * @return 			: 0 成功;其他 失败
       */
      static int led_release(struct inode *inode, struct file *filp)
      {
      	return 0;
      }
      /* 设备操作函数 */
      static struct file_operations gpioled_fops = {
      	.owner = THIS_MODULE,
      	.open = led_open,
      	.read = led_read,
      	.write = led_write,
      	.release = 	led_release,
      };
      /*
       * @description	: 驱动出口函数
       * @param 		: 无
       * @return 		: 无
       */
      static int __init led_init(void)
      {
      	int ret = 0;
      	ret = ret;
      	/* 设置LED所使用的GPIO */
      	/* 1、获取设备节点:gpioled */
      	gpioled.nd = of_find_node_by_path("/gpioled");
      	if(gpioled.nd == NULL) {
      		printk("gpioled node not find!\r\n");
      		return -EINVAL;
      	} else {
      		printk("gpioled node find!\r\n");
      	} 
      	/* 2、 获取设备树中的gpio属性,得到LED所使用的LED编号 */
      	gpioled.led_gpio = of_get_named_gpio(gpioled.nd, "gpios", 0);
      	if(gpioled.led_gpio < 0) {
      		printk("can't get led-gpio");
      		return -EINVAL;
      	}
      	printk("led-gpio num = %d\r\n", gpioled.led_gpio);
      	/* 3、设置GPIO1_IO03为输出,并且输出高电平,默认关闭LED灯 */
      	ret = gpio_direction_output(gpioled.led_gpio, 0);
      	if(ret < 0) {
      		printk("can't set gpio!\r\n");
      	} 
      	/* 注册字符设备驱动 */
      	/* 1、创建设备号 */
      	if (gpioled.major) {		/*  定义了设备号 */
      		gpioled.devid = MKDEV(gpioled.major, 0);
      		register_chrdev_region(gpioled.devid, GPIOLED_CNT, GPIOLED_NAME);
      	} else {						/* 没有定义设备号 */
      		alloc_chrdev_region(&gpioled.devid, 0, GPIOLED_CNT, GPIOLED_NAME);	/* 申请设备号 */
      		gpioled.major = MAJOR(gpioled.devid);	/* 获取分配号的主设备号 */
      		gpioled.minor = MINOR(gpioled.devid);	/* 获取分配号的次设备号 */
      	}
      	printk("gpioled major=%d,minor=%d\r\n",gpioled.major, gpioled.minor);	
      	/* 2、初始化cdev */
      	gpioled.cdev.owner = THIS_MODULE;
      	cdev_init(&gpioled.cdev, &gpioled_fops);
      	/* 3、添加一个cdev */
      	cdev_add(&gpioled.cdev, gpioled.devid, GPIOLED_CNT);
      	/* 4、创建类 */
      	gpioled.class = class_create(THIS_MODULE, GPIOLED_NAME);
      	if (IS_ERR(gpioled.class)) {
      		return PTR_ERR(gpioled.class);
      	}
      	/* 5、创建设备 */
      	gpioled.device = device_create(gpioled.class, NULL, gpioled.devid, NULL, GPIOLED_NAME);
      	if (IS_ERR(gpioled.device)) {
      		return PTR_ERR(gpioled.device);
      	}
      	return 0;
      }
      
      static void __exit led_exit(void)
      {
      	/* 注销字符设备驱动 */
      	cdev_del(&gpioled.cdev);/*  删除cdev */
      	unregister_chrdev_region(gpioled.devid, GPIOLED_CNT); /* 注销设备号 */
      	device_destroy(gpioled.class, gpioled.devid);
      	class_destroy(gpioled.class);
      }
      module_init(led_init);
      module_exit(led_exit);
      MODULE_LICENSE("GPL");
      MODULE_AUTHOR("zuozhongkai");
      
      发布在 MR Series
      A
      a614547915
    • 回复: MQ_Pro Tina GPIO驱动

      linxu系统操作
      编译 Lina :

      1. 首先执行 source build/envsetup.sh 提示 Setup env done! Please run lunch next.
      2. 输入 lunch d1-h_nezha-tina
      3. make -j32
      4. 执行 pack打包
        MQ_pro操作
        1.下载至SD卡启动
        2.通过ls /proc/device-tree/ 命令查看是否有 “gpioled”节点
      发布在 MR Series
      A
      a614547915
    • MQ_Pro Tina GPIO驱动

      设备树根目录添加

      led: gpioled{
      		device_type = "gpioled";
      		compatible = "gpio-led";
      		gpios = <&pio PD 18 GPIO_ACTIVE_HIGH>;
      		status	= "okay";
      	};
      
      发布在 MR Series
      A
      a614547915
    • 1 / 1