ncapi1.x移植到arm下

移植说明

需要移植libmvnc.so和MvNCAPI.mvcmd,而通过readelf发现,libmvnc.so的依赖库有libusb.so所以也要移植libusb.so,关于libusb.so的移植,见我的另一篇文章:https://mp.csdn.net/mdeditor/92841846#
我使用的版本是1.0.22

交叉编译libmvnc.so

1 cd ~/opensource/ncsdk/api/src
2 把原先的Makefile备份,然后修改Makefile
LIBS += -lpthread -lusb-1.0 -ldl —> LIBS += -lpthread -ldl
$(CC) $(LDFLAGS) $(OBJS) -o $@ $(LIBS) —> $(CC) $(LDFLAGS) $(OBJS) -o $@ $(LIBS) libusb-1.0.so
3 编译
make clean
make api ARCH=arm CC=arm-hisiv500-linux-gcc
这就生成了我们需要的libmvnc.so
4 把libmvnc.so和libusb-1.0.so拷贝出来,就是我们需要动态库
需要注意的事libusb-1.0.so是libusb-1.0.so.0的软链接,libusb-1.0.so.0放在/lib/下
5 头文件在
~/opensource/ncsdk/api/include
~/opensource/libusb-1.0.22/_install_armhi/include/libusb-1.0

MvNCAPI.mvcmd

MvNCAPI.mvcmd是vpu固件,默认的程序在打开设备,获取设备handle时需要先将固件烧录到VPU中。
MvNCAPI.mvcmd存放在~/opensource/ncsdk/api/src/mvnc/目录,我们直接拷贝出来
放在arm下的libmvnc.so所在目录的/mvnc/目录中,当然这个目录也可以在mvnc_api.c中修改。

更新usb规则

规则文件:97-usbboot.rules
在目录:~/opensource/ncsdk/api/src/
拷贝到目录:/etc/udev/rules.d/
然后执行命令更新规则:
udevadm control --reload-rules
udevadm trigger
至此,api便移植成功了,可以跑程序了。

猜你喜欢

转载自blog.csdn.net/kakasxin/article/details/92842112
今日推荐