V3s开发板的外设适配笔记

本文是针对自己的V3s开发板进行适配主要有SPI_LCD屏幕,IIC_OLED,IIC_陀螺仪,RGB屏幕适配,麦克风,音频,USB摄像头,板载wifi,以太网,opencv和Qt的适配。主要是参考网络上的文章,如有侵权联系删除。

在这里插入图片描述

串口传输工具lrz移植

6.荔枝派 zero(全志V3S)-RZ/SZ移植,简化文件传输_v3s 文件共享-CSDN博客

#配置 注意指定的交叉编译工具链,不然各种库版本不一样
CC=/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CFLAGS=-O2 ./configure
#直接编译
make

SPI_LCD屏幕适配

嵌入式Linux–荔枝派Zero–V3s–ST7789v_全志v3s 开启st7789v驱动-CSDN博客

【无坑直接完成】
适配ST7735基于5.10内核修改

测试:

cat dev/urandom > /dev/fb0
cat dev/zero > /dev/fb0

开机显示小企鹅

修改内核

Linux:修改u-boot、kernel logo显示及开机进度条_boot logo和kernel log所用的图片资源在那个目录下-CSDN博客

LCD终端显示

嵌入式Linux | 使Linux的启动信息显示到LCD上面&设置LCD屏幕为终端控制台_嵌入式把终端输入到显示器上-CSDN博客

u-boot命令之环境变量操作命令_如何在uboot命令行修改环境变量的值-CSDN博客

原始:

setenv bootargs 'console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0'
saveenv

验证

printenv

LCD和串口同时

setenv bootargs 'console=tty0 console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0'
saveenv

console=tty0 console=ttyS0【顺序有要求】

为了键盘能输入

修改/etc/inittab文件

vi /etc/inittab
#在 console::respawn:/sbin/getty -L  console 0 vt100 # GENERIC_SERIAL 下添加一行
tty0::askfirst:-/bin/sh

在这里插入图片描述

RGB屏幕适配

1、按照官方教程把u-boot更新为指定的屏幕的配置

开机能见到小企鹅说明成功

2、设备树要参考荔枝派主线内核的来,特别是要检查有没有sun8i-v3s.dti 的pintrl结点有没有rgb666的,panel结点一定要有和分辨率有关,参考主线内核来改就是了。

【参考】

V3s屏幕LCD驱动总结

mplayer播放视频测试

 mplayer -vo fbdev2 -vf scale=480:272 Badapple.mp4

在这里插入图片描述

如果自己画的线序红色和蓝色交换了需要更改

//在sun4i_tcon0_mode_set_rgb下
#define SUN4I_TCON0_CTL_SWAP_RB_ENABLE			BIT(23)
	regmap_update_bits(tcon->regs, SUN4I_TCON0_CTL_REG,
			   SUN4I_TCON0_CTL_SWAP_RB_ENABLE,
			   SUN4I_TCON0_CTL_SWAP_RB_ENABLE);

v3s RGB 颜色不对 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

Badapple

触摸屏适配

Ns2009适配

1、使用荔枝派主线内核的Ns2009.c加到新的内核里面

2、在以下文件中加入与Ns2009有关的配置

drivers/input/touchscreen/Makefile
drivers/input/touchscreen/Kconfig

3、make menuconfig 选择对应的就行了

移植tslib

创建文件夹

/home/book/tools/tslib/
#配置临时变量
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/bin/
#配置config指定输出目录
./configure --host=arm-linux-gnueabihf --prefix=/home/book/tools/tslib/

在指定交叉编译工具链中确定头文件和库文件的系统目录

echo 'main(){}'|/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -E -v -

任意的include和lib都行,选里面包含东西多的比较好后面生成的lib 和include 放到下面两个目录

include

/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include

lib

/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/lib/

编译

make 
make instal

生成的lib和include放到交叉编译工具链目录

