导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. ddrddr
    3. 帖子
    D
    • 资料
    • 关注 0
    • 粉丝 2
    • 我的积分 1941
    • 主题 29
    • 帖子 33
    • 最佳 7
    • 群组 0

    ddrddr 发布的帖子

    • 回复: 付費開發 - 需要幫助!(R128-S2/3)

      @gharibi nihao

      发布在 A Series
      D
      ddrddr
    • 百问网D1开发板HDMI、IR、WIFI 适配

      HDMI、IR、WIFI 适配

      • DTS 文件
        • ./device/config/chips/d1-h/configs/nezha/uboot-board.dts
        • ./device/config/chips/d1-h/configs/nezha/linux-5.4/board.dts
      • 分区文件
        • ./target/allwinner/d1-h-nezha/swupdate/sys_partition_ab.fex

      默认 HDMI 输出

      这里我希望开机就是默认输出到 HDMI,需要对 ./device/config/chips/d1-h/configs/nezha/uboot-board.dts 进行修改

      对 uboot-board.dts 中的 disp 节的代码进行修改,patch 文件如下,把默认的输出设备改为 HDMI 输出

      diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts
      index 81a521e..ca1b898 100644
      --- a/configs/nezha/uboot-board.dts
      +++ b/configs/nezha/uboot-board.dts
      @@ -214,31 +214,29 @@
       	disp_init_enable         = <1>;
       	disp_mode                = <0>;
       
      -	screen0_output_type      = <1>;
      -	screen0_output_mode      = <4>;
      -
      -	screen1_output_type      = <3>;
      -	screen1_output_mode      = <10>;
      -
      -	screen1_output_format    = <0>;
      -	screen1_output_bits      = <0>;
      -	screen1_output_eotf      = <4>;
      -	screen1_output_cs        = <257>;
      -	screen1_output_dvi_hdmi  = <2>;
      -	screen1_output_range     = <2>;
      -	screen1_output_scan      = <0>;
      -	screen1_output_aspect_ratio = <8>;
      -
      -	dev0_output_type         = <1>;
      -	dev0_output_mode         = <4>;
      -	dev0_screen_id           = <0>;
      -	dev0_do_hpd              = <0>;
      -
      -	dev1_output_type         = <4>;
      -	dev1_output_mode         = <10>;
      -	dev1_screen_id           = <1>;
      -	dev1_do_hpd              = <1>;
      +	screen0_output_type      = <3>;
      +	screen0_output_mode      = <10>;
       
      +	screen1_output_type      = <1>;
      +    screen1_output_mode      = <4>;
      +
      +    screen0_output_format = <0>;
      +    screen0_output_bits = <0>;
      +    screen0_output_eotf = <4>;
      +    screen0_output_cs = <257>;
      +    screen0_output_dvi_hdmi = <2>;
      +    screen0_output_range = <2>;
      +    screen0_output_scan = <0>;
      +    screen0_output_aspect_ratio = <8>;
      +
      +
      +    dev0_output_type         = <4>;
      +
      +
      +
      +
      +	dev0_output_mode         = <10>;	dev0_screen_id           = <0>;
      +	dev0_do_hpd              = <1>;
       	def_output_dev           = <0>;
       	hdmi_mode_check          = <1>;
      

      Wi-Fi、IR 适配

      查看核心板的原理图可以看到 XR829 蓝牙+WiFi 模块的 WL_REG_ON 管脚需要修改,在 SDK 原本的设备树中 WL_REG_ON 管脚是 PG12,但是开发板的管脚是 PB12

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      红外接收头的输入管脚接到的是 PG16,和 SDK 原本的 PB12 不同,也需要修改

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      board.dts 的 patch 文件如下

      diff --git a/configs/nezha/linux-5.4/board.dts b/configs/nezha/linux-5.4/board.dts
      old mode 100755
      new mode 100644
      index 963aa17..15eed8c
      --- a/configs/nezha/linux-5.4/board.dts
      +++ b/configs/nezha/linux-5.4/board.dts
      @@ -464,14 +464,14 @@
       */
       
       	s_cir0_pins_a: s_cir@0 {
      -		pins = "PB12";
      +		pins = "PG16";
       		function = "ir";
       		drive-strength = <10>;
       		bias-pull-up;
       	};
       
       	s_cir0_pins_b: s_cir@1 {
      -		pins = "PB12";
      +		pins = "PG16";
       		function = "gpio_in";
       	};
       
      @@ -566,7 +566,7 @@
       			clock-names = "32k-fanout1";
       			clocks = <&ccu CLK_FANOUT1_OUT>;
       			wlan_busnum    = <0x1>;
      -			wlan_regon    = <&pio PG 12 GPIO_ACTIVE_HIGH>;
      +			wlan_regon    = <&pio PB 12 GPIO_ACTIVE_HIGH>;
       			wlan_hostwake  = <&pio PG 10 GPIO_ACTIVE_HIGH>;
       			/*wlan_power    = "VCC-3V3";*/
       			/*wlan_power_vol = <3300000>;*/
      @@ -1391,7 +1391,7 @@ pull up or pull down(default 0), driver level(default 1), data>
       	pinctrl-names = "default", "sleep";
       	pinctrl-0 = <&s_cir0_pins_a>;
       	pinctrl-1 = <&s_cir0_pins_b>;
      -	status = "disabled";
      +	status = "okay";
       };
       
       &ir1 {
      

      修改完了设备树后还需要修改一下 menuconfig 的配置,执行下面命令打开 kernel 的 menuconfig 的窗口

      make kernel_menuconfig
      

      然后使用 / 键进入搜索,搜索 IR_RX_SUNXI,可以看到我这里已经使能了,SDK 默认可能是没有使能的,需要修改下,前面标有(1),按下数字 1 键就可以跳转到这个位置

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      这时红外功能就可以用了,后续会注册到 /dev/input/event* 中

      核心板的 Wi-Fi 模块有可能会是 24MHz 的晶振,而 SDK 默认的是 40MHz 的,需要修改下,运行命令打开 menuconfig

      make menuconfig
      

      使用 / 进入搜索模式,搜索 XR829,把 kmod-net-xr829-40M 改成 kmod-net-xr829

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      失能掉 xr829 with 40M sdd

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      确保 xr829-firmware 是使能的

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      然后退出保存即可。

      烧录测试

      在 SDK 根目录以此运行如下命令完成编译和打包

      source build/envsetup.sh
      lunch
      make -j99
      pack
      

      将 Ubuntu 虚拟机编译出的镜像传输到 Windows 实体机中

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      烧录到开发板中

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      启动开发板,./device/config/chips/d1-h/configs/nezha/configs/bootlogo.bmp

      通过 HDMI 采集器可以看到在开发板启动的时候默认进入了 HDMI 的显示了

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      ifconfig 命令查看网卡,可以看到 wlan0 了,使用 wifi_connect_ap_test 命令连接到 Wi-Fi

      wifi_connect_ap_test [ssid] [passwd]
      

      命令尝试连接到一个 Wi-Fi,连接完后尝试 ping 百度来看看

      ping baidu.com -Iwlan0
      

      可以看到通过 Wi-Fi 可以正常访问到互联网了

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      再看看红外 O不OK

      cat /proc/bus/input/devices
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      可以看到红外的输入对应的是 event1,然后使用 hexdump 查看下输出

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      发布在 MR Series
      D
      ddrddr
    • 提高香橙派GPIO最高速率

      使用香橙派zero3,最高只能达到5MHz的信号,请问如何提高gpio速率?

      这个速率是参照网上树莓派的实现方法,直接对gpio写操作的寄存器循环进行写1和0。但只能产生最高5MHz的方波,即仅10MHz的写。函数是参照writeR实现的,在它单次写寄存器的基础上加了小循环写。用示波器可见5MHz方波。

      但实际需要30MHz的频率,请问zero3如何支持?需要修改APB频率吗?还是说h618芯片不支持这么高的频率呢

      发布在 H/F/TV Series
      D
      ddrddr
    • 回复: D1-H的datasheet

      坑网热心网友提供的D1-H资料:https://whycan.com/t_6440.html

      发布在 MR Series
      D
      ddrddr
    • 飞凌OKT507C在安卓系统启动时如何设置GPIO口为高电平

      使用PE20/21为新的GPIO口,设置GPIO148/149在init为高电平时不生效。
      例如在OKT507-C-Common.dtsi文件设置:GPIO148 = <&pio PE 20 1 2 0 1>;
      进入串口后使用cd /sys/class/gpio/gpio148后,用cat value读取电平值还是0,无法设置生效。

      发布在 飞凌嵌入式专区
      D
      ddrddr
    • 关于T113-i的核心板GPIO号查询和/sys/class/spidev目录下找不到设备

      关于T113-i的核心板,我有2个问题请教:

      1、各个引脚对应的GPIO号如何查询,第49脚(U1/<PE1/NCSI0_VSYNC/UART2_CTS/TWI1_SDA/LCD0_VSYNC/RGMII_RXD0/RMII_RXD0/PE_EINT1>/3V3)我想拉高。

      2、在/sys/class/spidev目录下找不到设备,是spi驱动没做吗,还是我需要进行什么操作才会显示设备?

      发布在 创龙科技专区
      D
      ddrddr
    • 想给R128移植上LVGL按照教程结果失败

      使用官方制作的虚拟机对照教程为啥编译LVGL这个都出错,怎么解

      微信图片_20231016104457.png

      Q微信图片_20231016104501.png

      微信图片_20231016104503.png

      发布在 A Series
      D
      ddrddr
    • R128的屏幕颜色显示异常时怎么回事?

      全志在线R128文档里的SPI LCD屏幕的内容(https://r128.docs.aw-ol.com/demo/spilcd/)

      按照demo,SPILCD这个demo应该是输出紫色,而文档却说输出了黄色,这是怎么回事?

      BC870202-BB49-4172-9321-8407501DDA35.png

      看到图片好像真的是黄色

      发布在 A Series
      D
      ddrddr
    • T113Pro开发板,改成TF卡启动后,系统分区异常

      现象:
      如题,一开始我用的是NAND启动,但是由于要添加lib库(NAND-Flash的空间不够),所以改成了TF卡。
      但是我根据说明,更改“sys_partition.fex”文件后,没有任何作用,并且通过“df -h”命令查看存储空间时,发现系统分区只剩下“/dev/root 和 tmpfs”了。

      b77ea38ee2619eb6b7c493b1001057f521766f13.png

      46d296335b2cdc1755e614fc8bad61bf17118a4c.png

      74771e9f5c3b507a1b125e0f580723898d057998_2_634x500.png

      疑问:
      1、为什么我更改“sys_partition.fex”文件后,没有任何作用;
      2、我该怎么对存储空间进行具体分区,并且保证“/usr/lib”目录有足够空间存放库文件;
      3、我把开发板上的NAND换成256MB的,需要进行哪些配置步骤。

      发布在 其它全志芯片讨论区
      D
      ddrddr
    • 韦东山官网提供的 T113SDK , tina-d1-h测试WIFI 和4G的方法好像与原来buildroot_100ask_t113-pro 的测试方法不一样吧

      我在测试 韦东山官网提供的 T113SDK , tina-d1-h, 这个SDK,测试WIFI 和4G的方法好像与原来buildroot_100ask_t113-pro 的测试方法不一样吧?有怎么连接WIFI, 4G的说明吗?

      QQ图片20230922102512.jpg

      发布在 MR Series
      D
      ddrddr
    • V853显示屏无法直接显示图片

      V853的芯片,接的是800*480的RGB屏幕。QT是可以正常显示的。从网上找了个通过fb的ioctrl去显示bmp图片的程序,执行后不论是什么图片都是显示黑屏。同样的应用程序在 V3S+同样的屏幕 是可以正常显示bmp图片的。也有用过fbv去显示图片,fbv xxxx.bmp 但也是显示全黑。
      有没有遇到同样问题的朋友帮忙解答一下呢?
      以下是显示bmp图片的应用程序:

      ···
      #include <unistd.h>
      #include <stdio.h>
      #include <stdlib.h>
      #include <fcntl.h>
      #include <string.h>
      #include <linux/fb.h>
      #include <sys/mman.h>
      #include <sys/ioctl.h>
      #include <arpa/inet.h>
      #include <errno.h>
      
      //14byte文件头
      typedef struct
      {
      	char cfType[2];  //文件类型,"BM"(0x4D42)
      	int  cfSize;     //文件大小(字节)
      	int  cfReserved; //保留,值为0
      	int  cfoffBits;  //数据区相对于文件头的偏移量(字节)
      }__attribute__((packed)) BITMAPFILEHEADER;
      //__attribute__((packed))的作用是告诉编译器取消结构在编译过程中的优化对齐
      
      //40byte信息头
      typedef struct
      {
      	char ciSize[4];          //BITMAPFILEHEADER所占的字节数
      	int  ciWidth;            //宽度
      	int  ciHeight;           //高度
      	char ciPlanes[2];        //目标设备的位平面数,值为1
      	int  ciBitCount;         //每个像素的位数
      	char ciCompress[4];      //压缩说明
      	char ciSizeImage[4];     //用字节表示的图像大小,该数据必须是4的倍数
      	char ciXPelsPerMeter[4]; //目标设备的水平像素数/米
      	char ciYPelsPerMeter[4]; //目标设备的垂直像素数/米
      	char ciClrUsed[4];       //位图使用调色板的颜色数
      	char ciClrImportant[4];  //指定重要的颜色数,当该域的值等于颜色数时(或者等于0时),表示所有颜色都一样重要
      }__attribute__((packed)) BITMAPINFOHEADER;
      
      typedef struct
      {
      	unsigned char blue;
      	unsigned char green;
      	unsigned char red;
      	unsigned char reserved;
      }__attribute__((packed)) PIXEL; //颜色模式RGB
      
      
      
      typedef struct
      {
      	int          fbfd;
      	char         *fbp;
      	unsigned int xres;
      	unsigned int yres;
      	unsigned int xres_virtual;
      	unsigned int yres_virtual;
      	unsigned int xoffset;
      	unsigned int yoffset;
      	unsigned int bpp;
      	unsigned long line_length;
      	unsigned long size;
      
      	struct fb_bitfield red;
      	struct fb_bitfield green;
      	struct fb_bitfield blue;
      } FB_INFO;
      
      typedef struct
      {
      	unsigned int width;
      	unsigned int height;
      	unsigned int bpp;
      	unsigned long size;
      	unsigned int data_offset;
      } IMG_INFO;
      
      
      
      FB_INFO fb_info;
      IMG_INFO img_info;
      
      int show_bmp(char *img_name);
      
      static int cursor_bitmap_format_convert(char *dst,char *src, unsigned long img_len_one_line)
      {
      	int img_len ,fb_len ;
      	char *p;
      	__u32 val;
      	PIXEL pix;
      
      	p = (char *)&val;
      
      	img_len = img_info.width; /*一行图片的长度*/
      	fb_len = fb_info.xres; /*一行显示屏的长度*/
      
      	/*进行x轴的偏移*/
      	dst += fb_info.xoffset * (fb_info.bpp / 8);
      	fb_len -= fb_info.xoffset;
      
      	/*bmp 数据是上下左右颠倒的,这里只进行左右的处理*/
      	/*先定位到图片的最后一个像素的地址,然后往第一个像素的方向处理,进行左右颠倒的处理*/
      	src += img_len_one_line - 1;
      
      	/*处理一行要显示的数据*/
      	while(1) {
      		if (img_info.bpp == 32)
      			pix.reserved = *(src--);
      		pix.red   = *(src--);
      		pix.green = *(src--);
      		pix.blue  = *(src--);
      
      		val = 0x00;
      		val |= (pix.red >> (8 - fb_info.red.length)) << fb_info.red.offset;
      		val |= (pix.green >> (8 - fb_info.green.length)) << fb_info.green.offset;
      		val |= (pix.blue >> (8 - fb_info.blue.length)) << fb_info.blue.offset;
      		val = 0x000000;
      
      
      		if (fb_info.bpp == 16) {
      			*(dst++) = *(p + 0);
      			*(dst++) = *(p + 1);
      		}
      		else if (fb_info.bpp == 24) {
      			*(dst++) = *(p + 0);
      			*(dst++) = *(p + 1);
      			*(dst++) = *(p + 2);
      		}
      		else if (fb_info.bpp == 32) {
      			*(dst++) = *(p + 0);
      			*(dst++) = *(p + 1);
      			*(dst++) = *(p + 2);
      			*(dst++) = *(p + 3);
      		}
      
      		/*超过图片长度或显示屏长度认为一行处理完了*/
      		img_len--;
      		fb_len--;
      		if (img_len <= 0 || fb_len <= 0)
      			break;
      	}
      #if 0
      	printf("r = %d\n", pix.red);
      	printf("g = %d\n", pix.green);
      	printf("b = %d\n", pix.blue);
      #endif
      	return 0;
      }
      
      int show_bmp(char *img_name)
      {
      
      	FILE *fp;
      	int ret = 0;
      	BITMAPFILEHEADER FileHead;
      	BITMAPINFOHEADER InfoHead;
      
      	if(img_name == NULL) {
      		printf("img_name is null\n");
      		return -1;
      	}
      
      	fp = fopen( img_name, "rb" );
      	if(fp == NULL) {
      		printf("img[%s] open failed\n", img_name);
      		ret = -1;
      		goto err_showbmp;
      	}
      
      	/* 移位到文件头部 */
      	fseek(fp, 0, SEEK_SET);
      
      	ret = fread(&FileHead, sizeof(BITMAPFILEHEADER), 1, fp);
      	if ( ret != 1) {
      		printf("img read failed\n");
      		ret = -1;
      		goto err_showbmp;
      	}
      
      	//检测是否是bmp图像
      	if (memcmp(FileHead.cfType, "BM", 2) != 0) {
      		printf("it's not a BMP file[%c%c]\n", FileHead.cfType[0], FileHead.cfType[1]);
      		ret = -1;
      		goto err_showbmp;
      	}
      
      	ret = fread( (char *)&InfoHead, sizeof(BITMAPINFOHEADER),1, fp );
      	if ( ret != 1) {
      		printf("read infoheader error!\n");
      		ret = -1;
      		goto err_showbmp;
      	}
      
      	img_info.width       = InfoHead.ciWidth;
      	img_info.height      = InfoHead.ciHeight;
      	img_info.bpp         = InfoHead.ciBitCount;
      	img_info.size        = FileHead.cfSize;
      	img_info.data_offset = FileHead.cfoffBits;
      
      	printf("img info w[%d] h[%d] bpp[%d] size[%ld] offset[%d]\n", img_info.width, img_info.height, img_info.bpp, img_info.size, img_info.data_offset);
      
      	if (img_info.bpp != 24 && img_info.bpp != 32) {
      		printf("img bpp is not 24 or 32\n");
      		ret = -1;
      		goto err_showbmp;
      	}
      
      
      	/*
      	 *一行行处理
      	 */
      	char *buf_img_one_line;
      	char *buf_fb_one_line;
      	char *p;
      	int fb_height;
      
      	long img_len_one_line = img_info.width * (img_info.bpp / 8);
      	long fb_len_one_line = fb_info.line_length;
      
      //	printf("img_len_one_line = %d\n", img_len_one_line);
      //	printf("fb_len_one_line = %d\n", fb_info.line_length);
      
      	buf_img_one_line = (char *)calloc(1, img_len_one_line + 256);
      	if(buf_img_one_line == NULL) {
      		printf("alloc failed\n");
      		ret = -1;
      		goto err_showbmp;
      	}
      
      	buf_fb_one_line = (char *)calloc(1, fb_len_one_line + 256);
      	if(buf_fb_one_line == NULL) {
      		printf("alloc failed\n");
      		ret = -1;
      		goto err_showbmp;
      	}
      
      
      	fseek(fp, img_info.data_offset, SEEK_SET);
      
      	p = fb_info.fbp + fb_info.yoffset * fb_info.line_length; /*进行y轴的偏移*/
      	fb_height = fb_info.yres;
      	while (1) {
      		memset(buf_img_one_line, 0, img_len_one_line);
      		memset(buf_fb_one_line, 0, fb_len_one_line);
      		ret = fread(buf_img_one_line, 1, img_len_one_line, fp);
      		if (ret < img_len_one_line) {
      			/*图片读取完成,则图片显示完成*/
      			printf("read to end of img file\n");
      			cursor_bitmap_format_convert(buf_fb_one_line, buf_img_one_line, img_len_one_line); /*数据转换*/
      			memcpy(fb_info.fbp, buf_fb_one_line, fb_len_one_line);
      			break;
      		}
      
      		cursor_bitmap_format_convert(buf_fb_one_line, buf_img_one_line, img_len_one_line); /*数据转换*/
      		memcpy(p, buf_fb_one_line, fb_len_one_line); /*显示一行*/
      		p += fb_len_one_line;
      
      		/*超过显示屏宽度认为图片显示完成*/
      		fb_height--;
      		if (fb_height <= 0)
      			break;
      	}
      
      	free(buf_img_one_line);
      	free(buf_fb_one_line);
      
      	fclose(fp);
      	return ret;
      err_showbmp:
      	if (fp)
      		fclose(fp);
      	return ret;
      }
      
      int show_picture(char *img_name)
      {
      	struct fb_var_screeninfo vinfo;
      	struct fb_fix_screeninfo finfo;
      
      	if (fb_info.fbfd <= -1) {
      		printf("fb open fialed\n");
      		return -1;
      	}
      
      	if (ioctl(fb_info.fbfd, FBIOGET_FSCREENINFO, &finfo)) {
      		printf("fb ioctl fialed\n");
      		return -1;
      	}
      
      	if (ioctl(fb_info.fbfd, FBIOGET_VSCREENINFO, &vinfo)) {
      		printf("fb ioctl fialed\n");
      		return -1;
      	}
      
      	fb_info.xres = vinfo.xres;
      	fb_info.yres = vinfo.yres;
      	fb_info.xres_virtual = vinfo.xres_virtual;
      	fb_info.yres_virtual = vinfo.yres_virtual;
      	fb_info.xoffset = vinfo.xoffset;
      	fb_info.yoffset = vinfo.yoffset;
      	fb_info.bpp  = vinfo.bits_per_pixel;
      	fb_info.line_length = finfo.line_length;
      	fb_info.size = finfo.smem_len;
      
      	memcpy(&fb_info.red, &vinfo.red, sizeof(struct fb_bitfield));
      	memcpy(&fb_info.green, &vinfo.green, sizeof(struct fb_bitfield));
      	memcpy(&fb_info.blue, &vinfo.blue, sizeof(struct fb_bitfield));
      
      #if 1
      	printf("fb info x[%d] y[%d] x_v[%d] y_v[%d] xoffset[%d] yoffset[%d] bpp[%d] line_length[%ld] size[%ld]\n", fb_info.xres, fb_info.yres, fb_info.xres_virtual, fb_info.yres_virtual, fb_info.xoffset, fb_info.yoffset, fb_info.bpp, fb_info.line_length, fb_info.size);
      
      	printf("fb info red off[%d] len[%d] msb[%d]\n", fb_info.red.offset, fb_info.red.length, fb_info.red.msb_right);
      	printf("fb info green off[%d] len[%d] msb[%d]\n", fb_info.green.offset, fb_info.green.length, fb_info.green.msb_right);
      	printf("fb info blue off[%d] len[%d] msb[%d]\n", fb_info.blue.offset, fb_info.blue.length, fb_info.blue.msb_right);
      #endif
      
      	if (fb_info.bpp != 16 && fb_info.bpp != 24 && fb_info.bpp != 32) {
      		printf("fb bpp is not 16,24 or 32\n");
      		return -1;
      	}
      
      	if (fb_info.red.length > 8 || fb_info.green.length > 8 || fb_info.blue.length > 8) {
      		printf("fb red|green|blue length is invalid\n");
      		return -1;
      	}
      
      	// 内存映射
      	fb_info.fbp = (char *)mmap(0, fb_info.size, PROT_READ | PROT_WRITE, MAP_SHARED, fb_info.fbfd, 0);
      	if (fb_info.fbp == (char *)-1) {
      		printf("mmap fialed\n");
      		return -1;
      	}
      
      	show_bmp(img_name);
      
      	//删除映射
      	munmap(fb_info.fbp, fb_info.size);
      
      	return 0;
      }
      
      
      int main(int argc, char **argv)
      {
      	char img_name[64];
      
      	if (argc != 2) {
      		printf("arg error\n");
      		return 0;
      	}
      
      	snprintf(img_name, sizeof(img_name), "%s", argv[1]);
      	printf("img_name = %s\n", img_name);
      
      	fb_info.fbfd = open("/dev/fb0", O_RDWR);
      	if (!fb_info.fbfd) {
      		printf("Error: cannot open framebuffer device(/dev/fb0).\n");
      		return -1;
      	}
      	show_picture(img_name);
      
      	close(fb_info.fbfd);
      		return 0;
      }
      ···
      

      只能是通过QT显示图片后,将/dev/fb0里面的数据抓出来,要显示的时候再cat这个数据到fb0里显示。有哪位大神知道是什么原因导致的吗?

      发布在 V Series
      D
      ddrddr
    • 开发板上不能运行应用程序提示not found

      应用程序出错.png

      这个看网上说是缺少库,在虚拟机下执行readelf -l demo, 提示require libc.so.6和libm.so.6,
      我尝试从虚拟机的arm-linux-gnueabi的库里复制到rootfs的lib中,没有解决。

      希望路过的大师们能指点迷津,感谢!

      发布在 MR Series
      D
      ddrddr
    • A40i将hdmi输出改为 tft_lcd

      我a40i 的sdk 刚开始编译的时候./build.sh config 显示选的是 0 hdmi ,我现在想把之前选的hdmi输出改为 tft_lcd,重新执行./build.sh config 选择 4 tft_lcd,但是不起作用,编出来的固件显示输出还是hdmi,

      刚才又重复./build.sh config了好几次了,都没生效,fex文件已经加载 sys_config_tft_lcd.fex 的配置信息了,但是pack出来的固件仍然是hdmi显示输出,可以通过改哪个配置文件修改吗

      配置打包的过程记录:

      
      Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.4.0-150-generic x86_64)
      
       * Documentation:  https://help.ubuntu.com
       * Management:     https://landscape.canonical.com
       * Support:        https://ubuntu.com/advantage
      
       * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
         just raised the bar for easy, resilient and secure K8s cluster deployment.
      
         https://ubuntu.com/engage/secure-kubernetes-at-the-edge
      
       * Canonical Livepatch is available for installation.
         - Reduce system reboots and improve kernel security. Activate at:
           https://ubuntu.com/livepatch
      
      116 packages can be updated.
      1 update is a security update.
      
      Your Hardware Enablement Stack (HWE) is supported until April 2023.
      Last login: Tue Aug 22 11:50:20 2023 from 192.168.3.105
      tuner@tuner-virtual-machine:~$ 
      tuner@tuner-virtual-machine:~$ 
      tuner@tuner-virtual-machine:~$ 
      tuner@tuner-virtual-machine:~$ cd /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ ./build.sh config
      
      Welcome to mkscript setup progress
      All available chips:
         0. sun8iw11p1
      Choice: 0
      All available platforms:
         0. linux
      Choice: 0
      All available kernel:
         0. linux-3.10
      Choice: 0
      All available boards:
         0. t3-mp1
         1. t3-p1
         2. t3-p2
         3. t3-p3
         4. tlt3_a40i-evm
      Choice: 4
      All available rootfs:
        0. buildroot 
        1. buildroot-201611 
        2. debian_fs 
      Choice: 1
      select buildroot-201611
      All available float:
        0. gnueabi 
        1. gnueabihf 
      Choice: 1
      select gnueabihf
      All available qt version:
        0. 5.9.0 
        1. 5.9.7 
      Choice: 0
      select 5.9.0
      All available output configs:
         0. hdmi
         1. vga
         2. lvds_lcd
         3. mipi_lcd
         4. tft_lcd
      Choice: 4
      All available output configs:
         0. t3
         1. a40i
      Choice: 1
      create misc_config gnueabihf
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ ./build.sh 
      build buidroot-201611...
      xgnueabihf
      sun8iw11p1_hf_defconfig
      INFO: ----------------------------------------
      INFO: build lichee ...
      INFO: chip: sun8iw11p1
      INFO: platform: linux
      INFO: kernel: linux-3.10
      INFO: board: tlt3_a40i-evm
      INFO: output: out/sun8iw11p1/linux/tlt3_a40i-evm
      INFO: ----------------------------------------
      INFO: build buildroot ...
      make: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611'
      >>>   Finalizing target directory
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/glib-2.0/schemas/*.xml /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/glib-2.0/schemas/*.dtd
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/glib-compile-schemas /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/share/glib-2.0/schemas --targetdir=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/glib-2.0/schemas
      No schema files found: doing nothing.
      PYTHONPATH="/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7/sysconfigdata/:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7/site-packages/" /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/python2.7 support/scripts/pycompile.py /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7 -name '*.pyo' -print0 | xargs -0 --no-run-if-empty rm -f
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc
      echo "T3/A40i-Tronlong" > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/hostname
      /bin/sed -i -e '$a \127.0.1.1\tT3/A40i-Tronlong' -e '/^127.0.1.1/d' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/hosts
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc
      echo "Welcome to Allwinner T3 Linux Platform V1.4" > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/issue
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/network/
      ( echo "# interface file auto-generated by buildroot"; echo ; echo "auto lo"; echo "iface lo inet loopback"; echo ; echo "allow-hotplug eth0"; echo "iface eth0 inet dhcp"; ) > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/network/interfaces
      /bin/sed -i -e s,^root:[^:]*:,root::, /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/shadow
      ln -sf bash /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/bin/sh
      /bin/sed -i -e '/ttyS0::respawn:\/bin\/login/d' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/inittab
      /bin/sed -i -e '/# Put a getty on the serial port/a\ttyS0::respawn:/bin/login -f root' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/inittab
      /bin/sed -i -e '/^#.*-o remount,rw \/$/s~^#\+~~' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/inittab
      Generating locale zh_CN.UTF-8
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/locales.nopurge
      for i in C en_US zh_CN locale-archive; do echo $i >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/locales.nopurge; done
      for dir in /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/locale /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/locale; do for langdir in $dir/*; do if [ -e "${langdir}" ]; then grep -qx "${langdir##*/}" /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/locales.nopurge || rm -rf $langdir; fi done; done
      if [ -d /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/X11/locale ]; then for lang in C en_US zh_CN; do if [ -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/X11/locale/$lang/XLC_LOCALE ]; then echo "$lang/XLC_LOCALE: $lang"; fi done > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/X11/locale/locale.dir; fi
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/include /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/aclocal \
              /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/pkgconfig /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/pkgconfig \
              /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/cmake /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/cmake
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/lib/ /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/ /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/libexec/ \
              \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/zsh
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/man /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/man
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/info /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/info
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/doc /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/doc
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/gtk-doc
      rmdir /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share 2>/dev/null
      Makefile:641: recipe for target 'target-finalize' failed
      make[1]: [target-finalize] Error 1 (ignored)
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target -type f \( -perm /111 -o -name '*.so*' \) -not \( -name 'libpthread*.so*' -o -name 'ld-*.so*' -o -name '*.ko' \) -print0 | xargs -0 /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-strip --remove-section=.comment --remove-section=.note 2>/dev/null || true
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/lib/ -type f -name 'libpthread*.so*' | \
              xargs -r /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-strip --remove-section=.comment --remove-section=.note --strip-debug
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/lib/ -type f -name 'ld-*.so*' | \
              xargs -r /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-strip --remove-section=.comment --remove-section=.note --strip-debug
      test -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/ld.so.conf && \
              { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
      test -d /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/ld.so.conf.d && \
              { echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || true
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc
      ( \
              echo "NAME=Buildroot"; \
              echo "VERSION=2016.11 Fri Aug 25 10:39:19 CST 2023"; \
              echo "ID=buildroot"; \
              echo "VERSION_ID=2016.11"; \
              echo "PRETTY_NAME=\"Buildroot 2016.11\"" \
      ) >  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/os-release
      >>>   Executing post-build script target/user_rootfs_build.sh
      run user rootfs build script------------genrootfs = 
      not genrootfs DO NOT compile sdk lib
      make: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611'
      INFO: build buildroot OK.
      INFO: build kernel ...
      INFO: prepare toolchain of sun8iw11p1...
      no file name,use gz
      Building kernel
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/output/lib/modules/3.10.65-rt69
      Copy rootfs for arm
      rootfs_32bit.cpio_buildroot_201611.gz
        CHK     include/generated/uapi/linux/version.h
        CHK     include/generated/utsrelease.h
      make[1]: 'include/generated/mach-types.h' is up to date.
        CALL    scripts/checksyscalls.sh
        CC      scripts/mod/devicetable-offsets.s
        GEN     scripts/mod/devicetable-offsets.h
        HOSTCC  scripts/mod/file2alias.o
        HOSTLD  scripts/mod/modpost
        CHK     include/generated/compile.h
        CHK     kernel/config_data.h
        CC      drivers/soc/allwinner/pm/standby/common.o
        CC      drivers/soc/allwinner/pm/standby/standby_twi.o
        CC      drivers/soc/allwinner/pm/standby/power/axp_power.o
        CC      drivers/soc/allwinner/pm/standby/power/axp15_power.o
        CC      drivers/soc/allwinner/pm/standby/power/axp22_power.o
        CC      drivers/soc/allwinner/pm/standby/power/axp20_power.o
        CC      drivers/soc/allwinner/pm/standby/power/standby_power.o
      drivers/soc/allwinner/pm/standby/power/standby_power.c: In function 'pmu_get_voltage':
      drivers/soc/allwinner/pm/standby/power/standby_power.c:43:9: warning: implicit declaration of function 'axp20_get_volt' [-Wimplicit-function-declaration]
         ret = axp20_get_volt(tree);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:46:9: warning: implicit declaration of function 'axp22_get_volt' [-Wimplicit-function-declaration]
         ret = axp22_get_volt(tree);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:59:9: warning: implicit declaration of function 'axp15_get_volt' [-Wimplicit-function-declaration]
         ret = axp15_get_volt(tree);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c: In function 'pmu_set_voltage':
      drivers/soc/allwinner/pm/standby/power/standby_power.c:84:9: warning: implicit declaration of function 'axp20_set_volt' [-Wimplicit-function-declaration]
         ret = axp20_set_volt(tree, voltage);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:87:9: warning: implicit declaration of function 'axp22_set_volt' [-Wimplicit-function-declaration]
         ret = axp22_set_volt(tree, voltage);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:100:9: warning: implicit declaration of function 'axp15_set_volt' [-Wimplicit-function-declaration]
         ret = axp15_set_volt(tree, voltage);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c: In function 'pmu_get_state':
      drivers/soc/allwinner/pm/standby/power/standby_power.c:128:9: warning: implicit declaration of function 'axp20_get_state' [-Wimplicit-function-declaration]
         ret = axp20_get_state(tree);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:131:9: warning: implicit declaration of function 'axp22_get_state' [-Wimplicit-function-declaration]
         ret = axp22_get_state(tree);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:144:9: warning: implicit declaration of function 'axp15_get_state' [-Wimplicit-function-declaration]
         ret = axp15_get_state(tree);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c: In function 'pmu_set_state':
      drivers/soc/allwinner/pm/standby/power/standby_power.c:172:9: warning: implicit declaration of function 'axp20_set_state' [-Wimplicit-function-declaration]
         ret = axp20_set_state(tree, state);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:188:9: warning: implicit declaration of function 'axp15_set_state' [-Wimplicit-function-declaration]
         ret = axp15_set_state(tree, state);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c: In function 'pmu_suspend_calc':
      drivers/soc/allwinner/pm/standby/power/standby_power.c:217:9: warning: implicit declaration of function 'axp20_suspend_calc' [-Wimplicit-function-declaration]
         ret = axp20_suspend_calc(mask, func);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:221:9: warning: implicit declaration of function 'axp22_suspend_calc' [-Wimplicit-function-declaration]
         ret = axp22_suspend_calc(mask, func);
               ^
      drivers/soc/allwinner/pm/standby/power/standby_power.c:234:9: warning: implicit declaration of function 'axp15_suspend_calc' [-Wimplicit-function-declaration]
         ret = axp15_suspend_calc(mask, func);
               ^
        CC      drivers/soc/allwinner/pm/standby/standby_clock.o
        CC      drivers/soc/allwinner/pm/standby/standby_debug.o
        AS      drivers/soc/allwinner/pm/standby/standby_divlib.o
        CC      drivers/soc/allwinner/pm/standby/standby_dram.o
        AS      drivers/soc/allwinner/pm/standby/./../mem_mmu_pc_asm.o
        CC      drivers/soc/allwinner/pm/standby/./../mem_divlibc.o
        CC      drivers/soc/allwinner/pm/standby/./../mem_clk.o
        CC      drivers/soc/allwinner/pm/standby/./../mem_timing.o
        CC      drivers/soc/allwinner/pm/standby/./../mem_serial.o
        CC      drivers/soc/allwinner/pm/standby/./../mem_printk.o
        CC      drivers/soc/allwinner/pm/standby/./../pm_debug.o
        CC      drivers/soc/allwinner/pm/standby/main.o
      drivers/soc/allwinner/pm/standby/main.c: In function 'standby_main':
      drivers/soc/allwinner/pm/standby/main.c:135:3: warning: implicit declaration of function 'power_enter_super_calc' [-Wimplicit-function-declaration]
         power_enter_super_calc(&pm_info, &extended_standby_para_info,
         ^
      drivers/soc/allwinner/pm/standby/main.c:144:3: warning: implicit declaration of function 'standby_twi_init_losc' [-Wimplicit-function-declaration]
         standby_twi_init_losc(pm_info.pmu_arg.twi_port);
         ^
      drivers/soc/allwinner/pm/standby/main.c: In function 'bus_enter_lowfreq':
      drivers/soc/allwinner/pm/standby/main.c:332:3: warning: implicit declaration of function 'standby_clk_ldodisable' [-Wimplicit-function-declaration]
         standby_clk_ldodisable();
         ^
      drivers/soc/allwinner/pm/standby/main.c: In function 'bus_freq_resume':
      drivers/soc/allwinner/pm/standby/main.c:342:3: warning: implicit declaration of function 'standby_clk_ldoenable' [-Wimplicit-function-declaration]
         standby_clk_ldoenable();
         ^
        CC      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.o
      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.c: In function 'dram_udelay':
      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.c:30:2: warning: implicit declaration of function 'change_runtime_env' [-Wimplicit-function-declaration]
        change_runtime_env();
        ^
      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.c:31:2: warning: implicit declaration of function 'delay_us' [-Wimplicit-function-declaration]
        delay_us(n);
        ^
      In file included from drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.c:18:0:
      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.c: In function 'mctl_channel_init_standby':
      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_hal-sun8iw11.h:77:35: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration]
       #define dram_dbg_0(fmt, args...)  printk(fmt, ##args)
                                         ^
      drivers/soc/allwinner/pm/standby/dram/sun8iw11p1/mctl_standby-sun8iw11.c:713:2: note: in expansion of macro dram_dbg_0'
        dram_dbg_0("mctl_channel_init_standby\n");
        ^
      rm -rf *.o drivers/soc/allwinner/pm/standby/./*.o
        CC      drivers/soc/allwinner/pm/mem_divlibc.o
        CC      drivers/soc/allwinner/pm/mem_int.o
        CC      drivers/soc/allwinner/pm/mem_clk.o
        CC      drivers/soc/allwinner/pm/mem_gpio.o
        CC      drivers/soc/allwinner/pm/mem_timing.o
        CC      drivers/soc/allwinner/pm/mem_serial.o
        AS      drivers/soc/allwinner/pm/standby.o
        LD      drivers/soc/allwinner/pm/pm_tmp.o
        LD      drivers/soc/allwinner/pm/built-in.o
        LD      drivers/soc/allwinner/built-in.o
        LD      drivers/soc/built-in.o
        LD      drivers/video/sunxi/disp2/hdmi/hdmi.o
        LD      drivers/video/sunxi/disp2/hdmi/built-in.o
        LD      drivers/video/sunxi/built-in.o
        LD      drivers/video/built-in.o
        LD      drivers/built-in.o
        LINK    vmlinux
        LD      vmlinux.o
        MODPOST vmlinux.o
      WARNING: modpost: Found 1 section mismatch(es).
      To see full details build your kernel with:
      'make CONFIG_DEBUG_SECTION_MISMATCH=y'
        GEN     .version
        CHK     include/generated/compile.h
        UPD     include/generated/compile.h
        CC      init/version.o
        LD      init/built-in.o
        KSYM    .tmp_kallsyms1.o
        KSYM    .tmp_kallsyms2.o
        LD      vmlinux
        SORTEX  vmlinux
        SYSMAP  System.map
        OBJCOPY arch/arm/boot/Image
        Kernel: arch/arm/boot/Image is ready
        GZIP    arch/arm/boot/compressed/piggy.gzip
        AS      arch/arm/boot/compressed/piggy.gzip.o
        LD      arch/arm/boot/compressed/vmlinux
        OBJCOPY arch/arm/boot/zImage
        Kernel: arch/arm/boot/zImage is ready
        UIMAGE  arch/arm/boot/uImage
      Image Name:   Linux-3.10.65-rt69
      Created:      Fri Aug 25 10:39:44 2023
      Image Type:   ARM Linux Kernel Image (uncompressed)
      Data Size:    5238000 Bytes = 5115.23 KiB = 5.00 MiB
      Load Address: 40008000
      Entry Point:  40008000
        Image arch/arm/boot/uImage is ready
        Building modules, stage 2.
        MODPOST 19 modules
      'arch/arm/boot/Image' -> 'output/bImage'
      'arch/arm/boot/uImage' -> 'output/uImage'
      'arch/arm/boot/zImage' -> 'output/zImage'
      Building modules
      build nand library /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/nand/sun8iw11p1/lib
      build nand with existing library
      make: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/nand'
      make -C /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10 M=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/nand
      make[1]: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10'
        LD [M]  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/nand/sun8iw11p1/nand.o
        Building modules, stage 2.
        MODPOST 1 modules
        LD [M]  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/nand/sun8iw11p1/nand.ko
      make[1]: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10'
      make: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/nand'
      [GPU]: Building mali400 device driver...
      make: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu'
      make -j -C mali400/kernel_mode/driver/src/devicedrv/mali BUILD=release
      make[1]: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali'
      make ARCH=arm -C /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10 M=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali modules
      make[2]: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10'
        CC [M]  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/__malidrv_build_info.o
        LD [M]  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.o
        Building modules, stage 2.
        MODPOST 1 modules
        CC      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.mod.o
        LD [M]  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.ko
      make[2]: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10'
      make[1]: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali'
      'mali400/kernel_mode/driver/src/devicedrv/mali/mali.ko' -> '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/output/lib/modules/3.10.65-rt69/mali.ko'
      make: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/linux-3.10/modules/gpu'
      [GPU]: mali400 device driver has been built.
      regenerate rootfs cpio
      4283 blocks
      5005 blocks
      build_ramfs
      Copy boot.img to output directory ...
      Copy modules to target ...
      ./scripts/build.sh
      
      sun8iw11p1 compile Kernel successful
      
      
      INFO: build kernel OK.
      INFO: build rootfs ...
      make: Entering directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611'
      >>>   Finalizing target directory
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/glib-2.0/schemas/*.xml /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/glib-2.0/schemas/*.dtd
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/glib-compile-schemas /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/share/glib-2.0/schemas --targetdir=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/glib-2.0/schemas
      No schema files found: doing nothing.
      PYTHONPATH="/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7/sysconfigdata/:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7/site-packages/" /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/python2.7 support/scripts/pycompile.py /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/python2.7 -name '*.pyo' -print0 | xargs -0 --no-run-if-empty rm -f
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc
      echo "T3/A40i-Tronlong" > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/hostname
      /bin/sed -i -e '$a \127.0.1.1\tT3/A40i-Tronlong' -e '/^127.0.1.1/d' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/hosts
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc
      echo "Welcome to Allwinner T3 Linux Platform V1.4" > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/issue
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/network/
      ( echo "# interface file auto-generated by buildroot"; echo ; echo "auto lo"; echo "iface lo inet loopback"; echo ; echo "allow-hotplug eth0"; echo "iface eth0 inet dhcp"; ) > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/network/interfaces
      /bin/sed -i -e s,^root:[^:]*:,root::, /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/shadow
      ln -sf bash /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/bin/sh
      /bin/sed -i -e '/ttyS0::respawn:\/bin\/login/d' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/inittab
      /bin/sed -i -e '/# Put a getty on the serial port/a\ttyS0::respawn:/bin/login -f root' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/inittab
      /bin/sed -i -e '/^#.*-o remount,rw \/$/s~^#\+~~' /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/inittab
      Generating locale zh_CN.UTF-8
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/locales.nopurge
      for i in C en_US zh_CN locale-archive; do echo $i >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/locales.nopurge; done
      for dir in /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/locale /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/locale; do for langdir in $dir/*; do if [ -e "${langdir}" ]; then grep -qx "${langdir##*/}" /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/locales.nopurge || rm -rf $langdir; fi done; done
      if [ -d /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/X11/locale ]; then for lang in C en_US zh_CN; do if [ -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/X11/locale/$lang/XLC_LOCALE ]; then echo "$lang/XLC_LOCALE: $lang"; fi done > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/X11/locale/locale.dir; fi
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/include /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/aclocal \
              /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/pkgconfig /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/pkgconfig \
              /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/cmake /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/cmake
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/lib/ /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/lib/ /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/libexec/ \
              \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/zsh
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/man /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/man
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/info /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/info
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/doc /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/doc
      rm -rf /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share/gtk-doc
      rmdir /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/usr/share 2>/dev/null
      Makefile:641: recipe for target 'target-finalize' failed
      make[1]: [target-finalize] Error 1 (ignored)
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target -type f \( -perm /111 -o -name '*.so*' \) -not \( -name 'libpthread*.so*' -o -name 'ld-*.so*' -o -name '*.ko' \) -print0 | xargs -0 /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-strip --remove-section=.comment --remove-section=.note 2>/dev/null || true
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/lib/ -type f -name 'libpthread*.so*' | \
              xargs -r /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-strip --remove-section=.comment --remove-section=.note --strip-debug
      find /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/lib/ -type f -name 'ld-*.so*' | \
              xargs -r /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-strip --remove-section=.comment --remove-section=.note --strip-debug
      test -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/ld.so.conf && \
              { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
      test -d /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/ld.so.conf.d && \
              { echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || true
      mkdir -p /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc
      ( \
              echo "NAME=Buildroot"; \
              echo "VERSION=2016.11 Fri Aug 25 10:39:55 CST 2023"; \
              echo "ID=buildroot"; \
              echo "VERSION_ID=2016.11"; \
              echo "PRETTY_NAME=\"Buildroot 2016.11\"" \
      ) >  /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/etc/os-release
      >>>   Executing post-build script target/user_rootfs_build.sh
      run user rootfs build script------------genrootfs = y
      cp: target '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/target/bin/' is not a directory
      you must compile QT5.9.0 first!!!!!!!
      \nlibsdk.so compile ok!!!\n\n
      make[2]: Nothing to be done for 'all'.
      cp: cannot stat '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/sdktest/eve_module/classifier/*': No such file or directory
      make[2]: Nothing to be done for 'all'.
      make[2]: Nothing to be done for 'all'.
      make finish!!!
      make[2]: Nothing to be done for 'all'.
      make[2]: Nothing to be done for 'all'.
      echo ----------vproxy---------
      ----------vproxy---------
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++ --sysroot=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot -c ./videoprosy.cpp -o ./videopro.o -rdynamic -fPIC -shared   -DUSE_LOGCAT -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DANDROID_SMP=1 -D__ARM_HAVE_DMB -D__ARM_HAVE_LDREX_STREX  -DHAVE_POSIX_CLOCKS -DHAVE_PRCTL -DWATERMARK -DCDX_V27  -DSUPPORT_NEW_DRIVER  -D_GNU_SOURCE -DCONFIG_CHIP=7 -DCONFIG_TARGET_PRODUCT= -DCONFIG_PRODUCT=2 -DCONFIG_VE_IPC=1 -DROTATE_PIC_HW=0 -DVE_PHY_OFFSET=0x40000000 -DCONFIG_LOG_LEVEL=0  -I-I./ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/include/disp2 -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/include/utils -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib//include/cutils/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/media -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/camera -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/camera/moudle -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/camera/allwinnertech/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/camera/allwinnertech/water_mark/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/camera/adas/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/storage/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/sound/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/memory/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/misc/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/audioenc/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/eve_module/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/eve_module -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../tools/pack/chips/sun8iw11p1/hal/gpu/fbdev_hf/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/glib-2.0/include/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gio-unix-2.0/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/adecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/aencoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/alsa/sound -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/adecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/libxml -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/live -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/openssl -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/sdecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/external/include/zlib -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcedarc/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/base/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/muxer/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/parser/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/playback/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/stream/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/common/iniparser -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/libcore/common/plugin -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/xmetadataretriever/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/include/xplayer/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/../shm/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/../dbusmedia/
      In file included from ./videoprosy.cpp:8:0:
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/../dbusmedia/dbusmediavideotype.h:19:1: warning: 'typedef' was ignored in this declaration
       };
       ^
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/../dbusmedia/dbusmediavideotype.h:25:1: warning: 'typedef' was ignored in this declaration
       };
       ^
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++ --sysroot=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot  -o ./libvideoproxy.so ./videopro.o  -rdynamic -fPIC -shared -L./cedarx// -Wl,--no-undefined -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/cedarx/lib_hf/ -Wl,--no-undefined -ladecoder -laencoder -lcdx_base -lcdx_common -lcdx_muxer -lcdx_parser -lcdx_playback -lcdx_stream -lMemAdapter  -lcdc_base  -lsubdecoder -lvdecoder -lvencoder -lVE -lvideoengine -lxmetadataretriever -lxplayer -lrt -lpthread -lz -lcrypto -lssl -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/libs_hf -lsdk_compose  -lsdk_disp  -lsdk_g2d -lsdk_dvr   -lsdk_player  -lsdk_tr -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../../../../../tools/pack/chips/sun8iw11p1/hal/gpu/fbdev_hf/lib/ -lGLESv2 -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib   -lsdk  -ltinyalsa  -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/libs    -lawshm -lawcommediavideo  -I../shm/ -I../dbusmedia/
      cp ./libvideoproxy.so /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoproxy/../../sdk_lib/libs
      make[2]: Circular videoserv <- videoserv dependency dropped.
      echo -------------------
      -------------------
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++ --sysroot=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot -c ./background_video_player.cpp -o ./background_video_player.o -g  -DUSE_LOGCAT -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DANDROID_SMP=1 -D__ARM_HAVE_DMB -D__ARM_HAVE_LDREX_STREX  -DHAVE_POSIX_CLOCKS -DHAVE_PRCTL -DWATERMARK -DADAS_ENABLE -DCDX_V27  -DSUPPORT_NEW_DRIVER  -D_GNU_SOURCE -DCONFIG_CHIP=7 -DCONFIG_TARGET_PRODUCT= -DCONFIG_PRODUCT=2 -DCONFIG_VE_IPC=1 -DROTATE_PIC_HW=0 -DVE_PHY_OFFSET=0x40000000 -DCONFIG_LOG_LEVEL=0 -DBGVIDEO_SER -I-I./ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/include/disp2 -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/include/utils -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib//include/cutils/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/media -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/moudle -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/allwinnertech/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/allwinnertech/water_mark/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/adas/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/storage/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/sound/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/memory/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/misc/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/audioenc/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/eve_module/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/eve_module -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../tools/pack/chips/sun8iw11p1/hal/gpu/fbdev_hf/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/glib-2.0/include/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gio-unix-2.0/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/adecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/aencoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/alsa/sound -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/adecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/libxml -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/live -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/openssl -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/sdecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/zlib -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcedarc/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/base/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/muxer/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/parser/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/playback/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/stream/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/common/iniparser -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/common/plugin -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/xmetadataretriever/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/xplayer/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../shm/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../dbusmedia/
      In file included from ./background_video_player.cpp:11:0:
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../dbusmedia/dbusmediavideotype.h:19:1: warning: 'typedef' was ignored in this declaration
       };
       ^
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../dbusmedia/dbusmediavideotype.h:25:1: warning: 'typedef' was ignored in this declaration
       };
       ^
      ./background_video_player.cpp: In static member function 'static int CBackGroundMediaVideo::handleShareMemControlCmd(int, int, char*, void*, void*)':
      ./background_video_player.cpp:410:21: warning: NULL used in arithmetic [-Wpointer-arith]
          if(pout->val0 != NULL)
                           ^
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++ --sysroot=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot -c ./bg_video_serv_warper.cpp    -o ./bg_video_serv_warper.o    -g  -DUSE_LOGCAT -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DANDROID_SMP=1 -D__ARM_HAVE_DMB -D__ARM_HAVE_LDREX_STREX  -DHAVE_POSIX_CLOCKS -DHAVE_PRCTL -DWATERMARK -DADAS_ENABLE -DCDX_V27  -DSUPPORT_NEW_DRIVER  -D_GNU_SOURCE -DCONFIG_CHIP=7 -DCONFIG_TARGET_PRODUCT= -DCONFIG_PRODUCT=2 -DCONFIG_VE_IPC=1 -DROTATE_PIC_HW=0 -DVE_PHY_OFFSET=0x40000000 -DCONFIG_LOG_LEVEL=0  -DBGVIDEO_SER -I-I./ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/include/disp2 -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/include/utils -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib//include/cutils/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/media -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/moudle -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/allwinnertech/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/allwinnertech/water_mark/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/camera/adas/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/storage/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/sound/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/memory/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/misc/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/audioenc/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/eve_module/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/eve_module -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../tools/pack/chips/sun8iw11p1/hal/gpu/fbdev_hf/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/glib-2.0/include/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gio-unix-2.0/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/adecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/aencoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/alsa/sound -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/adecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/libxml -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/live -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/openssl -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/sdecoder -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/external/include/zlib -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcedarc/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/base/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/muxer/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/parser/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/playback/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/stream/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/common/iniparser -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/libcore/common/plugin -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/xmetadataretriever/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/include/xplayer/include -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../shm/ -I/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../dbusmedia/
      In file included from ./bg_video_serv_warper.cpp:14:0:
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../dbusmedia/dbusmediavideotype.h:19:1: warning: 'typedef' was ignored in this declaration
       };
       ^
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/../dbusmedia/dbusmediavideotype.h:25:1: warning: 'typedef' was ignored in this declaration
       };
       ^
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/arm-linux-gnueabihf-g++ --sysroot=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf/sysroot  -o ./video_serv  ./background_video_player.o ./bg_video_serv_warper.o -DBGVIDEO_SER -L./cedarx// -Wl,--no-undefined -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/cedarx/lib_hf/ -Wl,--no-undefined -ladecoder -laencoder -lcdx_base -lcdx_common -lcdx_muxer -lcdx_parser -lcdx_playback -lcdx_stream -lMemAdapter  -lcdc_base  -lsubdecoder -lvdecoder -lvencoder -lVE -lvideoengine -lxmetadataretriever -lxplayer -lrt -lpthread -lz -lcrypto -lssl -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/libs_hf -lsdk_compose  -lsdk_disp  -lsdk_g2d -lsdk_dvr   -lsdk_player  -lsdk_tr -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../../../../../tools/pack/chips/sun8iw11p1/hal/gpu/fbdev_hf/lib/ -lGLESv2 -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib  -lsdk   -ltinyalsa -L/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/target/user_rootfs_misc/a40i/sdk_demo/videoservice/../../sdk_lib/libs   -lawshm -lawcommediavideo
      ./makeMediaUI: line 9: ../../../../../../buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake: No such file or directory
      /home/tronlong/work/T3/sdk/allwin/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake -o Makefile MediaUI.pro
      make[2]: /home/tronlong/work/T3/sdk/allwin/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake: Command not found
      Makefile:460: recipe for target 'Makefile' failed
      make[2]: *** [Makefile] Error 127
      ./makeCameraUI: line 9: ../../../../../../buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake: No such file or directory
      /home/tronlong/work/T3/sdk/allwin/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake -o Makefile CameraUI.pro
      make[2]: /home/tronlong/work/T3/sdk/allwin/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake: Command not found
      Makefile:563: recipe for target 'Makefile' failed
      make[2]: *** [Makefile] Error 127
      ./makeLauncher: line 9: ../../../../../../buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake: No such file or directory
      /home/tronlong/work/T3/sdk/allwin/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake -o Makefile Launcher.pro
      make[2]: /home/tronlong/work/T3/sdk/allwin/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0/Qt-5.9.0/bin/qmake: Command not found
      Makefile:400: recipe for target 'Makefile' failed
      make[2]: *** [Makefile] Error 127
      run user rootfs build script---------done!
      >>>   Generating root filesystem image rootfs.ext2
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
      rm -f /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_users_table.txt
      echo '#!/bin/sh' > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      echo "set -e" >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      echo "chown -h -R 0:0 /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target" >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      printf '        dbus -1 dbus -1 * /var/run/dbus - dbus DBus messagebus user\n   - - docker -1 * - - - Docker Application Container Framework\n  - - input -1 * - - - Input device group\n       mosquitto -1 nogroup -1 * - - - Mosquitto user\n         sshd -1 sshd -1 * - - - SSH drop priv user\n    ftp -1 ftp -1 * /home/ftp - - Anonymous FTP User\n\n' >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_users_table.txt
      PATH="/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/bin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/sbin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/sbin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain//bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611/support/scripts/mkusers /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_users_table.txt /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      cat system/device_table.txt > /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_device_table.txt
      printf '        /bin/busybox                     f 4755 0  0 - - - - -\n        /usr/libexec/dbus-daemon-launch-helper f 4755 0 0 - - - - -\n /dev/console c 622 0 0 5 1 - - -\n\n' >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_device_table.txt
      echo "/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/makedevs -d /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_device_table.txt /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target" >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      printf '        PATH="/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/bin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/sbin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/sbin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain//bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" mke2img -d /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target -G 4 -R 1 -b 2097152 -B 0 -i 524288 -I 0 -o /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/images/rootfs.ext2\n' >> /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      chmod a+x /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      PATH="/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/bin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/sbin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/sbin:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain//bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/fakeroot -- /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_fakeroot.fs
      rootdir=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target
      table='/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/build/_device_table.txt'
      tune2fs 1.43.3 (04-Sep-2016)
      tune2fs 1.43.3 (04-Sep-2016)
      
      Please run e2fsck -f on the filesystem.
      
      Creating journal inode: done
      This filesystem will be automatically checked every 20 mounts or
      0 days, whichever comes first.  Use tune2fs -c or -i to override.
      
      mke2img: e2fsck was successfully run on '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/images/rootfs.ext2' (ext4)
      
      tune2fs 1.43.3 (04-Sep-2016)
      Setting maximal mount count to -1
      Setting interval between checks to 0 seconds
      /usr/bin/install -m 0644 support/misc/target-dir-warning.txt /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
      ln -sf rootfs.ext2 /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/out/sun8iw11p1/linux/common/buildroot/images/rootfs.ext4
      make: Leaving directory '/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/buildroot-201611'
      INFO: build rootfs OK.
      INFO: ----------------------------------------
      INFO: build lichee OK.
      INFO: ----------------------------------------
      no SATA
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ 
      tuner@tuner-virtual-machine:/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee$ ./build.sh pack
      build buidroot-201611...
      xgnueabihf
      sun8iw11p1_hf_defconfig
      INFO: packing firmware ...
      copying tools file
      copying configs file
      ./out/aultls32.fex
      ./out/aultools.fex
      ./out/boot_package.cfg
      ./out/boot_package.fex
      ./out/boot_package_nor.cfg
      ./out/cardscript.fex
      ./out/cardscript_secure.fex
      ./out/cardtool.fex
      ./out/diskfs.fex
      ./out/env.cfg
      ./out/env_burn.cfg
      ./out/image.cfg
      renamed './out/image_linux.cfg' -> './out/image.cfg'
      ./out/split_xxxx.fex
      ./out/sunxi.fex
      ./out/sys_config.fex
      ./out/sys_config_hdmi.fex
      ./out/sys_config_lvds_lcd.fex
      ./out/sys_config_mipi_lcd.fex
      ./out/sys_config_tft_lcd.fex
      ./out/sys_config_vga.fex
      ./out/sys_partition_dump.fex
      renamed './out/sys_partition_linux.fex' -> './out/sys_partition.fex'
      ./out/sys_partition_linux_128M.fex
      ./out/sys_partition_linux_256M.fex
      ./out/sys_partition_linux_mmc.fex
      ./out/sys_partition_private.fex
      ./out/toc0.fex
      ./out/toc1.fex
      ./out/usbtool.fex
      ./out/usbtool_test.fex
      copying boot resource
      lzma: out/bootlogo.bmp: No such file or directory
      copying boot file
      p=soc c=product state=0
      p=soc c=platform state=0
      p=soc c=target state=0
      p=soc c=norflash state=0
      p=soc c=power_sply state=0
      p=soc c=card_boot state=0
      p=soc c=pm_para state=0
      p=soc c=card0_boot_para state=0
      p=soc c=card2_boot_para state=0
      p=soc c=twi_para state=0
      p=soc c=uart_para state=0
      p=soc c=jtag_para state=0
      p=soc c=clock state=0
      p=soc c=dram state=0
      p=soc c=emac0 state=0
      p=soc c=gmac0 state=0
      p=soc c=can0 state=0
      p=soc c=can0 state=1
      p=soc c=twi0 state=0
      p=soc c=twi1 state=0
      p=soc c=twi2 state=0
      p=soc c=twi3 state=0
      p=soc c=twi4 state=0
      p=soc c=ir0 state=0
      p=soc c=uart0 state=0
      p=soc c=uart0 state=1
      p=soc c=uart1 state=0
      p=soc c=uart1 state=1
      p=soc c=uart2 state=0
      p=soc c=uart2 state=1
      p=soc c=uart3 state=0
      p=soc c=uart3 state=1
      p=soc c=uart4 state=0
      p=soc c=uart4 state=1
      p=soc c=uart5 state=0
      p=soc c=uart5 state=1
      p=soc c=uart6 state=0
      p=soc c=uart6 state=1
      p=soc c=uart7 state=0
      p=soc c=uart7 state=1
      p=soc c=spi0 state=0
      p=soc c=spi1 state=0
      p=soc c=spi2 state=0
      p=soc c=spi3 state=0
      p=soc c=rtp_para state=0
      p=soc c=ctp state=0
      p=soc c=ctp_list state=0
      p=soc c=tkey_para state=0
      p=soc c=motor_para state=0
      p=soc c=nand0 state=0
      p=soc c=sata state=0
      p=soc c=boot_disp state=0
      p=soc c=disp state=0
      p=soc c=tv0 state=0
      p=soc c=tv1 state=0
      p=soc c=tvd state=0
      p=soc c=tvd0 state=0
      p=soc c=tvd1 state=0
      p=soc c=tvd2 state=0
      p=soc c=tvd3 state=0
      p=soc c=lcd0 state=0
      p=soc c=lcd0 state=1
      p=soc c=pwm0 state=0
      p=soc c=pwm0 state=1
      p=soc c=pwm4 state=0
      p=soc c=pwm4 state=1
      p=soc c=car_reverse state=0
      p=soc c=Transmit_fm state=0
      p=soc c=hdmi state=0
      p=soc c=ak7601 state=0
      p=soc c=csi0 state=0
      p=csi0 c=csi0_dev0 state=0
      p=soc c=csi1 state=0
      p=csi1 c=csi1_dev0 state=0
      p=soc c=tvout_para state=0
      p=soc c=tvin_para state=0
      p=soc c=di state=0
      p=soc c=sdc0 state=0
      p=soc c=sdc1 state=0
      p=soc c=sdc2 state=0
      p=soc c=sdc3 state=0
      p=soc c=smc state=0
      p=soc c=gpio_para state=0
      p=soc c=usbc0 state=0
      p=soc c=usbc1 state=0
      p=soc c=usbc2 state=0
      p=soc c=gsensor_para state=0
      p=soc c=gps_para state=0
      p=soc c=ril_para state=0
      p=soc c=wlan state=0
      p=soc c=bt state=0
      p=soc c=btlpm state=0
      p=soc c=gy_para state=0
      p=soc c=ls_para state=0
      p=soc c=compass_para state=0
      p=soc c=spdif state=0
      p=soc c=sndspdif state=0
      p=soc c=audiohdmi state=0
      p=soc c=sndhdmi state=0
      p=soc c=snddaudio0 state=0
      p=soc c=daudio0 state=0
      p=soc c=snddaudio1 state=0
      p=soc c=daudio1 state=0
      p=soc c=sndcodec state=0
      p=soc c=codec state=0
      p=soc c=pmu0 state=0
      p=soc c=charger0 state=0
      p=soc c=powerkey0 state=0
      p=soc c=regulator0 state=0
      p=soc c=axp_gpio0 state=0
      p=soc c=dvfs_table state=0
      p=soc c=Vdevice state=0
      p=soc c=gpu_mali400_0 state=0
      Conver script to dts ok.
      dtbpath=/mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/tools/pack/out/sunxi.fex
      update_fdt: u-boot.fex will merage sunxi.fex, generate u-boot.fex
      ---0xd0, 0xd
      update_fdt: num 863156 randto1k
      update_fdt: num 161056 randto1k
      file1_len = d2c00, file2_len = 29800
      dtb offset d2c00,size 29800 
      update_fdt:genrate /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/tools/pack/out/u-boot.fex ok
      pack boot package
      GetPrivateProfileSection read to end
      content_count=1
      packing for linux
      normal
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/tools/pack/pctools/linux/eDragonEx/
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/tools/pack/out
      Begin Parse sys_partion.fex
      Add partion boot-resource.fex BOOT-RESOURCE_FEX
      Add partion very boot-resource.fex BOOT-RESOURCE_FEX
      FilePath: boot-resource.fex
      FileLength=447000Add partion env.fex ENV_FEX000000000
      Add partion very env.fex ENV_FEX000000000
      FilePath: env.fex
      FileLength=20000Add partion boot.fex BOOT_FEX00000000
      Add partion very boot.fex BOOT_FEX00000000
      FilePath: boot.fex
      FileLength=ceb000Add partion rootfs.fex ROOTFS_FEX000000
      Add partion very rootfs.fex ROOTFS_FEX000000
      FilePath: rootfs.fex
      FileLength=80000000sys_config.fex Len: 0x12439
      config.fex Len: 0xceb4
      split_xxxx.fex Len: 0x200
      sys_partition.fex Len: 0xaeb
      sunxi.fex Len: 0x27520
      boot0_nand.fex Len: 0x8000
      boot0_sdcard.fex Len: 0x8000
      u-boot.fex Len: 0x110000
      toc1.fex Len: 0x8
      toc0.fex Len: 0x8
      fes1.fex Len: 0x3d80
      boot_package.fex Len: 0x114000
      full_img.fex Len: 0x16
      usbtool.fex Len: 0x23000
      aultools.fex Len: 0x27c29
      aultls32.fex Len: 0x2455d
      cardtool.fex Len: 0x11c00
      cardscript.fex Len: 0x779
      sunxi_mbr.fex Len: 0x10000
      dlinfo.fex Len: 0x4000
      arisc.fex Len: 0x6
      boot-resource.fex Len: 0x447000
      Vboot-resource.fex Len: 0x4
      env.fex Len: 0x20000
      Venv.fex Len: 0x4
      boot.fex Len: 0xceb000
      Vboot.fex Len: 0x4
      rootfs.fex Len: 0x80000000
      Vrootfs.fex Len: 0x4
      BuildImg 0
      Dragon execute image.cfg SUCCESS !
      ----------image is at----------
      
      /mnt/work_sdc1/tlA40i/LinuxSDK/tlLichee/tools/pack/sun8iw11p1_linux_tla40i-evm_uart0.img
      
      pack finish
      no SATA
      
      
      发布在 创龙科技专区
      D
      ddrddr
    • t113-s3 + sr8201,有一块连不上网络

      t113-s3 + sr8201,有一块连不上网络,请教大佬帮忙看看是什么问题

      QQ图片20230823134935.png

      QQ图片20230823134940.png

      发布在 其它全志芯片讨论区
      D
      ddrddr
    • adb 和usb虚拟串口的切换

      请问

      内核配置里我选择serial gadget (with cdc acm and cdc obex support)后,可以在/dev/里找到ttyGs这个串口。

      但是,如果我选择是是M,生成了以下三个*.ko.

      QQ图片20230802100404.png

      我依次insmod,结果insmod g_serial.ko时有个提示:

      QQ图片20230802100410.png

      /dev下也找不到ttyGS。

      QQ图片20230802100413.png

      根文件这里,我已经选成M模式加载驱动了。但是没搜到关于adb相关的.ko。

      禁用adb的话,usb_serial.ko加载就没事了。
      问题是,如何灵活切换adb 和usb虚拟串口?

      发布在 MR Series
      D
      ddrddr
    • cat /sys/class/thermal/thermal_zone0/temp 获取的温度误差大概有多少?

      如题,cat /sys/class/thermal/thermal_zone0/temp 获取的温度误差大概有多少?

      发布在 H/F/TV Series
      D
      ddrddr
    • 创龙A40i的板子,build pack的时候出错

      说是busybox找不到?build没有报错,pack时候说找不到

      20230727094356.jpg

      发布在 创龙科技专区
      D
      ddrddr
    • V853-pro开发板4寸屏,运行framebuffer的应用程序,显示不正常

      基于100ask的SDK,在4寸屏上运行网盘例程06_应用例程\01_Framebuffer下面的应用。使用下面的命令交叉编译,

      arm-openwrt-linux-muslgnueabi-gcc -o show_ascii show_ascii.c
      

      出不来相应的效果。lvgl demo都正常。屏幕开机log显示也正常。

      af7ca6ac914d1fa97cf429a6f3a6d82c9acd8fb0_2_690x465.jpeg

      log显示是正常的,就是屏幕没有显示。

      比如运行show_ascii ,正常应该屏幕中央显示 A ,但是屏幕显示是黑的。

      完全按照手册上的步骤编译的。

      export STAGING_DIR=~/tina-v853-open/prebuilt/rootfsbuilt/arm/toolchain-
      sunxi-musl-gcc-830/toolchain/arm-openwrt-linux-muslgnueabi
      
      ~/tina-v853-
      open/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-
      830/toolchain/bin/arm-openwrt-linux-gcc -o show_ascii show_ascii.c
      

      这个是我的show_ascii文件
      show_ascii.zip

      发布在 V Series
      D
      ddrddr
    • build.sh pack后没有生产新的img文件

      QQ图片20230718095428.jpg

      发布在 其它全志芯片讨论区
      D
      ddrddr
    • PWM背光调节时极性异常

      lcd使用pwm作为背光控制。但是设置背光后,亮度调节异常

      具体现象为:

      • 在board.dts设置lcd_pwm_pol = <0>;
        在第一次启动时:读寄存器PWM_ACT_STA = 0 (极性翻转,异常)
        休眠唤醒后:读寄存器PWM_ACT_STA = 1 (极性正常)

      • 当唤醒时,pwm的极性设置为与board.dts相同的极性。
        在board.dts设置lcd_pwm_pol = <1>;
        读寄存器PWM_ACT_STA = 0(极性正常)

      PWM的初始化成功,board.dts中PWM引脚配置正确,引脚pull功能正常。

      但是通过示波器外接pwm引脚输出频率正常,但是占空比设置相反,极性相反;

      发布在 MR Series
      D
      ddrddr
    • 群里看到的A133P,这是什么型号?

      QQ图片20230619111403.jpg

      发布在 其它全志芯片讨论区
      D
      ddrddr
    • T113尝试编译qt的modbus例程

      尝试编译qt的modbus例程,报错,

      但是我看libQt5SerialBus和libQt5SerialPort两个库都在。

      QQ图片20230614094824.png

      QQ图片20230614094828.png

      发布在 其它全志芯片讨论区
      D
      ddrddr
    • 回复: mq-dual接lan8720的模块phy报错

      问题解决,全志的sunxi-gmac.c里暴力写了个phydev->is_gigabit_capable = 1 然后phy驱动就去访问不存在的千兆寄存器,把lan8720搞死了

      QQ图片20230605105211.jpg

      发布在 MR Series
      D
      ddrddr
    • mq-dual接lan8720的模块phy报错

      大佬们,我给mq-dual接了个lan8720的模块,插上网线后,phy报这个错误咋搞。看代码,这里是在读千兆Phy才有的寄存器,有点没头绪。系统是官方Tina+补丁

      QQ图片20230605105101.jpg

      发布在 MR Series
      D
      ddrddr
    • NPU算法模型推理时如何查看内存占用

      如题,V851s内存大小有点受限

      发布在 V Series
      D
      ddrddr
    • NPU模块vpm_run例程运行时sample.txt读取错误

      编写sample.txt文件:

      [network]
      ./network_binary.nb
      [input]
      ./iter_0_images_262_out0_1_3_640_640.tensor
      

      将模型、输入文件、vpm_run例程传入板端

      运行vpm_run例程:

      ./vpm_run -s sample.txt
      

      报错LOG如下:

      unsupported input file type=tenso.
      error input file type
      segmentation fault
      
      发布在 V Series
      D
      ddrddr
    • 回复: 萌新基于全志V3s自制GBA游戏机

      想买。。。求量产

      发布在 爱搞机专区
      D
      ddrddr
    • 创龙AD+全志T3 TL7606I模块测试

      前 言

      本文主要介绍基于全志科技T3(ARM Cortex-A7)处理器的8/16通道AD采集开发案例,使用核芯互联CL1606/CL1616AD芯片,亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。

      备注:

      (1)创龙科技TL7606I模块使用AD芯片为核芯互联CL1606或ADI AD7606,两者均测试通过,且测试步骤无差别。

      (2)创龙科技TL7616P模块使用AD芯片为核芯互联CL1616或ADI AD7616,两者均测试通过,且测试步骤无差别。

      硬件平台:

      创龙科技T3工业评估板
      在这里插入图片描述

      TL7606I多通道AD模块
      在这里插入图片描述

      TL7616P多通道AD模块
      在这里插入图片描述

      TL7616P模块测试

      (1)硬件连接
      请使用VGA线将评估板VGA OUT接口与VGA显示屏连接。
      由于评估底板拓展接口未预留SPI总线引脚,因此需参考如下方法进行飞线,并且应尽可能使用短线连接,硬件连接如下图所示。

      在这里插入图片描述

      将评估底板SPI FLASH(U6)空贴后的引脚1(SPI CS)、2(SPI MISO)、5(SPI MOSI)、6(SPI CLK)和4(GND)通过飞线引出。

      在这里插入图片描述

      请通过飞线将TL7616P模块CON1接口与SPI FLASH(U6)飞线引出的引脚、CAMERA0(J11)接口参照下表对应关系进行连接。

      其中,CAMERA0(J11)接口的pin23~pin24引脚为TL7616P模块提供控制信号。

      在这里插入图片描述

      备注:"/"表示无需连接。

      请通过飞线将评估底板C2电解电容器的正负极引出,并与TL7616P模块CON2接口参照下表对应关系进行连接,为TL7616P模块提供12V直流电源。

      在这里插入图片描述

      案例支持TL7616P模块16通道AD数据同时采集与显示。本次测试以TL7616P模块V1A和V1B通道为例,请将TL7616P模块的V1A和V1B通道分别正确连接至信号发生器A通道和B通道。信号发生器设置A通道输出频率为1KHz、峰峰值为5Vpp(即幅值为2.5V)的正弦波信号,B通道输出频率为1KHz、峰峰值为2Vpp(即幅值为1V)的正弦波信号,如下图所示。待测信号电压请勿超过模块量程,否则可能会导致模块损坏。

      在这里插入图片描述

      (2)案例测试

      请将案例bin目录下的可执行文件ad_capture、驱动文件ad76x6.ko和"driver\boot_package"目录下的boot_package_vga_ad7606.fex镜像文件拷贝至评估板文件系统任意目录下。

      在评估板文件系统boot_package_vga_ad7606.fex镜像文件所在路径下,执行如下命令将其固化至Linux系统启动卡,并重启系统。

      Target# dd if=boot_package_vga_ad7606.fex of=/dev/mmcblk1 seek=32800
      Target# dd if=boot_package_vga_ad7606.fex of=/dev/mmcblk1 seek=24576
      Target# sync
      Target# reboot
      

      在这里插入图片描述

      评估板系统重启后,进入评估板文件系统执行如下命令加载驱动。加载成功后,将会生成设备节点"/dev/ad7606"。

      Target# insmod ad76x6.ko
      Target# ls /dev/ad7606
      

      在这里插入图片描述
      执行如下命令,查询程序运行参数。

      Target# ./ad_capture --help
      

      在这里插入图片描述
      执行如下命令,AD模块将会采集8192个数据,并转换成电压值。

      Target# ./ad_capture -d /dev/ad7606 -n 1024
      

      在这里插入图片描述
      请将生成的data.csv文件拷贝至Windows任意目录下,并使用Excel打开,如下图所示。其中,第C列数据为TL7606I模块V3通道的采集数据,第H列数据为TL7606I模块V8通道的采集数据,默认单位为:V。

      在这里插入图片描述
      请通过Excel的二维折线图,将采集数据显示为更加直观的波形图,如下图所示。

      在这里插入图片描述
      在这里插入图片描述

      发布在 创龙科技专区
      D
      ddrddr
    • 创龙T3开发板使用体验--基本开发环境搭建

      创龙T3开发板:https://bbs.aw-ol.com/topic/2228/

      1. 建立连接,测试基本功能。

      1.1. 用上位机建立连接

      开箱,熟悉资料,总体感觉做工工整(尤其是电源部分,用料很足),资料详实,有其他linux开发板经验的玩家上手很容易。

      基本连接和测试主要参考用户手册--2.1评估板测试手册, 网络连接,LED/UART/USB测试等等

      首先要做的就是用上位机连接开发板,参考前一篇文章的方法:

      Windows网线直连linux开发板或树莓派-超详细_海里的鱼2022的博客-CSDN博客

      顺利连接,默认用户为root

      poYBAGNnmxOASVlRAAEwr49SqB4215.png

      如此,便是登录成功

      pYYBAGNnmxOABrrmAABL7YmGagA883.png

      查看下文件和存储空间使用情况:

      root@T3/A40i-Tronlong:~# cd ../
      root@T3/A40i-Tronlong:/# ls
      CameraUI         home             proc             tmp
      G2dDemo          init             qt5.9.sh         usr
      Launcher         lib              recordTest       var
      MediaUI          lib32            root             video_serv
      adb.sh           libexec          run              wave
      bin              linuxrc          sbin             xplayerdemo
      core             lost+found       sdktest          xplayerdemoH264
      dbusrun.sh       media            storage.sh
      dev              mnt              sys
      etc              opt              system
      root@T3/A40i-Tronlong:/# df -h
      Filesystem                Size      Used Available Use% Mounted on
      /dev/root                 1.9G    509.2M      1.3G  27% /
      devtmpfs                358.8M         0    358.8M   0% /dev
      tmpfs                   375.0M         0    375.0M   0% /dev/shm
      tmpfs                   375.0M     12.0K    375.0M   0% /tmp
      tmpfs                   375.0M     12.0K    375.0M   0% /run
      /dev/mmcblk0p2            7.0M      4.2M      2.7M  61% /mnt/emmc/mmcblk0p2
      /dev/mmcblk0p7            1.9G    509.1M      1.3G  27% /mnt/emmc/mmcblk0p7
      /dev/mmcblk1p2            7.0M      4.2M      2.7M  61% /mnt/sdcard/mmcblk1p2
      /dev/mmcblk1p7            1.9G    509.2M      1.3G  27% /mnt/sdcard/mmcblk1p7
      cgroup                  375.0M         0    375.0M   0% /sys/fs/cgroup
      root@T3/A40i-Tronlong:/#
      

      上位机和开发板之间传输文件:

      1)ftp方法

      上位机安装filezilla, 然后可以远程连接后直接查看文件目录或进行文件传输

      ​pYYBAGNnmxOAU-3rAAHUXcOTr18163.png

      2)scp方法

      现在目标板上新建hy目录

      root@T3/A40i-Tronlong:/# mkdir hy

      在上位机ubuntu虚拟机下

      拷贝单个文件:

      hy@ubuntu:~/t3dev/samples/python-demos/key_test$ sudo scp *.*  root@192.168.137.48:/hy 
      key_test.py                                             100% 2819  67.6KB/s   00:00
      

      拷贝整个文件夹

      hy@ubuntu:~/t3dev/samples$ sudo scp -r python-demos/  root@192.168.137.48:/hy 
      led_flash.py                                             100% 3005   886.0KB/s   00:00    
      key_test.py                                              100% 2819    72.7KB/s   00:00
      

      1.2测试板载资源,LED, KEY等

      ​
      poYBAGNnmxSAMNpeAA7zbuA9z-o230.png

      BOOT-SET选项打到OFF位置(向板外方向)为EMMC启动,ON位置为SD卡启动,试过都是OK的。

      测试LED,板载的LED0/LED1见上图红框位置

      命令行测试命令:

      root@T3/A40i-Tronlong:/# echo 0 > /sys/class/leds/user-led0/brightness
      root@T3/A40i-Tronlong:/# echo 1 > /sys/class/leds/user-led0/brightness
      root@T3/A40i-Tronlong:/# echo 0 > /sys/class/leds/user-led1/brightness
      root@T3/A40i-Tronlong:/# echo 1 > /sys/class/leds/user-led1/brightness
      

      以上分别测试LED0/LED1的亮(1)/灭(0),板载LED正常受控。

      测试按键,板载共有KEY3/4/5三个用户定义按键,可以用命令查看对应事件

      root@T3/A40i-Tronlong:/# cat /proc/bus/input/devices
      I: Bus=0019 Vendor=0001 Product=0001 Version=0100
      N: Name="sunxi-ths"
      P: Phys=sunxiths/input0
      S: Sysfs=/devices/virtual/input/input0
      U: Uniq=
      H: Handlers=event0
      B: PROP=0
      B: EV=9
      B: ABS=100 0
      
      I: Bus=0019 Vendor=0001 Product=0001 Version=0100
      N: Name="sunxi-keyboard"
      P: Phys=sunxikbd/input0
      S: Sysfs=/devices/virtual/input/input1
      U: Uniq=
      H: Handlers=kbd event1
      B: PROP=0
      B: EV=3
      B: KEY=10000 c00 0 300800 40040 0 0 10000000
      
      I: Bus=0019 Vendor=0001 Product=0001 Version=0100
      N: Name="sunxi-keypad"
      P: Phys=Keypad/input2
      S: Sysfs=/devices/virtual/input/kp0
      U: Uniq=
      H: Handlers=sysrq kbd event2
      B: PROP=0
      B: EV=3
      B: KEY=ffffffff fffffffe
      
      I: Bus=0019 Vendor=0001 Product=0001 Version=0100
      N: Name="all_key"
      P: Phys=sunxi_ts/input0
      S: Sysfs=/devices/platform/sunxi-ts/input/input3
      U: Uniq=
      H: Handlers=event3
      B: PROP=0
      B: EV=b
      B: KEY=400 0 0 0 0 0 0 0 0 0 0
      B: ABS=610000 0
      
      I: Bus=0019 Vendor=0001 Product=0001 Version=0100
      N: Name="axp22-powerkey"
      P: Phys=m1kbd/input2
      S: Sysfs=/devices/soc.0/1c2ac00.twi/i2c-0/0-0034/axp22-powerkey/input/input4
      U: Uniq=
      H: Handlers=kbd event4
      B: PROP=0
      B: EV=7
      B: KEY=100000 0 0 0
      B: REL=0
      
      I: Bus=0019 Vendor=0001 Product=0001 Version=0100
      N: Name="gpio-keys.21"
      P: Phys=gpio-keys/input0
      S: Sysfs=/devices/gpio-keys.21/input/input5
      U: Uniq=
      H: Handlers=kbd event5
      B: PROP=0
      B: EV=100003
      B: KEY=400 0 0 0 0 0 0
      

      KEY3/4对应event1, KEY5对应event5

      通过命令可以查看事件响应消息:

      root@T3/A40i-Tronlong:/# od -x /dev/input/event1
      0000000 5197 386d 29ed 0004 0001 0094 0001 0000
      0000020 5197 386d 29ed 0004 0000 0000 0000 0000
      0000040 5197 386d 2b5f 0009 0001 0094 0000 0000
      0000060 5197 386d 2b5f 0009 0000 0000 0000 0000
      0000100 5199 386d cae8 000b 0001 0094 0001 0000
      0000120 5199 386d cae8 000b 0000 0000 0000 0000
      0000140 519b 386d 0e99 000e 0001 0094 0000 0000
      0000160 519b 386d 0e99 000e 0000 0000 0000 0000
      0000200 519e 386d ec83 0003 0001 0094 0001 0000
      0000220 519e 386d ec83 0003 0000 0000 0000 0000
      0000240 51a1 386d e8be 000b 0001 0094 0000 0000
      0000260 51a1 386d e8be 000b 0000 0000 0000 0000
      0000300 51a2 386d 9fc6 000c 0001 0094 0001 0000
      0000320 51a2 386d 9fc6 000c 0000 0000 0000 0000
      0000340 51a3 386d 940e 000d 0001 0094 0000 0000
      0000360 51a3 386d 940e 000d 0000 0000 0000 0000
      0000400 51a4 386d a4f3 0009 0001 0094 0001 0000
      0000420 51a4 386d a4f3 0009 0000 0000 0000 0000
      0000440 51a5 386d 3196 000b 0001 0094 0000 0000
      0000460 51a5 386d 3196 000b 0000 0000 0000 0000
      // 以上为KEY3按下
      // 以下为KEY4按下
      0000500 51aa 386d 1cfc 000e 0001 0095 0001 0000
      0000520 51aa 386d 1cfc 000e 0000 0000 0000 0000
      0000540 51ac 386d c2e3 0000 0001 0095 0000 0000
      0000560 51ac 386d c2e3 0000 0000 0000 0000 0000
      0000600 51ad 386d 30e6 0002 0001 0095 0001 0000
      0000620 51ad 386d 30e6 0002 0000 0000 0000 0000
      0000640 51ae 386d e820 0002 0001 0095 0000 0000
      0000660 51ae 386d e820 0002 0000 0000 0000 0000
      0000700 51ae 386d dfbf 000d 0001 0095 0001 0000
      0000720 51ae 386d dfbf 000d 0000 0000 0000 0000
      0000740 51b0 386d 1e41 0001 0001 0095 0000 0000
      0000760 51b0 386d 1e41 0001 0000 0000 0000 0000
      
      
      //测试KEY5按下
      root@T3/A40i-Tronlong:/# od -x /dev/input/event5
      0000000 51e1 386d 3cc7 0004 0001 00ca 0001 0000
      0000020 51e1 386d 3cc7 0004 0000 0000 0000 0000
      0000040 51e1 386d 0853 0008 0001 00ca 0002 0000
      0000060 51e1 386d 0853 0008 0000 0000 0001 0000
      0000100 51e1 386d a48d 0008 0001 00ca 0002 0000
      0000120 51e1 386d a48d 0008 0000 0000 0001 0000
      0000140 51e1 386d b7e0 0008 0001 00ca 0000 0000
      0000160 51e1 386d b7e0 0008 0000 0000 0000 0000
      0000200 51e2 386d 75ab 0008 0001 00ca 0001 0000
      0000220 51e2 386d 75ab 0008 0000 0000 0000 0000
      0000240 51e2 386d 2702 000c 0001 00ca 0002 0000
      0000260 51e2 386d 2702 000c 0000 0000 0001 0000
      0000300 51e2 386d c334 000c 0001 00ca 0002 0000
      0000320 51e2 386d c334 000c 0000 0000 0001 0000
      0000340 51e2 386d 5f74 000d 0001 00ca 0002 0000
      0000360 51e2 386d 5f74 000d 0000 0000 0001 0000
      0000400 51e2 386d fbbc 000d 0001 00ca 0002 0000
      0000420 51e2 386d fbbc 000d 0000 0000 0001 0000
      0000440 51e2 386d 97fc 000e 0001 00ca 0002 0000
      0000460 51e2 386d 97fc 000e 0000 0000 0001 0000
      

      手册2.1还有其他外设的测试方法和例子,就不一一列出了

      2. 建立开发环境, 测试交叉编译和简单的应用开发

      主要参考文档2-2linux应用开发手册,代码包位于软件资料-demo目录下, 开发包提供了python和C的案例。

      2.1 python应用案例

      板载系统预装了python2.7, 3.7是不是支持不太确定,有机会再尝试编译安装。

      例子有两个,以led_flash.py为例来测试

      #!/usr/bin/env python
      # -*- encoding: utf-8 -*-
      '''
      @File    :   tl_led_flash.py
      @Time    :   2020/04/26 09:05:54
      @Desc    :   None
      '''
      
      # here put the import lib
      import signal, time
      import os, sys, getopt
      
      version = "1.0"
      
      class Led(object):
          quit_flag = False
          
          def __init__(self, led_path):
              self.led_path = led_path    # Led path
              self.leds     = []          # Save the led found
      
          """ enumerate all led """
          def enumerate_led(self):
              led_name = "user-led"
      
              """ find led """
              for filename in os.listdir(self.led_path):
                  if led_name in filename:
                      self.leds.append(os.path.join(self.led_path, filename))
      
              if len(self.leds) == 0:
                  return False
      
              """ 
              led sort, e.g.
              /sys/class/leds/user-led0
              /sys/class/leds/user-led1
              /sys/class/leds/user-led2
              """
              self.leds.sort()
      
              print "find leds:"
              for led in self.leds:
                  print led
      
              return True
      
          """ control led flash """
          def flash_led(self):
              led_num = len(self.leds)
      
              while not Led.quit_flag:
                  """ Turn on leds """
                  for i in range(led_num):
                      """ Set the led brightness value to 1 to turn on the led """
                      ret = os.system("echo 1 > %s/brightness" % (self.leds[i]))
                      
                      if ret != 0:
                          print "Error: Failed to turn on %s" % self.leds[i]
      
                  """ Keep the leds on for 500 ms """
                  time.sleep(0.5)
      
                  for i in range(led_num):
                      """ Set the led brightness value to 0 to turn off the LED """
                      os.system("echo 0 > %s/brightness" % (self.leds[i]))
      
                  """ Keep the leds off for 500 ms """
                  time.sleep(0.5)
          
          @classmethod
          def stop(cls):
              cls.quit_flag = True
      
      def sig_handle(signum, frame):
          print "ctrl + c ..."
          Led.stop()
      
      def usage():
          print "Usage: %s [options]\n" \
                  "Options: \n" \
                  "   -v | --version Display version information\n" \
                  "   -h | --help    Display help\n" \
                  % sys.argv[0]
      
      if __name__ == '__main__':
          """ parse parameter """
          try:
              options, remainder = getopt.getopt(sys.argv[1:], 'vh', ['version', 'help'])
              for opt, arg in options:
                  if opt in ('-v', '--version'):
                      print 'version: %s' % version
                      exit(0)
                  elif opt in('-h', '--help'):
                      usage()
                      exit(0)
      
          except getopt.GetoptError as err:
              print 'ERROR: %s' % err
              exit(1)
          
          """ Ctrl+c handler """
          signal.signal(signal.SIGINT, sig_handle)
      
          led = Led("/sys/class/leds/")
      
          """ enumerate all led """
          ret = led.enumerate_led()
          """ can not find led """
          if not ret:
              print "can not find led!"
              exit(3)
          
          """ control flash all led """
          print "\nflash led ..."
          led.flash_led()
      

      基本原理和前面单独测试led差不多,运行后,板载的两个led会闪烁。

      用于写一些的简单的调试脚本应用还是挺好的,但是更有价值的库,像tcp/udp, mqtt及其他可能用到的库官方例子太少,实用性不高。

      2.2嵌入式C的开发环境建立

      嵌入式C开发才是主打模式,首先要建立交叉编译环境。

      手册里只提到要先建立SDK编译环境,但是太重了,其实只要安装了gcc工具链就可以完成基本开发了。

      hy@ubuntu:~/T3$ wget http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
      // 解压
      tar -xzf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/
      
      // 进入代码目录,进行编译
      (py39) hy@ubuntu:~/t3dev/samples/base-demos/led_flash$ cd src
      (py39) hy@ubuntu:~/t3dev/samples/base-demos/led_flash/src$ dir
      led_flash  led_flash.c	makefile
      (py39) hy@ubuntu:~/t3dev/samples/base-demos/led_flash/src$ CC=~/T3/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc make
      make: 'led_flash' is up to date.
      

      编译成功,可以copy到目标开发板, 运行验证下

      上位机运行

      cd ../bin
      sudo scp led_flash  root@192.168.137.48:/hy
      

      目标开发板直接运行,带上-h查看运行帮助

      root@T3/A40i-Tronlong:/hy# ./led_flash -h
      Usage: led_flash [options]
      
      Options:
       -n | --number        Number of LEDs, range of 1 to 4
       -v | --version       Display version information
       -h | --help          Show help content
      

      带参数,让LED1闪起来

      root@T3/A40i-Tronlong:/hy# ./led_flash -n 1
      
      System leds :
      /sys/class/leds/disk
      /sys/class/leds/heartbeat
      /sys/class/leds/user-led0
      /sys/class/leds/user-led1
      
      Flashing leds :
      /sys/class/leds/user-led0
      

      至此,交叉编译环境顺利建立。

      -> 原文链接

      发布在 创龙科技专区
      D
      ddrddr
    • 在哪吒D1上适配移远EC20,实现4G上网

      a58313b4dfecb11f5981db396e401878.jpg

      1:代码替换

      用Quectel_Linux_USB_Serial_Option_Driver_20210205中linux 5.4.51文件夹下的代码,替换Tina SDK中lichee/linux-5.4/drivers/usb/serial/ 中对应的文件

      Quectel_Linux_USB_Serial_Option_Driver_20210205的下载链接:

      链接:https://pan.baidu.com/s/1HhChSszvXQr2YzMojGdvpQ?pwd=odfb

      提取码:odfb

      2:打开linux中对应的USB driver

      transfer_image1665157769327.png

      3:重新编译系统,并且将新系统烧录到开发板上

      cd /opt/d1/tina_d1_open_v2
      source build/envsetup.sh
      lunch
      make kernel_menuconfig
      make
      pack
      

      4:验证驱动安装是否成功

      驱动安装成功以后,插入设备,应出现如下log:

      transfer_image1665157769367.png

      输入:

      cat /dev/ttyUSB2 &
      echo -e "AT\r\n" > /dev/ttyUSB2
      

      应该出现如下提示:

      transfer_image1665157769323.png

      则表示EC20的驱动已经成功安装。

      5:PPP拨号

      由于目前没有针对C906内核的ppp拨号软件,因此需要从源码重新编译;链接开源的是针对C906内核从PPP源码编译以后的PPP拨号软件,如果觉得好用,烦请点个Star:

      https://github.com/tcexeexe/pppForC906/

      使用方法:

      (1)将pppd 和 chat 上传到 /usr/bin

      (2)将 quectel-ppp,quectel-chat-connect,quectel-chat-disconnect 上传到 /etc/ppp/peers/.默认的拨号脚本是针对联通的

      (3)使用 pppd call quectel-ppp 拨号联网

      拨号成功后,输入ifconfig,出现ppp0相关网络配置,则标识拨号成功,此时就可以顺利上网

      ec8d7c9bfe4831a31f179b250c50e684.png

      由于4G模块基本都是使用3GPP的标准AT指令,所以例如高新兴,SIMCOM等厂家的模组,也可以试用上述流程,区别在于USB的vender ID和Product ID不同,这个需要根据模组的手册修改。

      原文链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.429d180fISyFXA&id=4098970633348648960

      发布在 MR Series
      D
      ddrddr
    • D1开发板操作gpio端口的简单方法以及ADB的连接方法

      准备操作

      作为一名萌新,在如何操作gpio端口上,历经千辛万苦,查阅各种资料。

      首先是根据同样是发布在平头哥开发社区的博文,链接如下 https://bbs.aw-ol.com/topic/349/ 是文件操作gpio端口,代码易读懂,但是代码量太大了。对有些部分,像是打开文件,进行读写操作的一块进行,可以简化一些,但是要控制多个gpio端口,还要多次复用,实在是不好用。所以在写完小车动起来的程序后,就想着有没有更简单的方式。

      找到了官方提供的gpio开发指南,利用的是设备树和Pinctrl和gpio子系统操作gpio,花了两天时间终于弄了个大概明白,想上手开始做,发现没找到一个完整的案例,不知如何入手。

      于是搜搜查查,最后回归了简单的终端操作,将终端操作用命令和shell脚本来操作方便同时操作多个gpio端口。更简单了,但是没学过脚本语言,准备开始学习基本知识的时候,发现了一篇博文,什么都解决了。

      链接如下:点这个理

      C语言代码里操作gpio

      此文里面有一个板块为C语言代码里操作gpio,代码短短几行,用了system()函数来操作echo等,很类似终端操作,但又更方便了。 于是操作gpio变成了这样

      • 将大部分操作宏定义
      #define EXPORT_GPIO2 "echo 2020 > /sys/class/gpio/export"
      #define EXPORT_GPIO3 "echo 2021 > /sys/class/gpio/export"
      #define EXPORT_GPIO4 "echo 2022 > /sys/class/gpio/export"
      
      #define UEXPORT_GPIO1 "echo 2027 > /sys/class/gpio/unexport"
      #define UEXPORT_GPIO2 "echo 2020 > /sys/class/gpio/unexport"
      #define UEXPORT_GPIO3 "echo 2021 > /sys/class/gpio/unexport"
      #define UEXPORT_GPIO4 "echo 2022 > /sys/class/gpio/unexport"
      
      #define GPIO1_OUTPUT "echo out > /sys/class/gpio/gpio2027/direction"
      #define GPIO2_OUTPUT "echo out > /sys/class/gpio/gpio2020/direction"
      #define GPIO3_OUTPUT "echo out > /sys/class/gpio/gpio2021/direction"
      #define GPIO4_OUTPUT "echo out > /sys/class/gpio/gpio2022/direction"
      
      #define LOWGPIO1 "echo 0 > /sys/class/gpio/gpio2027/value"
      #define LOWGPIO2 "echo 0 > /sys/class/gpio/gpio2020/value"
      #define LOWGPIO3 "echo 0 > /sys/class/gpio/gpio2021/value"
      #define LOWGPIO4 "echo 0 > /sys/class/gpio/gpio2022/value"
      
      • 一些操作语句,简单明了
      void INIT()
      {
      
      	system(EXPORT_GPIO1);
      	system(EXPORT_GPIO2);
      	system(EXPORT_GPIO3);
      	system(EXPORT_GPIO4);
      	
      	system(EXPORT_HW1);
      	system(EXPORT_HW2);
      	system(EXPORT_HW3);
      	system(EXPORT_HW4);
      	
      	system(GPIO1_OUTPUT);
      	system(GPIO2_OUTPUT);
      	system(GPIO3_OUTPUT);
      	system(GPIO4_OUTPUT);
      	
      	system(HW1_INPUT);
      	system(HW2_INPUT);
      	system(HW3_INPUT);
      	system(HW4_INPUT);
      	
      }
      
      void RUN()
      {
      	system(LOWGPIO1);//0
      	system(HIGHGPIO2);//1
      	system(HIGHGPIO3);//1
      	system(LOWGPIO4);//0
      	
      }
      
      • 但是由于没有办法system(cat...),得到value的值只能用文件方式来读出,但也将代码简化了很多。
      int GETHW(int gpio)
      {
      	char in[3] = {0, 0, 0};
      	char buf[50];
      	int nread, gpiofd;
      	sprintf(buf, "/sys/class/gpio/gpio%d/value", gpio);
      	gpiofd = open(buf, O_RDWR);
      	if(gpiofd < 0) {
      		fprintf(stderr, "Failed to open gpio %d value\n", gpio);
      		perror("gpio failed");
      	}
       
      	do {
      		nread = read(gpiofd, in, 1);
      	} while (nread == 0);
      	if(nread == -1){
      		perror("GPIO Read failed");
      		return -1;
      	}
      	close(gpiofd);
      	return atoi(in);
      }
      

      D1开发板的gpio引脚

      我们项目的小车选用的是gpio2020~gpio2027这八个gpio引脚,其中四个引脚用来控制车轮的运动,四个引脚用来接收红外传感器传送过来的信号。这八个引脚分别对应的是pp0~pp7,

      根据这两张图片结合,我们就知道了gpio2020~gpio2027这四个分别在什么位置。

      8d5cfb247925666b938f378e36b84a96.png

      9e792bea735baa3ff8f74798da08b860.png

      查看gpio引脚值,对gpio引脚操作分为简单的几步:

      • 导出gpio值,命令:echo 2020 > export
      • 设置方向,输入为:echo in > direction输出为:echo out > direction
      • 查看value值:cat value ( 注意工作目录 )
      • 设置value值,如果gpio口被定义为输出时,可以设置gpio值为1或者0,1为高电平,0为低电平 echo 1 > value
      • 不用就 echo 2020 > unexport

      49043e4a5934023040e1a9cc1380dec1.png

      580453d43514605e6170d1f1b1a88048.png

      ADB使用和编译程序

      设备连接

      我们在将已经编译好的程序代码传送到哪吒开发板上时,使用的ADB工具。设备连接正常后,桌面上有显示图标:

      b76d2b76d72a50a88e695e7c727fd309.png

      那个对勾表示已经连接上ADB,如果有Allwinner Technology Inc. Tina ADB但是前面没有对勾,就点一下,要是没有这个选项,就重插一下开发板。

      交叉编译

      • ADB安装好以后,先在Ubuntu下新建一个.c文件,然后编译:
        编译是交叉编译,交叉编译就是编译和运行是分开的,即编译在电脑的Ubuntu上,运行在哪吒开发板上进行。

      根据全志社区中的提示:编译工具链在tina/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702中

      编译命令是:/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc -o car1 car1.c

      • 其中编译命令可以根据编译工具链存放的位置进行调整,我们编译工具链存放的位置是:
        tina-D1-H/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702

      所以编译命令略微调整为:

      tina-D1-H/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc -o car car.c

      我们一开始遇到的问题提示为找不到目录。后来发现是因为一开始目录不对。

      • 编译好.c文件后,执行adb push car ./.就将编译好的程序下载到开发板上

      进入开发板:用adb shell命令

      进入开发板以后,在/root目录下找到car程序,赋予文件可执行权限chmod +x car,然后运行 ./car,见下图:

      0e78e81db57965158fa09f4668ebcf0b.png

      9b77c38cf4cc958614489f02ec919391.png

      最后希望哪吒开发板也能拥有专门的操作gpio的函数和接口,方便大家使用。

      本文内容为【玄铁杯第二届RISC-V应用创新大赛】作业
      作者:智航追迹队

      原文链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.429d180fqgpDV3&id=4094212597694402560

      发布在 MR Series
      D
      ddrddr
    • 开机启动脚本写入 /etc/resolv.conf 脚本执行不完全

      0ED7F112-5181-46ef-BC4C-2C336DF46DF5.png

      请教一下,我在Tina下的/etc/rc.local里面增加了一个开机启动的脚本,目标是上电以后写入DNS SERVER地址到/etc/resolv.conf里面,但是现在好像只执行了红框里面这句话,没有执行绿框里面这句话,开机后/etc/resolv.conf这个文件里面还是空白,这个可能是什么原因呀

      发布在 MR Series
      D
      ddrddr
    • Tina下 DNS配置好后 重启消失问题

      请教一下各位大佬,在Tina下配置DNS时,在/etc/resolv.conf写入DNS的nameserver,写好以后是OK的,可以正常Ping通网址。但是重启以后,/etc/resolv.conf的内容就消失了,这个是什么情况

      发布在 MR Series
      D
      ddrddr
    • 1 / 1