0. 文档目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/ReleaseDoc/zh$ tree -L 4
.
├── 00.hardware  # 硬件相关文档
├── 01.software  # 软件相关文档
│   ├── board
│   │   ├── Hi3519AV100 SDK 安装及升级使用说明.pdf  # sdk 安装,编译,烧录说明。本文后面的内容主要参考此文档。
│   │   ├── Hi3519AV100与Hi3559AV100 开发包差异说明.pdf
│   │   ├── MPP
│   │   │   ├── HDMI 开发参考.pdf
│   │   │   ├── HiMPP V4.0 媒体处理软件 FAQ.pdf
│   │   │   ├── HiMPP V4.0 媒体处理软件开发参考.pdf  # camera 功能开发参考文档。进行 camera 应用开发时主要参考此文档。
│   │   ├── OSDRV
│   │   │   ├── Hi3519AV100╱Hi3556AV100 U-boot 移植应用开发指南.pdf
│   │   │   ├── Hi3519AV100╱Hi3556AV100 开发环境用户指南.pdf
│   │   │   ├── UBI 文件系统使用指南.pdf
│   │   │   ├── 外围设备驱动 操作指南.doc
│   │   │   └── 裸烧及非裸烧升级 使用手册.pdf
│   │   ├── PQ
│   │   └── SVP
│   ├── Hi3519AV100R001 Open Source Software Notice.doc
│   ├── HiMPP SDK 二次开发网络安全注意事项.pdf
│   ├── pc
├── 02.only for reference

1. sdk 目录结构

我们拿到的 sdk 有以下文件:

1
2
3
4
5
6
7
8
9
10
11
12
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519$ ll
-rwxr-x---  1 qiushao geoclue 1870000000 Apr  3 08:54 arm-himix200-linux.part1.rar*
-rwxr-x---  1 qiushao geoclue 1861766810 Apr  3 08:54 arm-himix200-linux.part2.rar*
-rwxr-x---  1 qiushao geoclue 1519247343 Apr  3 08:55 Hi3519AV100R001C02SPC020.rar*
-rwxr-x---  1 qiushao geoclue   12771415 Apr  3 08:56 HiDPU_PC_V2.0.0.0.tgz*
-rwxr-x---  1 qiushao geoclue   22645270 Apr  3 08:56 HiIVE_PC_V2.1.0.8_64bit_sec.tgz*
-rwxr-x---  1 qiushao geoclue 1710000000 Apr  3 08:55 HiSVP_PC_V1.2.2.0.part1.rar*
-rwxr-x---  1 qiushao geoclue 1710000000 Apr  3 08:55 HiSVP_PC_V1.2.2.0.part2.rar*
-rwxr-x---  1 qiushao geoclue 1710000000 Apr  3 08:54 HiSVP_PC_V1.2.2.0.part3.rar*
-rwxr-x---  1 qiushao geoclue 1681662082 Apr  3 08:56 HiSVP_PC_V1.2.2.0.part4.rar*
-rwxr-x---  1 qiushao geoclue      15852 Apr  3 08:55 linux-4.9.y.rar*
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519$

我们目前用到的只有前面三个文件。其中 arm-himix200-linux 是编译工具链。 Hi3519AV100R001C02SPC020 是 sdk 及一些工具。
Hi3519AV100R001C02SPC020.rar 解压后的目录结构如下:

1
2
3
4
5
6
7
8
9
10
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/Hi3519AV100R001C02SPC020$ tree
.
├── 00.hardware  # 硬件相关设计文档
├── 01.software  # 软件相关,包括 sdk 代码和烧录工具,调试工具等
│   ├── board
│   │   └── Hi3519AV100_SDK_V2.0.2.0.tgz
│   └── pc
│       └── HiTool
│           └── HiTool-BVT-5.2.7.zip
└── 02.only for reference  # 其他参考文档,包括 sensor 规则书,uboot 移植相关的硬件信息表等