sudo cp include/* -rf /opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include
sudo cp lib/* -rfd /opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/lib

生成的lib,bin,etc放到开发板对应目录

cp  lib/*so* -d /usr/lib
cp  bin/* /usr/bin
cp  etc/ts.conf -d /etc

开发板配置环境变量(永久生效的自己百度)

export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts

音视频

配置声卡

查看相关的.dti文件是否存在

#放在 /内的soc
dma: dma-controller@01c02000 {
			compatible = "allwinner,sun8i-v3s-dma";
			reg = <0x01c02000 0x1000>;
			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_DMA>;
			resets = <&ccu RST_BUS_DMA>;
			#dma-cells = <1>;
		};


codec: codec@01c22c00 {
			#sound-dai-cells = <0>;
			compatible = "allwinner,sun8i-v3s-codec";
			reg = <0x01c22c00 0x400>;
			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
			clock-names = "apb", "codec";
			resets = <&ccu RST_BUS_CODEC>;
			dmas = <&dma 15>, <&dma 15>;
			dma-names = "rx", "tx";
			allwinner,codec-analog-controls = <&codec_analog>;
			status = "disabled";
		};
 
codec_analog: codec-analog@01c23000 {
			compatible = "allwinner,sun8i-v3s-codec-analog";
			reg = <0x01c23000 0x4>;
		};
	
#放在 /外面    
&codec {
	allwinner,audio-routing =
		"Headphone", "HP",
		"Headphone", "HPCOM",
		"MIC1", "Mic",
		"Mic",  "HBIAS";
	status = "okay";
};
		

全志V3S嵌入式驱动开发 - 驱动开发合集 | 全志在线开发者论坛 (aw-ol.com)

v3S驱动音频_v3s 音频-CSDN博客

荔枝派Zero(全志V3S)开启mplayer,播放音视频-阿里云开发者社区 (aliyun.com)

注意关闭静音

amixer -c 0 sset 'Headphone',0 100% unmute
aplay SunmerFantasy.wav #wav有效

开机自启动打开音频

Linux开发板开机自启应用方法汇总_linux开发板开机启动-CSDN博客

CODEC的使用 — Lichee zero 文档

麦克风测试

amixer -c 0 cset numid=12 2		使能mic1
arecord -D hw:0,0 -d 3 -f S16_LE -r 16000 tmp.wav	录音测试
arecord -f cd -d 10 record.wav
aplay record.wav 

v3S驱动音频_v3s 音频-CSDN博客

USB适配

内核配置好menuconfig后更改设备树就行

V3S插入USB设备没有反应 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

USB摄像头适配

荔枝派Zero(全志V3S)驱动开发之USB摄像头_荔枝派 zero 开发-CSDN博客

安装fswebcam

rv1106开发板buildroot下使用v4l2和fswebcam进行USB摄像头测试 - 国产芯片交流 - 电子工程世界-论坛 (eeworld.com.cn)

按键适配

荔枝派zero适配内核驱动:按键输入设备(LRADC)_荔枝派zero原理图-CSDN博客

陀螺仪适配

Linux 驱动 IIC_MPU6050_linux mpu6050-CSDN博客

#查看iic0设备是否存在,是否有驱动uu表示有驱动 数字表示没有驱动
i2cdetect -y 0
i2cdump -y 0 0x68

[2. I2C子系统–mpu6050驱动实验 — 野火]嵌入式Linux驱动开发实战指南——基于i.MX6ULL系列 文档 (embedfire.com)
事实上参考野火的教程稍微改一下就能够完成mpu6050的驱动了,不过还是读取源数据没有使用mpu6050的DMP库融合出具体的角度,感兴趣的话可以实现一下。

Qt适配

荔枝派Zero(全志V3S)运行Qt5程序_v3s qt-CSDN博客

测试

./analogclock -platform linuxfb

opencv配置

分享一下编译好的opencv库 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

1-8.ubuntu环境opencv和人脸算法库测试_哔哩哔哩_bilibili

库编译arm

交叉编译opencv4移植到ARM-CSDN博客

OpenCV移植到arm开发板 - 知乎 (zhihu.com)

#打包
tar -cvf opencv4_2.tar.gz ./*
#解压
tar -xvf opencv4_2.tar.gz

Linux 压缩、解压缩文件(invalid tar magic 报错)_tar: invalid tar magic-CSDN博客-

实际上压缩的话不如直接复制

lib文件放在usr/lib上就好了

使用开发板的buildroot的qmake 编译

~/work/V3s/Lichee-Pi/buildroot-2017.08/output/build/qt5base-5.6.2/bin/qmake FaceAttendance.pro

在开发板运行

./opencvSeetaface -platform linuxfb

网络适配

USB

Zero通过otg与PC共享网络 - Sipeed Wiki

切换TOG到slave

主线Linux用shell命令切换 OTG(分享)tiny200/licheepi nano|zero均可以使用 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

 #otg2host
 echo host > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.2.auto/mode
 #otg2device
 echo peripheral > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.2.auto/mode

如果出现

-sh: can't create /sys/devices/platform/soc/1c19000.usb/musb-hdrc.2.auto/mode: nonexistent directory

就到相应目录下找文件对应名称

ssh方便文件传输

修改/etc/init.d/S40network

#!/bin/sh
#
# Start the network....
#

# Debian ifupdown needs the /run/network lock directory
mkdir -p /run/network

case "$1" in
  start)
        printf "Starting network: "
        /sbin/ifup -a
        /sbin/ifconfig usb0 up
        /sbin/ifconfig usb0 192.168.2.100 netmask 255.255.255.0
        [ $? = 0 ] && echo "OK" || echo "FAIL"
        ;;
  stop)
        printf "Stopping network: "
        /sbin/ifdown -a
        /sbin/ifconfig usb0 down
        [ $? = 0 ] && echo "OK" || echo "FAIL"
        ;;
  restart|reload)
        "$0" stop
        "$0" start
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?

荔枝派Zero(全志V3S)开启 SSH 实现远程连接和文件传输-阿里云开发者社区 (aliyun.com)

1.切换从机模式

 echo peripheral > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.2.auto/mode

2.插入USB线配置好ip

192.168.2.1 
255.255.255.0

3.开启SSH

ssh root@192.168.2.100

传输文件

sftp://192.168.2.100

4.关闭ssh(输入exit)关闭sftp(右键umount即可)

5.otg2host

 echo host > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.2.auto/mode

更新根文件系统后作妖

ssh登录远程主机报错:Someone could be eavesdropping on you right now (man-in-the-middle attack)!-CSDN博客

WIFI

全志V3S 入门 RTL8723BS 连接wifi_v3s wifi-CSDN博客

报错解决

【内核配置问题】

wifi r8723bs安装错误的问题 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

【设备树问题】

晕哥,帮我看一下,为什么不支持Wlan0? / 全志 SOC / WhyCan Forum(哇酷开发者社区)

【硬件问题】

RTL8723BS出现问题,请大佬们帮忙看看 / 全志 SOC / WhyCan Forum(哇酷开发者社区)

【固件问题】

以太网网口适配

以太网使用指南 - Sipeed Wiki

全网最详细,保证能用的Licheepi Zero Ethernet适配指南_licheep zero 使能网口-CSDN博客

ifconfig eth0 up
ifconfig eth0 192.168.5.9 netmask 255.255.255.0
ping 192.168.5.11

制作镜像

荔枝派Zero(全志V3S)制作 IMG 镜像文件_制作.img镜像文件-CSDN博客

  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值