SDK: Hi3516CV500_SDK_V2.0.1.0
一、编译内核
使用Hi3516DV300的默认内核配置即可,不用进行修改,可通过menuconfig查看一下关键选项
$ cp arch/arm/configs/hi3516dv300_smp_defconfig .config
$ make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage
二、编译模块
$ make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules
把libcomposite.ko和usb_f_uvc.ko拷贝到目标板上
三、编译uvc_app
进入uvc_app目录,make生成可执行文件,并拷贝到目标板上
sample/uvc_app$ make
四、测试
1、修改目标板/etc/profile,增加环境变量
export VID="0x12d1"
export PID="0x4321"
export MANUFACTURER="Huawei"
export PRODUCT="HiCamera"
export SERIALNUMBER="12345678"
export CamControl1=0xa
export CamControl2=0x0
export CamControl3=0x0
export ProcControl1=0x4f
export ProcControl2=0x14
export YUV="360p"
export MJPEG="360p 720p 1080p"
export H264="360p 720p 1080p "
2、加载模块
# insmod libcomposite.ko
# insmod usb_f_uvc.ko
3、把SDK提供的ConfigUVC.sh拷贝的目标板并运行
ConfigUVC.sh脚本:
#!/bin/sh
mount -t configfs none /sys/kernel/config/
cd /sys/kernel/config/usb_gadget/
mkdir camera
cd camera
echo $VID > idVendor
echo $PID > idProduct
mkdir strings/0x409
echo $MANUFACTURER > strings/0x409/manufacturer
echo $PRODUCT > strings/0x409/product
echo $SERIALNUMBER > strings/0x409/serialnumber
mkdir functions/uvc.usb0
cd functions/uvc.usb0
mkdir control/header/h/
echo "0x0110" > control/header/h/bcdUVC
echo "48000000" > control/header/h/dwClockFrequency
ln -s control/header/h/ control/class/fs/
ln -s control/header/h/ control/class/ss/
cat <<EOF> control/terminal/camera/default/bmControls
$CamControl1
$CamControl2
$CamControl3
EOF
cat <<EOF> control/processing/default/bmControls
$ProcControl1
$ProcControl2
EOF
#YUV
mkdir streaming/uncompressed/u/
for i in $YUV
do
if [ $i