其中 Hi3519AV100_SDK_V2.0.2.0.tgz 是最重要的 sdk 代码包。我们把它拿出来解压。目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/Hi3519AV100_SDK_V2.0.2.0$ tree
.
├── package
│   ├── drv.tgz
│   ├── mpp_smp_linux.tgz
│   ├── osal.tgz
│   └── osdrv.tgz
├── scripts
│   └── common.sh
├── sdk.cleanup
├── sdk.unpack
└── smp_image_glibc├── rootfs_hi3519av100_128k.jffs2├── rootfs_hi3519av100_256k.jffs2├── rootfs_hi3519av100_2k_24bit.yaffs2├── rootfs_hi3519av100_2k_4bit.yaffs2├── rootfs_hi3519av100_32M.ext4├── rootfs_hi3519av100_64k.jffs2├── u-boot-hi3519av100.bin└── uImage_hi3519av100_smp

代码压缩文件都放在 package 目录。我们需要执行 sdk.unpack 脚本来解压代码:

1
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/Hi3519AV100_SDK_V2.0.2.0$ ./sdk.unpack

解压代码后目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/Hi3519AV100_SDK_V2.0.2.0$ tree -L 4
.
├── osdrv  # bsp 相关代码, 主要包含 uboot, kernel, rootfs
│   ├── components
│   │   ├── ipcm
│   │   └── pcie_mcc
│   ├── Makefile
│   ├── opensource
│   │   ├── busybox  # busybox 源码
│   │   ├── kernel   # kernel 源码,
│   │   └── uboot
│   ├── pub  # 编译出来的镜像放在这个目录
│   ├── rootfs_scripts
│   └── tools # 编译镜像需要的一些工具
├── package  # 压缩的 sdk
├── scripts  # sdk 解压相关脚本
├── sdk.cleanup
├── sdk.unpack
├── smp
│   ├── a53_linux
│   │   ├── drv
│   │   │   ├── extdrv    # 外设驱动
│   │   │   └── interdrv  # 内部芯片驱动
│   │   ├── mpp           # 媒体处理相关的驱动,库,头文件以及 sample等。应用层的开发主要就是使用这些库来进行开发了。
│   │   │   ├── cfg.mak
│   │   │   ├── component
│   │   │   ├── include  # mpi 头文件
│   │   │   ├── init       # 媒体模块驱动初始化
│   │   │   ├── ko         # 预编译好的驱动文件及加载脚本
│   │   │   ├── lib        # 预编译好的 mpi 静态库和动态库
│   │   │   ├── Makefile.linux.param
│   │   │   ├── Makefile.param
│   │   │   ├── obj        # 预编译好的驱动 .o 文件
│   │   │   ├── sample     # mpi 接口使用样例,供开发参考。
│   │   │   └── tools      # 调试工具
│   │   └── osal           # 操作系统抽象层(Linux, Liteos)
│   │       ├── include
│   │       └── linux
│   └── dsp_liteos
└── smp_image_glibc       # 预编译好的系统镜像: uboot, kernel, rootfs

2. 编译工具安装

2.1 依赖安装

先安装以下这些工具,不然编译会出现各种莫名其妙的错误:

1
sudo apt-get install gperf bison flex libuuid1 u-boot-tools zlib1g-dev build-essential ncurses-dev libacl1-dev liblzo2-dev uuid-dev zlib1g-dev liblzo2-dev uuid-dev pkg-config texinfo

2.2 编译工具链安装

把 arm-himix200-linux.rar 解压后,得到 arm-himix200-linux.tgz。再解压一次得到 arm-himix200-linux 目录,结构如下:

1
2
3
4
5
6
7
8
9
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/arm-himix200-linux$ tree
.
├── arm-himix200-linux.install
├── arm-himix200-linux.tar.bz2
├── gdb_build.sh
├── gdb_readme_cn.txt
├── gdb_readme_en.txt
├── readme.txt
└── runtime_glibc.tgz

按文档的操作,是需要 sudo 执行 arm-himix200-linux.install 进行安装。其实只要把工具链解压,并设置一下 PATH 环境变量就行了:

1
2
3
4
5
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/arm-himix200-linux$ tar xvf arm-himix200-linux.tar.bz2
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/arm-himix200-linux$ tar xvf runtime_glibc.tgz -C arm-himix200-linux/
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/arm-himix200-linux/arm-himix200-linux/bin$ cd
qiushao@qiushao-pc:~$ echo 'PATH=/media/qiushao/source-code/Hi3519/arm-himix200-linux/arm-himix200-linux/bin:$PATH' >> ~/.bashrc
qiushao@qiushao-pc:~$ source ~/.bashrc

