全志V853-高性能边缘AI视觉处理芯片
V853 是一颗面向智能视觉领域推出的新一代高性能、低功耗的处理器SOC,可广泛用于智能门锁、智能考勤门禁、网络摄像头、行车记录仪、智能台灯等智能化升级相关行业。V853 集成Arm Cortex-A7和RISC-V E907 双CPU,内置最大 1T 算力 NPU,使用全志自研 Smart 视频引擎,最大支持5M@25fps H.265编码和5M@25fps H.264编解码,同时集成高性能 ISP 图像处理器,可为客户提供专业级图像质量。V853 还支持 16-bit DDR3/DDR3L,满足各类产品高带宽需求;支持 4lane MIPI-CSI/DVP/MIPI-DSI/RGB 等丰富的专用视频输入输出接口,满足各类AI视觉产品需求;采用先进的22nm工艺,具有更优的功耗和更小的芯片面积。
全志V853开发板介绍
- 很荣幸能第一手拿到全志V853的开发板。接下来开始介绍介绍这款开发板。
- 全志V853开发板规格参数:
类型 | 说明 |
---|---|
主控 | 全志V853 (Arm A7 1GHz RISC-V E907 600MHz 1T NPU) |
DDR | 512MB DDR3 |
Memory | 8GB eMMC |
无线网络 | 2.4G WiFi/BT(型号:全志XR829模组) |
有线网络 | 100Mbps以太网 |
摄像头 | 1080P双目摄像头 |
屏幕 | 7寸 LCD屏幕 |
麦克风 | 模拟麦克风 *2 |
DEBUG | 支持uart串口调试,支持ADB USB调试 |
USB | Type-C USB * 1, 同时支持供电和数据传输 |
PMU | 全志AXP2101 |
- 全志V853系统配置:官方支持Tina Linux 5.0系统,基于Linux4.9内核和uboot-2018。其中:
- Tina Linux 是全志科技基于Linux内核开发的针对智能硬件类产品的嵌入式软件系统。
- Tina Linux v5.0 中包含 Linux 系统开发用到的 boot 源码、内核源码、驱动、工具、系统中间件与应用程序包。可以方便的定制、编译、打包生成Linux固件镜像。
- Tina Linux v5.0 可以支持构建 openWrt 和 buildroot 不同构建系统;也支持单独编译 BSP(Board Support Package,板级支持包);能够打包生成固件包,烧录到相应设备中并运行。
- 全志V853开发板的硬件外设
全志V853--交叉编译
- 为啥要写交叉编译呢?是因为全志提供的文档中描述的OpenWRT的构建方式,而我采用的buildroot进行构建。他们两者采用的交叉工具链是不一样的。其中:OpenWRT采用musl工具链,而buildroot采用的glibc工具链。
- 为了避免其他人采用buildroot也按照文档进行操作,导致应用编译完无法运行起来。所以我补充一下buildroot构建中,应用的交叉编译。
- 编写HelloWorld:
#include <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
- V853的编译工具链的路径:prebuilt/rootfsbuilt/arm/。里面包含了两个工具链:musl和glibc,而buildroot采用了glic。
- 所以gcc编译器的路径:prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/bin/。而编译是需要用到的库文件和头文件路径:prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/arm-openwrt-linux-gnueabi/
- 指定存放交叉编译需要使用的库文件头文件的文件夹
v853@v853:~/$ export STAGING_DIR=~/v853/tina-v853/prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/arm-openwrt-linux-gnueabi/
- 编译应用程序:
v853@v853:~/$ export STAGING_DIR=~/v853/tina-v853/prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/bin/arm-openwrt-linux-gcc -o helloworld main.c
v853@v853:~/$ ls
helloworld main.c
v853@v853:~/$
- 我是采用挂载SD卡的形式将应用程序拷贝到板子的。所以将编译好的应用程序helloworld拷贝到SD卡。
- 板子上验证结果:
// 挂载SD卡到test目录上
# mount /dev/mmcblk1 /mnt/test/
// 运行应用
# ./helloworld
Hello World!#