海思开发板使用小结

在一个项目中,需要将uvc库libuvc源码移植到海思3559A上,实现用usb传输视频流,记录一下刚接触海思开发板时必须要用到的基础知识

一、将库移植到3559A上

1、安装交叉编译工具链
2、libuvc是在libusb上封装的,依赖libusb.

①、下载libusb,用3559的交叉编译工具编译
libusb源码

1、git clone https://github.com/libusb/libusb.git
2、cd libusb
3./autogen.sh
4./configure --target=arm-linux --host=aarch64-himix100-linux --prefix=/home/zhangyingyi/libusb-install CC=aarch64-himix100-linux-gcc --disable-udev
5、make
6、make install
  • –target=arm-linux 表示该软件在arm-linux平台被编译
  • –host=aarch64-himix100-linux 表示该软件编译完成后在arm64海思平台上运行
  • –prefix=/home/zhangyingyi/libusb-install 指定生成的库以及头文件的存放位置
  • CC=aarch64-himix100-linux-gcc 等于指定了交叉编译使用的C交叉编译器
  • CXX=CC=aarch64-himix100-linux-g++ 等于指定了交叉编译使用的C++交叉编译器

②、用cmake编译整个项目

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Linux-aarch64-3559A.cmake ..
make
#Linux-aarch64-3559A.cmake,指定c/c++编译工具链
# set cross-compiled system type, it's better not use the type which cmake cannot recognized.
SET ( CMAKE_SYSTEM_NAME Linux )
SET ( CMAKE_SYSTEM_PROCESSOR aarch64 )

# when hislicon SDK was installed, toolchain was installed in the path as below:
SET ( CMAKE_C_COMPILER "/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc" )
SET ( CMAKE_CXX_COMPILER "/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++" )
SET ( CMAKE_FIND_ROOT_PATH "/opt/hisi-linux/x86-arm/aarch64-himix100-linux" )

# set searching rules for cross-compiler
SET ( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
SET ( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
SET ( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )

# set ${CMAKE_C_FLAGS} and ${CMAKE_CXX_FLAGS}flag for cross-compiled process
SET ( CMAKE_CXX_FLAGS "-march=armv8-a ${CMAKE_CXX_FLAGS}" )

# cache flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
#CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(rgbd_opn_3559_test)
add_subdirectory(libuvc-0.0.6-for-rgbd)
add_subdirectory(opn-uvc-lib)
add_subdirectory(src)

libuvc-0.0.6-for-rgbd、opn-uvc-lib、src目录下都有各自的CMakeLists.txt,libuvc-0.0.6-for-rgbd、opn-uvc-lib可以看作是一个个module,src里的example依赖libuvc-0.0.6-for-rgbd、opn-uvc-lib编译出的库。其中libuvc-0.0.6-for-rgbd依赖前文编译出的libusb

二、海思开发板配置
1、设置ip,为了能与服务器处于一个局域网内
板子的uboot, kernel以及rootfs烧写并能正确启动后,在其shell下,打开下面这个文件:

//不一定是S80开头,但后缀是network
# vi /etc/init.d/S80network
//填入ipaddr、netmask、gateway
#!/bin/sh
ipaddr=10.9.67.202
bootp=
gateway=10.9.67.254
netmask=255.255.254.0
hostname=
netdev=eth0
autoconf=

保存后reboot,用 route 命令查看路由表是否更改成功
或者用命令行修改

//修改ip和掩码
# ifconfig eth0 10.9.67.202 netmask 255.255.254.0
//修改网关
# route add default gw 10.9.67.254

2、nfs将板子挂载到服务上
nfs服务器安装教程

挂载前先在开发板上ping服务器(记得连网线),看网络是否联通

ping 172.20.1.40
//moute -t nfs -o nolock 服务器ip:共享目录位置 挂载的开发板的目录
# mount -t nfs -o nolock 172.20.1.40:/home/nfs/zhangyingyi /mnt

挂载成功后,进入开发板的/mnt 目录就可以看到服务器上nfs共享目录/home/nfs/zhangyingyi里的文件了

你可能感兴趣的:(海思开发板使用小结)