3. 编译烧录 uboot, kernel, rootfs

编译方法主要参考 Hi3519AV100_SDK/osdrv/readme_cn.txt 说明文件。

3.1 下载 kernel

由于 GPL 协议的问题,海思并没有把 kernel 的代码一起发布。需要我们自己下载 kernel 源码:

1
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519/Hi3519AV100_SDK/osdrv/opensource/kernel$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.9.37.tar.gz

3.2 编译系统镜像

在 osdrv 目录下执行 make all 就行

1
2
3
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/osdrv$ make all
...
---------finish osdrv work

出现 finish osdrv work 提示,说明已经编译完成了。
编译生成的镜像放在 osdrv/pub/smp_image_glibc 目录下:

1
2
3
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/osdrv/pub/smp_image_glibc$ ls
rootfs_hi3519av100_128k.jffs2  rootfs_hi3519av100_2k_24bit.yaffs2  rootfs_hi3519av100_32M.ext4   u-boot-hi3519av100.bin
rootfs_hi3519av100_256k.jffs2  rootfs_hi3519av100_2k_4bit.yaffs2   rootfs_hi3519av100_64k.jffs2  uImage_hi3519av100_smp

3.3 烧录系统

SPI Nand Flash 的地址空间安排如下:

1
2
3
|           1M         |          4M         |        32M          |
|----------------------|---------------------|---------------------|
|          uboot       |         kernel      |       rootfs        |

3.3.1 hitool 烧录

如果板子是空板的话,需要使用 hitool 进行烧录。请参考 HiBurn工具使用指南.pdf

3.3.2 tftp 烧录

