全志V853开发板--buildroot应用交叉编译

描述

全志V853-高性能边缘AI视觉处理芯片

Buildroot

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工艺,具有更优的功耗和更小的芯片面积。

Buildroot

全志V853开发板介绍

  1. 很荣幸能第一手拿到全志V853的开发板。接下来开始介绍介绍这款开发板。
  2. 全志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
  1. 全志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,板级支持包);能够打包生成固件包,烧录到相应设备中并运行。
  1. 全志V853开发板的硬件外设
Buildroot

全志V853--交叉编译

  1. 为啥要写交叉编译呢?是因为全志提供的文档中描述的OpenWRT的构建方式,而我采用的buildroot进行构建。他们两者采用的交叉工具链是不一样的。其中:OpenWRT采用musl工具链,而buildroot采用的glibc工具链。

  2. 为了避免其他人采用buildroot也按照文档进行操作,导致应用编译完无法运行起来。所以我补充一下buildroot构建中,应用的交叉编译。

  3. 编写HelloWorld:

#include 

int main(void)
{
   printf("Hello World!");
   return 0;
}

  1. V853的编译工具链的路径:prebuilt/rootfsbuilt/arm/。里面包含了两个工具链:musl和glibc,而buildroot采用了glic。
  2. 所以gcc编译器的路径:prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/bin/。而编译是需要用到的库文件和头文件路径:prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/arm-openwrt-linux-gnueabi/
  3. 指定存放交叉编译需要使用的库文件头文件的文件夹
v853@v853:~/$ export STAGING_DIR=~/v853/tina-v853/prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/arm-openwrt-linux-gnueabi/
  1. 编译应用程序:
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:~/$
  1. 我是采用挂载SD卡的形式将应用程序拷贝到板子的。所以将编译好的应用程序helloworld拷贝到SD卡。
  2. 板子上验证结果:
// 挂载SD卡到test目录上
# mount /dev/mmcblk1 /mnt/test/
// 运行应用
# ./helloworld
Hello World!# 


欢迎关注微信公众号『Rice嵌入式开发技术分享』


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分