你好,我看到NPU的介绍上提到支持OPENCL等框架。但是我没有找到任何介绍和例程。请问V851se的NPU是否可以配置成执行自定义并行代码的模式?
iamseer 发布的帖子
-
请问V851se的NPU是否可以做通用并行计算?
-
回复: 请教OV9281摄像头在V851SE的Tinyvision板子上的移植。
更新一下,
这两份教程对于驱动编写很有帮助Tina Linux Camera开发指南
https://www.cnblogs.com/weidongshan/articles/17183702.html全志Linux Tina-SDK开发完全手册
https://tina.100ask.net/SdkModule/Linux_MIPI_CSI_DevelopmentGuide-05/我的配置里没有 info->time_hs 项。加入后调为0x30,仍然不出图。但是改为0x20,就可以出图了。
-
请教OV9281摄像头在V851SE的Tinyvision板子上的移植。
我这边需要实现200帧以上的灰度图抓取,所以选用了OV9281摄像头。但是由于没买到引脚顺序一致的摄像头,所以自己用扩展板焊了一个,飞线确实可能影响信号完整性,正经的等长板子在打了,需要几天才能寄来。暂时先用这个测。
驱动的部分是用默认的GC2053改的,参考了Rockchip的OV9281驱动。附上DTS和驱动文件(没改完):目前/dev/video0出现了,使用camerademo也能看到I2C通讯和MIPI输出。
但是报错
[CAMERA_ERR] camera0 select timeout,end capture thread!
帧率显示为0我尝试观察了MIPI的输出,把逻辑分析仪挂到FPC连接器17,18脚,即DP0,DN0。能看到LP向HS转换时的LP01状态,所以正反应该没接错。另外通过修改传感器寄存器,可以让DP1,DN1不输出,也可以让CP和CN进入Gated clock观察到LP01。所以接线应该没有错。
我怀疑问题还是在时序上,目前寄存器配置PLL1 pix clk为800M,PLL1 sys clk为80M。所以我猜测像素时钟是80M,每lane的输出是800Mbps (初次调MIPI不一定对)。
Rockchip里对于1280x800x30fps的设置是:
#define OV9282_VTS_30_FPS 0xe48
#define OV9282_HTS_30_FPS 0x2d8
那3656(E48)*728(2D8)*30 = 79.84M,似乎和80M的时钟能对上。
只是728比800还少,不太明白为什么,但很多驱动都是用这个数。突发的数据传输每33.3ms一次,应该对应是30帧。
其中突发的传输是7.4ms,802个下降沿,应该对应800的分辨率。至于7.4ms,我实在算不出这个数据是和什么对应。进一步放大图像,这应该是每一行的传输。
空闲为14.3us,传输为8.4us。这两个数据我也没有算出对应的设置。另外摄像头卖家提供的驱动似乎来自君正,
hts 0x5b0=1456
vts 0x71c=1820
此时800个LP模式的空闲为14.56ms,占33.33ms的比例与800/1280基本一致。
但是每个LP为9.8us,后面高速数据为8.3us,这个数据我也没有算出对应的设置。这两种hts和vts设置都有camera0 select timeout错误。还烦请有经验的前辈分享一下经验和建议。
-
分享 TinyVision 板子SDK编译的docker文件
最近折腾了两天终于搞定了SDK编译,而且成功生成了img也烧录启动了。分享兼备份一下docker文件。毕竟docker比vmware这类的方便迁移多了。
这里我跳过docker的介绍和安装过程。首先需要确认docker的内存要给足。我观察到编译到opencv的dnn模块时内存占用能上升到26G,如果内存不够,编译会失败。我使用的这台电脑有16G内存而docker默认是使用50%的内存以及25%的swap空间。这样一共12G是不够的。我设置内存分配12G和20G的swap空间,这样一共32G,可以编译。
另外说明一点,这台主机的所有源全部可以直连,如果你不能的话需要添加或者更改源。另外Dockerfile里面的用户名密码要改成你的。
如果你不用docker,也可以参考一下Dockerfile来手工安装。
容器启动以后,首先可以执行top看看内存和swap够不够。然后依次执行:
# supress some git warning git config --global --add safe.directory /tina-v853-open/brandy/brandy-2.0/u-boot-2018 source build/envsetup.sh echo "Y" | lunch v851se-tinyvision-tina # setup needed, can just save and exit m menuconfig # for debug: make -j1 V=s make -j4 pack #then copy the compiled img to host and use Phoenixcard
然后就可以把生成的img文件复制到主机上,然后用Phoenixcard烧写TF卡。如果你是用随附的yaml构建容器,那复制到/opt/script里就能出现在主机里了。
另外附上Dockerfile内容,谨防附件失效。
# Use the Ubuntu 20.04 minimal image as the base FROM ubuntu:20.04 # Set environment variable to prevent tzdata asking for geographic area ENV DEBIAN_FRONTEND=noninteractive # Install any dependencies or packages required by your application RUN apt-get -y update # install dependencies RUN apt-get install -y build-essential subversion git libncurses5-dev zlib1g-dev gawk flex bison quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lsof python3 python2 python3-dev android-tools-mkbootimg python2 libpython3-dev # add i386 architecture RUN dpkg --add-architecture i386 RUN apt-get update RUN apt-get install -y gcc-multilib RUN apt-get install -y libc6:i386 libstdc++6:i386 lib32z1 # Install Repo tool RUN curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo RUN chmod a+x /usr/local/bin/repo # Start to set up the tina-v853 SDK RUN mkdir /tina-v853-open WORKDIR /tina-v853-open # # set up git credential RUN git config --global credential.helper store RUN git config --global user.name "名字" RUN git config --global user.email "邮箱" # Add credentials to credential store RUN echo "https://aw-ol的用户名:aw-ol的密码@sdk.aw-ol.com" > ~/.git-credentials ENV REPO_COLOR=0 #initialize the repo RUN repo init -u https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git -b master -m tina-v853-open.xml #sync the repo, took about 30 minutes in midnight RUN repo sync #start SDK RUN repo start devboard-v853-tina-for-awol --all RUN curl -LO https://github.com/YuzukiHD/TinyVision/releases/download/tina.0.0.2/tina-bsp-tinyvision.tar.gz RUN tar xvf tina-bsp-tinyvision.tar.gz #init SDK # Use bash to run commands RUN apt-get install -y python wget rsync vim bc u-boot-tools cpio busybox #RUN ls openwrt/package/allwinner/vision/libAWIspApi/machinfo/v851se/ #make sure it exists RUN cat openwrt/package/allwinner/vision/libAWIspApi/machinfo/v851se/build.mk #root can compile ENV FORCE_UNSAFE_CONFIGURE=1