如果板子上有 uboot 的话,且板子有网口的话,则可以使用 tftp 来烧录。因为 hitool 没有提供 linux 版本,所以我一般都是使用 tftp 来烧录了。

    1. tftp 配置
      上一篇文章我们已经介绍过 tftp 服务环境的搭建了。先修改 tftp 的目录为编译生成 images 的目录:

      1
      2
      3
      4
      5
      6
      
      # /etc/default/tftpd-hpaTFTP_USERNAME="tftp"
      TFTP_DIRECTORY="/media/qiushao/source-code/Hi3519AV100_SDK/osdrv/pub/smp_image_glibc"
      TFTP_ADDRESS=":69"
      TFTP_OPTIONS="-l -c -s"
      

      然后重启 tftp 服务。

      1
      
      qiushao@qiushao-pc:/etc/default$ sudo service tftpd-hpa restart
      
    1. pc 网络信息查看
      ubuntu 下查看 pc 的 ip, 网关等信息的方法

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      
      qiushao@qiushao-pc:~$ ifconfig
      wlp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.3.29  netmask 255.255.255.0  broadcast 192.168.3.255inet6 fe80::f7d3:b73c:461a:af45  prefixlen 64  scopeid 0x20<link>inet6 240e:fe:3839:339:c717:1207:24ef:fd76  prefixlen 64  scopeid 0x0<global>inet6 240e:fe:3839:300:7c94:2acf:4818:8  prefixlen 128  scopeid 0x0<global>inet6 240e:fe:3839:339:1002:ba0c:2ed:5ffa  prefixlen 64  scopeid 0x0<global>ether 40:74:e0:b3:f2:63  txqueuelen 1000  (Ethernet)RX packets 36413  bytes 33826854 (33.8 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 16292  bytes 2617305 (2.6 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0qiushao@qiushao-pc:~$
      qiushao@qiushao-pc:~$ route -n
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      0.0.0.0         192.168.3.1     0.0.0.0         UG    600    0        0 wlp4s0
      169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 virbr0
      172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
      192.168.3.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp4s0
      192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
      qiushao@qiushao-pc:~$
      

      根据以上信息得到 pc 的网络信息如下:
      ip: 192.168.3.29
      netmask: 255.255.255.0
      gateway: 192.168.3.1
      mac: 40:74:e0:b3:f2:63

    1. 板子网络信息配置
      板子需要接入和 pc 同一个局域网。板子上电后, 敲任意键进入 u-boot。设置 serverip(即 tftp 服务器的 ip), ipaddr(板子 ip)和 ethaddr(板子的 MAC 地址)。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
      hisilicon # setenv serverip 192.168.3.29
      hisilicon # setenv ipaddr 192.168.3.30  # 板子的 ip,参考 serverip, 修改最后一位即可。
      hisilicon # setenv netmask 255.255.255.0
      hisilicon # setenv gatewayip 192.168.3.1
      hisilicon # setenv ethaddr 40:74:e0:b3:f2:64  # 参考 pc 的 mac, 修改最后一位即可。
      hisilicon # saveenv
      Saving Environment to NAND...
      Erasing NAND...
      Erasing at 0xa0000 -- 100% complete.
      Writing to NAND... OK
      hisilicon # ping 192.168.3.29  # 确认网络设置正常。
      ETH0: PHY(phyaddr=1, rgmii) link UP: DUPLEX=FULL : SPEED=1000M
      MAC:   54-E1-AD-0A-A1-F8
      Using gmac0 device
      host 192.168.3.29 is alive
      hisilicon #
      
    1. 烧录分区

      • 烧写 u-boot

        1
        2
        3
        
        mw.b 42000000 ff 80000
        tftp 0x42000000 u-boot-hi3519av100.bin
        nand erase 0 80000;nand write 42000000 0 80000
        
      • 烧写内核
        1
        2
        3
        
        mw.b 42000000 ff 400000
        tftp 42000000 uImage_hi3519av100_smp
        nand erase 100000 400000;nand write 42000000 100000 400000
        
      • 烧写根文件系统
        1
        2
        3
        
        mw.b 42000000 ff 2000000
        tftp 42000000 rootfs_hi3519av100_2k_4bit.yaffs2
        nand erase 500000 2000000;nand write.yaffs 42000000 500000 0xafeb00 (0xafeb00 为实际文件大小)
        
      • 设置启动参数
        1
        2
        3
        
        setenv bootargs 'mem=256M console=ttyAMA0,115200 clk_ignore_unused root=/dev/mtdblock2 rw rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),32M(rootfs)'
        setenv bootcmd 'nand read 0x42000000 100000 400000; bootm 0x42000000'
        saveenv
        
      • 重启系统
        1
        
        reset
        

4. 板子网络环境配置

经过上面的步骤,我们的系统是跑起来了,但只是把 kernel 启动了,根文件系统挂载了而已,什么业务都没有运行的。我们需要编写自己的应用在上面运行才可以。
在写代码之前我们还需要配置一下板子的网络环境,以便开发调试。在开发阶段,推荐使用 NFS 作为开发环境,可以省去重新制作和烧写根文件系统的工作。也不需要频繁用 u 盘 copy 文件。

4.1 pc端配置nfs服务

pc 端 nfs 服务的配置之前已经介绍过了,这里面就不再重复。我们把 nfs share 的目录改成 Hi3519AV100_SDK:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
qiushao@qiushao-pc:/etc$ cat exports
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/media/qiushao/source-code/Hi3519AV100_SDK *(rw,sync,no_subtree_check,root_squash)
qiushao@qiushao-pc:/etc$
qiushao@qiushao-pc:/etc$ sudo exportfs -a
qiushao@qiushao-pc:/etc$ sudo service nfs-kernel-server restart

4.2 设置板子的 mac,ip 等信息

1
2
3
4
5
6
7
8
9
10
11
12
~ # ifconfig eth0 hw ether 40:74:e0:b3:f2:64
~ # ifconfig eth0 192.168.3.30 netmask 255.255.255.0
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
~ # hi_gmac_v200 40e0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready~ # route add default gw 192.168.3.1
~ # ping 192.168.3.29
PING 192.168.3.29 (192.168.3.29): 56 data bytes
64 bytes from 192.168.3.29: seq=0 ttl=64 time=43.142 ms
64 bytes from 192.168.3.29: seq=1 ttl=64 time=62.610 ms
64 bytes from 192.168.3.29: seq=2 ttl=64 time=76.662 ms

4.3 板子上挂载 nfs 文件系统

1
2
3
4
5
~ # mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 192.168.3.29:/media/qiushao/source-code/Hi3519AV100_SDK /mnt
~ # ls /mnt
osdrv            scripts          sdk.unpack       smp_image_glibc
package          sdk.cleanup      smp
~ #

5. 编译运行 sample

5.1 编译 sample

海思 sdk 里面带了一些 sample:

1
2
3
4
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/smp/a53_linux/mpp/sample$ ls
audio  awb_online_calibration  dis  fisheye  lsc_online_cali  Makefile.param  region      smp_linux.mak  svp  traffic_capture  vdec  vgs
avs    common                  dpu  hifb     Makefile         pciv            scene_auto  snap           tde  uvc_app          venc  vio
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/smp/a53_linux/mpp/sample$

我们先试着在上面跑个简单的 vio sample 看看。vio sample 的功能是从摄像头输出,然后输出到 hdmi。
编译的方法很简单,进入 sample/vio 目录,直接 make 就行。编译成功的话,会在 vio 目录生成一个 sample_vio_main 文件:

1
2
3
4
5
6
7
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/smp/a53_linux/mpp/sample$ cd vio
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/smp/a53_linux/mpp/sample/vio$ ls
Makefile  res  sample_vio.h  sample_vio_main.c  smp
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/smp/a53_linux/mpp/sample/vio$ make
...
qiushao@qiushao-pc:/media/qiushao/source-code/Hi3519AV100_SDK/smp/a53_linux/mpp/sample/vio$ ls
Makefile  res  sample_vio.h  sample_vio_main  sample_vio_main.c  sample_vio_main.o  smp

5.2 加载设备驱动

现在我们又回到板子上进行操作。
在运行 sample 之前我们需要先加载 hisi 的驱动

1
2
3
4
5
6
7
8
9
10
/ # cd /mnt/smp/a53_linux/mpp/ko
/mnt/smp/a53_linux/mpp/ko # ./load3519av100 -i -sensor0 imx334
mmz_start: 0x32000000, mmz_size: 1760M
sys_config: loading out-of-tree module taints kernel.
==========sensr0: imx334==========
==========sensr1: imx334==========
==========sensr2: imx334==========
==========sensr3: imx334==========
==========sensr4: imx334==========
Module himedia: init ok

5.3 运行 sample

驱动加载成功之后,就可以开始运行 sample 啦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/mnt/smp/a53_linux/mpp # cd sample/vio/
/mnt/smp/a53_linux/mpp/sample/vio # ./sample_vio_main
Usage : ./sample_vio_main <index> <intf>
index:0)VI(Online) - VPSS(Online) - VO.1)VI(Offline)- VPSS(Offline) - VO. LDC+DIS+SPREAD.2)VI(Offline)- VPSS(Online) - VO.  Double pipe.3)VI(Online)- VPSS(Offline) - VO.  Double chn.4)Resolute Ratio Switch.5)GDC - VPSS LowDelay.6)Double WDR Pipe.7)FPN Calibrate & Correction.8)WDR Switch.9)90/180/270 Rotate.10)Mipi Demux Yuv.11)UserPic.
intf:0) vo HDMI output, default.1) vo BT1120 output.
/mnt/smp/a53_linux/mpp/sample/vio # ./sample_vio_main 0
[SAMPLE_COMM_VI_SetMipiAttr]-1408: ============= MipiDev 0, SetMipiAttr enWDRMode: 0
linear mode
===Imx334 8M30fps 12bit LINE Init OK!===
[SAMPLE_COMM_ISP_Thread]-187: ISP Dev 0 running !
[SAMPLE_COMM_VO_StartChn]-544: u32Width:1920, u32Height:1080, u32Square:1
---------------press Enter key to exit!---------------

至此,系统就已经运行起来了, sample 也运行起来了。后面我们再来逐步学习 camera 系统相关的开发知识。

Hi3519AV100 sdk 介绍相关推荐

  1. 系统SDK介绍-02

    系统SDK介绍 打开相册选择图片 打开相册选择视频 打开相机拍摄图片 打开相机拍摄视频 配置权限: 在info.plist文件中添加需要的权限 相机权限:Privacy - Camera Usage ...

  2. iOS SDK 介绍及导入

    iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SDK_Core: 为核心的消息同步协议实现,完成与服务器之间的信息交换. SDK: 是基 ...

  3. yocto Extensible SDK介绍

    yocto Extensible SDK介绍 使用yocto Extensible SDK 1.1 为什么使用yocto Extensible SDK及其包含了什么 1.2 安装 Extensible ...

  4. ST17H66 低功耗蓝牙SOC开发(1)—— SDK介绍

    目录 1.资料获取 2.开发环境 3.ST17H66开发SDK获取 4.SDK介绍 4.1 components 4.2 example 4.3 lib 4.4 misc 1.资料获取 伦茨17Hxx ...

  5. 叠幻AR SDK介绍

    SDK介绍 叠幻AR SDK是北京叠幻三维科技有限公司拥有完全自主知识产权的增强现实AR核心算法软件套件.叠幻AR SDK在浏览器端(Web)和小程序端通过极致优化增强现实AR的核心算法,为企业客户提 ...

  6. 开发自己的DJI四旋翼无人机(A3飞控Onboard SDK和Mobile SDK介绍)

    大疆作为无人机行业的佼佼者,其应用范围从户外旅行.拍照到影视拍摄,以及工业运用都有着极高的地位.那么,我们如何仅仅使用大疆的飞控来开发出我们自己的无人机呢? 首先,你需要如下的东西: 以及相应的机架, ...

  7. NRF52832官方SDK介绍

    SDK(Software Development Kit)是指软件开发包,一般是由官方提供,主要用来介绍开发流程,提供常用的例程代码等等.可以降低开发者使用的门槛,提高开发效率,所以在开发者在进行具体 ...

  8. 手游海外聚合SDK介绍

    手游海外聚合SDK[免费] 手游海外聚合SDK 功能介绍 产品特点 客服系统 数据分析 兼容测试 手游海外聚合SDK TopSDK为游戏客户提供出海所必备的技术产品解决方案.包含统一的账号体系.当地使 ...

  9. 基于DLP4500的结构光单目相机3D扫描SDK介绍(附源码)(1)

    智能机器人性能的一个关键组成部分就是机器视觉(MV)技术,这是计算机与高速摄像头的完美结合.通过结合这两种技术,就可以执行复杂的检查任务及数字图像采集和分析.这些数据可以用来控制机器人手臂.对物体进行 ...

  10. 微软移动 Nokia Lumia SensorCore SDK 介绍及上手体验

    早在今年的BUILD大会上,诺基亚就宣布了SensorCore以及它的部分演示.今天,它终于面世了,大家可以去Building Apps for Windows 上查看具体介绍,或者也可以去Nokia ...

最新文章

  1. vb编程入门_【高能】用VB开发的彩票选号软件
  2. 多波次导弹发射中的规划问题(二) 问题一解答
  3. leetcode算法题--最长上升子序列
  4. shiro的QuickStart
  5. 喜报 | 大地影院集团签约神策数据,影院 + 数据化高光时刻开启
  6. PHP算法导出Excel实现字段联动
  7. Java中的安全加密
  8. 1103: 平均学分绩点(函数专题)
  9. linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法
  10. 用大数据看程序员,让你见到不为人知的一面!
  11. eslint的安装与使用
  12. windows下执行testng用例
  13. mongorepository查询条件_Java操作MongoDB采用MongoRepository仓库进行条件查询 | 学步园...
  14. 第二阶段小组冲刺第三天总结
  15. Unity WebGL自带VideoPlayer播放视频
  16. 微软Windows字体被诉侵权?我们来聊聊有关网站侵权被诉的那些事。
  17. PIKA trouble02 -- (error) ERR Syntax error, try CLIENT (LIST [order by [addr|idle]| KILL ip:port)
  18. android窗口变化事件,android ViewPager滑动事件讲解
  19. AS3动画效果常用公式
  20. 一位腾讯产品的微信公众号运营手册

热门文章

  1. ensp下载与安装问题
  2. 雄迈视频板使用调试串口作为普通串口通信
  3. php实现微信公众号群发消息接口(thinkphp3.2.3)
  4. 如何在码云上面上传本地项目
  5. 评价指标MSE和AUC的参考文献
  6. CSR1010A05-IQQM-R首款单模单芯片蓝牙低功耗
  7. proteus仿真微型计算机,微机原理与接口技术——基于8086和Proteus仿真(第3版)...
  8. Proteus仿真:MSP430
  9. QQ坦白说解密(一)
  10. 实例讲解反向传播(简单易懂)