Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页
    1. Home
    2. RiceChen
    R
    • Profile
    • Following 0
    • Followers 0
    • my integral 589
    • Topics 3
    • Posts 5
    • Best 2
    • Groups 0

    RiceChenLV 4

    @RiceChen

    589
    integral
    6
    Reputation
    15
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    RiceChen Unfollow Follow

    Best posts made by RiceChen

    • 【入门必看】全志V853开发板——构建编译与固件烧篇

      全志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开发板介绍

      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开发板的硬件外设

      全志V853开发板初体验

      1. 拿到开发板,我没有立马去编译构建代码,而是进入板子内部的默认系统,看看外设适配的怎么样。V853的开发板提供了两个调试串口(分别为:A7调试串口(UART0),E907 RV调试串口(UART3))。我分别连接了对应的串口,A7调试串口的接口可以输出启动信息,但是无法输入命令。E907 RV调试串口的接口没有任何任何日志,怀疑里面没有任何代码。

      2. 虽然A7调试串口的接口无法输入命令行,但是A7的调试提供了ADB Shell调试。

      • 全志ADB工具下载:https://www.aw-ol.com/downloads?cat=5。
      • 下载解压后,把ADB工作目录添加到环境变量中:右键 ”此电脑“,属性,找到高级系统设置,点击环境变量,xxx用户的环境变量,Path,新增一个环境变量。

      1. 环境设置完毕,既可以在CMD终端中输入adb shell

      GPIO点灯测试

      • 学习一门编程语言,首先要学会在终端输出“Hello world”。学习一个开发板,首先要学会如何点亮一颗LED灯。开发板的指示灯接在PH11引脚上。所以GPIO编号为:7 * 32 + 11 = 235。所以我们可以直接操作GPIO235。实际板子的GPIO编号已经被导出了。
      root@TinaLinux:/# cd /sys/class/gpio/gpio235
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235# ls
      active_low  direction   power       uevent
      device      edge        subsystem   value
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235# echo 0 > value
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235# echo 1 > value
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235#
      

      WIFI测试

      • V853开发板使用WIFI模组是自家的--XR829,它是Wi-Fi & BT。WIFI部分采用SDIO总线与V853通信。
      • Tina提供一套简易方便的WIFI测试套件,通过wifi命令可以设置WIFI的工作模式,扫描网络,连接网络等等。以WIFI的STA模式测试:
      root@TinaLinux:/# wifi -o sta
      root@TinaLinux:/# wifi -c Rice 12345678
      root@TinaLinux:/# ifconfig
      lo        Link encap:Local Loopback
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:65536  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
      
      wlan0     Link encap:Ethernet  HWaddr 4C:34:1E:9A:F1:B0
                inet addr:192.168.137.37  Bcast:192.168.137.255  Mask:255.255.255.0
                inet6 addr: fe80::4e34:1eff:fe9a:f1b0/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:4 errors:0 dropped:0 overruns:0 frame:0
                TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:970 (970.0 B)  TX bytes:1730 (1.6 KiB)
      
      root@TinaLinux:/# ping baidu.com
      PING baidu.com (220.181.38.148): 56 data bytes
      64 bytes from 220.181.38.148: seq=0 ttl=50 time=48.033 ms
      64 bytes from 220.181.38.148: seq=1 ttl=50 time=55.773 ms
      64 bytes from 220.181.38.148: seq=2 ttl=50 time=55.524 ms
      64 bytes from 220.181.38.148: seq=3 ttl=50 time=50.839 ms
      ^C
      --- baidu.com ping statistics ---
      4 packets transmitted, 4 packets received, 0% packet loss
      round-trip min/avg/max = 48.033/52.542/55.773 ms
      root@TinaLinux:/#
      

      LCD测试

      • V853开发板配套7寸LCD屏幕,并配备电容式触摸。
      • 花屏测试:
      root@TinaLinux:/# cat /dev/urandom > /dev/fb0
      

      • 彩色条纹测试:
      root@TinaLinux:/# echo 1 > /sys/class/disp/disp/attr/colorbar
      

      编译环境搭建

      1. 使用的开发环境是:VMware + ubuntu18.04
      2. ubuntu安装完毕,只需要几条命令就可以把编译环境搭建完成。
      // 更新软件列表
      
      v853@v853:~/v853$ sudo apt-get update
      
      // 安装各种工具及软件包
      v853@v853:~/v853$ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y
      
      // 设置git用户信息
      v853@v853:~/v853$ git config --global user.email "980307037@qq.com"
      v853@v853:~/v853$ git config --global user.name "RiceChen"
      

      V853工程构建

      1. 首先源码下载需要在全志客户服务平台。如果没有注册需要先注册在登陆。链接:https://open.allwinnertech.com/#/login?cas=true
      2. 将开发环境的钥匙对添加到全志客户服务平台。
      • 生成钥匙对:
      v853@v853:~/v853$ ssh-keygen -t rsa
      
      • 导出公钥, 将导出公钥进行复制:
      v853@v853:~/v853$ cat ~/.ssh/id_rsa.pub
      
      • 公钥粘贴到全志客户服务平台:

      1. 安装repo引导脚本
      • 下载repo引导脚本:
      v853@v853:~/v853$ git clone ssh://RiceChen@sdk.allwinnertech.com/git_repo/repo.git
      
      • 修改repo脚本的username:
      REPO_URL='ssh://username@sdk.allwinnertech.com/git_repo/repo.git'
      改为
      REPO_URL='ssh://RiceChen@sdk.allwinnertech.com/git_repo/repo.git'
      
      • 添加repo引导脚本到环境中:
      v853@v853:~/v853$ sudo cp repo/repo /usr/bin/repo
      v853@v853:~/v853$ sudo chmod 777 /usr/bin/repo
      // 测试是否添加成功
      v853@v853:~/v853$ repo help
      
      1. 下载SDK
      • 创建SDK存放文件夹,并进入文件夹
      v853@v853:~/v853$ mkdir tina-v853
      v853@v853:~/v853$ cd tina-v853
      
      • 初始化repo仓库:
      v853@v853:~/v853/tina-v853$ repo init -u ssh://RiceChen@sdk.allwinnertech.com/git_repo/V853Tina_Open/manifest.git -b master -m tina-v853-open.xml
      
      • 同步仓库代码,并创建分支:
      v853@v853:~/v853/tina-v853$ repo sync
      v853@v853:~/v853/tina-v853$ repo start product-v853 --all
      
      1. 构建v853工程
      • 构建工程前,需要安装mkimage:
      sudo apt-get install u-boot-tools
      
      • 配置编译模式:
      v853@v853:~/v853/tina-v853$ ./build.sh config
      ========ACTION List: mk_config ;========
      options :
      All available platform:
         0. android
         1. linux
      Choice [linux]: 1
      All available linux_dev:
         0. bsp
         1. buildroot
         2. tinyos
         3. openwrt
      Choice [openwrt]: 1
      All available ic:
         0. v853
      Choice [t113]: 0
      All available board:
         0. vision
      Choice [vision]: 0
      All available flash:
         0. default
         1. nor
      Choice [default]: 0
      
      • 编译固件,然后
      v853@v853:~/v853/tina-v853$ ./build.sh
      
      ...
      [GPU]: No GPU type is configured in /home/v853/v853/tina-v853/kernel/linux-4.9/.config.
      regenerate rootfs cpio
      16149 blocks
      16150 blocks
      build_ramfs
      Copy boot.img to output directory ...
      Copy modules to target ...
      ./scripts/build.sh
      
      sun8iw21p1 compile Kernel successful
      
      
      INFO: ----------------------------------------
      INFO: build Tina OK.
      INFO: ----------------------------------------
      v853@v853:~/v853/tina-v853$ 
      
      • 打包固件:
      v853@v853:~/v853/tina-v853$ ./build.sh pack
      
      ...
      FileLength=7d7000Add partion rootfs.fex ROOTFS_FEX000000
      Add partion very rootfs.fex ROOTFS_FEX000000
      FilePath: rootfs.fex
      FileLength=338ac00BuildImg 0
      Dragon execute image.cfg SUCCESS !
      ----------image is at----------
      
      72M	/home/v853/v853/tina-v853/out/v853/vision/buildroot/v853_linux_vision_uart0.img
      
      pack finish
      v853@v853:~/v853/tina-v853$ 
      

      烧录验证

      1. 下载全志USB驱动,链接:https://www.aw-ol.com/downloads/resources/15。解压并点击batch脚本安装即可。

      1. 下载固件烧写工具PhoenixSuit,链接:https://www.aw-ol.com/downloads/resources/13。
      • 解压并打开可执行程序:PhoenixSuit.exe。

      • 选择固件,并选择立即升级。然后按住开发的uboot和reset按键,先松开reset按键。就可以看到进度条的变化。

      1. 下载完成。串口终端便可以输出:

      <br/>关注微信公众号『Rice嵌入式开发技术分享』,后台回复“微信”添加作者微信,备注”入群“,便可邀请进入技术交流群。

      posted in V853系列-AI视觉
      R
      RiceChen
    • 【XR806开发板试用】XR806与鸿蒙,简化构建环境流程

      前言

      • 很荣幸再次获得评测开发板的机会,这次活动依旧是ARM中国举办的活动。
      • 这次评测的开发板--全志XR806开发板+搭载Open鸿蒙1.0操作系统。这是完美的国产化。中国牛逼。。。。
      • 第一次接触鸿蒙是一年前,最开始接触是适配了RT-Thread内核进Open鸿蒙1.0中作为第三方内核。不过这个没有公布,只是玩玩。
      • 第二次接触是在5个月前,参与小熊派社区适配Open鸿蒙的Lite-A到STM32MP157,当时主要负责构建系统部分,以及1~2个驱动的适配。
      • 评测XR806算是我第三次接触Open鸿蒙, XR608内核采用Lite-M。在XR608的交流群中,我发现大家已久吐槽最多的就是整个构建流程,环境搭建TM的痛苦。所以写这篇文章的目的就是简化整个环境搭建流程。

      环境搭建

      安装ubuntu

      1. 建议采用ubuntu 18.04版本,这样子掉坑会比较少。
      2. 新安装的ubuntu可能存在与windows电脑之间无法复制粘贴问题,解决方案,如下命令:
      rice@rice:~$ sudo apt-get autoremove open-vm-tools
      rice@rice:~$ sudo apt-get install open-vm-tools-desktop
      

      安装git

      1. 在调试终端输出如下命令:
      rice@rice:~$ sudo apt-get install git
      ...
      rice@rice:~$ git config --global user.email "you@example.com"
      rice@rice:~$ git config --global user.name "Your Name"
      

      安装python3.8

      1. 在调试终端输出如下命令:
      rice@rice:~$ sudo apt-get install python3.8
      rice@rice:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
      rice@rice:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
      
      1. 在接下来的操作如果出现如下错误,请执行下面命令:
      • 错误码如下:
      Traceback (most recent call last):
        File "/usr/lib/command-not-found", line 28, in <module>
          from CommandNotFound import CommandNotFound
        File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
          from CommandNotFound.db.db import SqliteDatabase
        File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
          import apt_pkg
      ModuleNotFoundError: No module named 'apt_pkg'
      
      • 错误纠正命令:
      sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
      

      安装docker

      1. 在调试终端输出如下命令:
      rice@rice:~/xr806$ sudo apt install docker.io
      

      环境搭建完成

      xr806工程搭建

      创建xr806

      1. 在调试终端输出如下命令:
      rice@rice:~$ mkdir xr806
      rice@rice:~$ cd xr806
      

      下载的repo文件

      1. 下载的repo文件,在调试终端输出如下命令:
      rice@rice:~/xr806$ git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
      
      1. 修改git-repo下载到的repo文件REPO_URL地址(https://mirrors.ustc.edu.cn/aosp/git-repo),操作如下所示:
      • 在调试终端输出如下命令:
      rice@rice:~/xr806$ vim git-repo/repo
      
      • 修改位置如下图:

      1. 拷贝repo文件到/usr/bin/,便可以执行repo命令,在调试终端输出如下命令:
      rice@rice:~/xr806/$ sudo cp git-repo/repo /usr/bin/
      

      下载系统源码

      1. 创建目录,在调试终端输出如下命令:
      rice@rice:~/xr806$ mkdir code
      rice@rice:~/xr806$ cd code
      
      1. 通过repo,从gitee仓库中获取鸿蒙系统分支源码,在调试终端输出如下命令:
      rice@rice:~/xr806/code$ repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
      rice@rice:~/xr806/code$ repo sync -c
      rice@rice:~/xr806/code$ repo forall -c 'git lfs pull'
      

      下载xr806源码

      1. 下载device源码,在调试终端输出如下命令:
      rice@rice:~/xr806/code$ cd device/
      rice@rice:~/xr806/code/device$ git clone https://gitee.com/moldy-potato-chips/devboard_device_allwinner_xr806.git
      rice@rice:~/xr806/code/device$ mv devboard_device_allwinner_xr806/ xradio
      
      1. 下载vendor源码,在调试终端输出如下命令:
      rice@rice:~/xr806/code/device$ cd ../
      rice@rice:~/xr806/code$ cd vendor/
      rice@rice:~/xr806/code/vendor$ git clone https://gitee.com/moldy-potato-chips/devboard_vendor_allwinner_xr806.git
      rice@rice:~/xr806/code/vendor$ mv devboard_vendor_allwinner_xr806/ xradio
      

      交叉编译工具

      1. 下载交叉编译工具,在调试终端输出如下命令:
      rice@rice:~/xr806$ mkdir tool
      rice@rice:~/xr806$ cd tool
      rice@rice:~/xr806/tool$ wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
      rice@rice:~/xr806/tool$ tar -jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
      

      下载Open鸿蒙的适配好的docker

      1. 下载docker,在调试终端输出如下命令:
      rice@rice:~/xr806$ docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
      
      1. 进入docker,在调试终端输出如下命令:
      rice@rice:~/xr806$ sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
      

      修改交叉编译工具

      1. 修改device/xradio/xr806/liteos_m/config.gni中的board_toolchain_prefix为实际环境下的gcc路径(/home/openharmony/tool/gcc-arm-none-eabi-10-2020-q4-major/bin)。操作如下:
      root@c2aa13139a52:/home/openharmony# cd code/device/xradio/xr806/liteos_m
      root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/liteos_m# vim config.gni
      

      1. 修改device/xradio/xr806/xr_skylark/gcc.mk,操作如下:
      root@c2aa13139a52:/home/openharmony# cd code/device/xradio/xr806/xr_skylark
      

      SDK配置

      1. 在修改完交叉编译工具路径后 ,在xr_skylark目录下执行,复制配置文件:
      root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/xr_skylark# make menuconfig
      
      1. 如果出现如下错误,输入如下命令:
      • 错误码:

      • 错误解决, 然后重新输入上面命令:
      root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/xr_skylark# apt-get install libncurses5-dev
      
      • 结果:

      1. 清除过程文件
      make build_clean
      
      1. 生成静态库已经自动生成头文件
      make lib -j
      
      1. 成功结果如图:

      系统源码编译

      1. 回到xr806系统源码目录:
      root@c2aa13139a52:/home/openharmony/code#  
      
      1. 输入hb set 选择skylark:

      1. 输入hb build -f 编译:

      1. 生成的镜像文件xr_system.img

      烧录代码

      1. 生成的镜像位于device/xradio/xr806/xr_skylark/out。将整个out的镜像拷贝到windows下。
      2. 拷贝烧录工具(phoenixMC)到windows,位置:device\xradio\xr806\xr_skylark\tools,并打开工具:
      • 第一步:选择镜像。
      • 第二部:选择对应的串口

      1. 修改烧录配置项,勾选“硬件复位烧写模式”:

      1. 点击升级固件,然后等待烧录到100%,便完成整个流程。

      运行效果

      1. 将板子接上串口软件,波特率选择115200,然后可以到对应的启动打印:

      <br/>关注微信公众号『Rice嵌入式开发技术分享』,后台回复“微信”添加作者微信,备注”入群“,便可邀请进入技术交流群。

      posted in XR系列-无线互联
      R
      RiceChen

    Latest posts made by RiceChen

    • glibc工具链构建应用

      buildroot构建,应用交叉编译

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

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

      3. 编写HelloWorld:

      #include <stdio.h>
      
      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!# 
      
      posted in V853系列-AI视觉
      R
      RiceChen
    • Reply: 【入门必看】全志V853开发板——构建编译与固件烧篇

      @dream 好的构建方式提供出来,没有为什么

      posted in V853系列-AI视觉
      R
      RiceChen
    • Reply: 【入门必看】全志V853开发板——构建编译与固件烧篇

      @aozima 在研究中RV第一次弄

      posted in V853系列-AI视觉
      R
      RiceChen
    • 【入门必看】全志V853开发板——构建编译与固件烧篇

      全志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开发板介绍

      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开发板的硬件外设

      全志V853开发板初体验

      1. 拿到开发板,我没有立马去编译构建代码,而是进入板子内部的默认系统,看看外设适配的怎么样。V853的开发板提供了两个调试串口(分别为:A7调试串口(UART0),E907 RV调试串口(UART3))。我分别连接了对应的串口,A7调试串口的接口可以输出启动信息,但是无法输入命令。E907 RV调试串口的接口没有任何任何日志,怀疑里面没有任何代码。

      2. 虽然A7调试串口的接口无法输入命令行,但是A7的调试提供了ADB Shell调试。

      • 全志ADB工具下载:https://www.aw-ol.com/downloads?cat=5。
      • 下载解压后,把ADB工作目录添加到环境变量中:右键 ”此电脑“,属性,找到高级系统设置,点击环境变量,xxx用户的环境变量,Path,新增一个环境变量。

      1. 环境设置完毕,既可以在CMD终端中输入adb shell

      GPIO点灯测试

      • 学习一门编程语言,首先要学会在终端输出“Hello world”。学习一个开发板,首先要学会如何点亮一颗LED灯。开发板的指示灯接在PH11引脚上。所以GPIO编号为:7 * 32 + 11 = 235。所以我们可以直接操作GPIO235。实际板子的GPIO编号已经被导出了。
      root@TinaLinux:/# cd /sys/class/gpio/gpio235
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235# ls
      active_low  direction   power       uevent
      device      edge        subsystem   value
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235# echo 0 > value
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235# echo 1 > value
      root@TinaLinux:/sys/devices/platform/soc/pio/gpiochip0/gpio/gpio235#
      

      WIFI测试

      • V853开发板使用WIFI模组是自家的--XR829,它是Wi-Fi & BT。WIFI部分采用SDIO总线与V853通信。
      • Tina提供一套简易方便的WIFI测试套件,通过wifi命令可以设置WIFI的工作模式,扫描网络,连接网络等等。以WIFI的STA模式测试:
      root@TinaLinux:/# wifi -o sta
      root@TinaLinux:/# wifi -c Rice 12345678
      root@TinaLinux:/# ifconfig
      lo        Link encap:Local Loopback
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:65536  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
      
      wlan0     Link encap:Ethernet  HWaddr 4C:34:1E:9A:F1:B0
                inet addr:192.168.137.37  Bcast:192.168.137.255  Mask:255.255.255.0
                inet6 addr: fe80::4e34:1eff:fe9a:f1b0/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:4 errors:0 dropped:0 overruns:0 frame:0
                TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:970 (970.0 B)  TX bytes:1730 (1.6 KiB)
      
      root@TinaLinux:/# ping baidu.com
      PING baidu.com (220.181.38.148): 56 data bytes
      64 bytes from 220.181.38.148: seq=0 ttl=50 time=48.033 ms
      64 bytes from 220.181.38.148: seq=1 ttl=50 time=55.773 ms
      64 bytes from 220.181.38.148: seq=2 ttl=50 time=55.524 ms
      64 bytes from 220.181.38.148: seq=3 ttl=50 time=50.839 ms
      ^C
      --- baidu.com ping statistics ---
      4 packets transmitted, 4 packets received, 0% packet loss
      round-trip min/avg/max = 48.033/52.542/55.773 ms
      root@TinaLinux:/#
      

      LCD测试

      • V853开发板配套7寸LCD屏幕,并配备电容式触摸。
      • 花屏测试:
      root@TinaLinux:/# cat /dev/urandom > /dev/fb0
      

      • 彩色条纹测试:
      root@TinaLinux:/# echo 1 > /sys/class/disp/disp/attr/colorbar
      

      编译环境搭建

      1. 使用的开发环境是:VMware + ubuntu18.04
      2. ubuntu安装完毕,只需要几条命令就可以把编译环境搭建完成。
      // 更新软件列表
      
      v853@v853:~/v853$ sudo apt-get update
      
      // 安装各种工具及软件包
      v853@v853:~/v853$ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y
      
      // 设置git用户信息
      v853@v853:~/v853$ git config --global user.email "980307037@qq.com"
      v853@v853:~/v853$ git config --global user.name "RiceChen"
      

      V853工程构建

      1. 首先源码下载需要在全志客户服务平台。如果没有注册需要先注册在登陆。链接:https://open.allwinnertech.com/#/login?cas=true
      2. 将开发环境的钥匙对添加到全志客户服务平台。
      • 生成钥匙对:
      v853@v853:~/v853$ ssh-keygen -t rsa
      
      • 导出公钥, 将导出公钥进行复制:
      v853@v853:~/v853$ cat ~/.ssh/id_rsa.pub
      
      • 公钥粘贴到全志客户服务平台:

      1. 安装repo引导脚本
      • 下载repo引导脚本:
      v853@v853:~/v853$ git clone ssh://RiceChen@sdk.allwinnertech.com/git_repo/repo.git
      
      • 修改repo脚本的username:
      REPO_URL='ssh://username@sdk.allwinnertech.com/git_repo/repo.git'
      改为
      REPO_URL='ssh://RiceChen@sdk.allwinnertech.com/git_repo/repo.git'
      
      • 添加repo引导脚本到环境中:
      v853@v853:~/v853$ sudo cp repo/repo /usr/bin/repo
      v853@v853:~/v853$ sudo chmod 777 /usr/bin/repo
      // 测试是否添加成功
      v853@v853:~/v853$ repo help
      
      1. 下载SDK
      • 创建SDK存放文件夹,并进入文件夹
      v853@v853:~/v853$ mkdir tina-v853
      v853@v853:~/v853$ cd tina-v853
      
      • 初始化repo仓库:
      v853@v853:~/v853/tina-v853$ repo init -u ssh://RiceChen@sdk.allwinnertech.com/git_repo/V853Tina_Open/manifest.git -b master -m tina-v853-open.xml
      
      • 同步仓库代码,并创建分支:
      v853@v853:~/v853/tina-v853$ repo sync
      v853@v853:~/v853/tina-v853$ repo start product-v853 --all
      
      1. 构建v853工程
      • 构建工程前,需要安装mkimage:
      sudo apt-get install u-boot-tools
      
      • 配置编译模式:
      v853@v853:~/v853/tina-v853$ ./build.sh config
      ========ACTION List: mk_config ;========
      options :
      All available platform:
         0. android
         1. linux
      Choice [linux]: 1
      All available linux_dev:
         0. bsp
         1. buildroot
         2. tinyos
         3. openwrt
      Choice [openwrt]: 1
      All available ic:
         0. v853
      Choice [t113]: 0
      All available board:
         0. vision
      Choice [vision]: 0
      All available flash:
         0. default
         1. nor
      Choice [default]: 0
      
      • 编译固件,然后
      v853@v853:~/v853/tina-v853$ ./build.sh
      
      ...
      [GPU]: No GPU type is configured in /home/v853/v853/tina-v853/kernel/linux-4.9/.config.
      regenerate rootfs cpio
      16149 blocks
      16150 blocks
      build_ramfs
      Copy boot.img to output directory ...
      Copy modules to target ...
      ./scripts/build.sh
      
      sun8iw21p1 compile Kernel successful
      
      
      INFO: ----------------------------------------
      INFO: build Tina OK.
      INFO: ----------------------------------------
      v853@v853:~/v853/tina-v853$ 
      
      • 打包固件:
      v853@v853:~/v853/tina-v853$ ./build.sh pack
      
      ...
      FileLength=7d7000Add partion rootfs.fex ROOTFS_FEX000000
      Add partion very rootfs.fex ROOTFS_FEX000000
      FilePath: rootfs.fex
      FileLength=338ac00BuildImg 0
      Dragon execute image.cfg SUCCESS !
      ----------image is at----------
      
      72M	/home/v853/v853/tina-v853/out/v853/vision/buildroot/v853_linux_vision_uart0.img
      
      pack finish
      v853@v853:~/v853/tina-v853$ 
      

      烧录验证

      1. 下载全志USB驱动,链接:https://www.aw-ol.com/downloads/resources/15。解压并点击batch脚本安装即可。

      1. 下载固件烧写工具PhoenixSuit,链接:https://www.aw-ol.com/downloads/resources/13。
      • 解压并打开可执行程序:PhoenixSuit.exe。

      • 选择固件,并选择立即升级。然后按住开发的uboot和reset按键,先松开reset按键。就可以看到进度条的变化。

      1. 下载完成。串口终端便可以输出:

      <br/>关注微信公众号『Rice嵌入式开发技术分享』,后台回复“微信”添加作者微信,备注”入群“,便可邀请进入技术交流群。

      posted in V853系列-AI视觉
      R
      RiceChen
    • 【XR806开发板试用】XR806与鸿蒙,简化构建环境流程

      前言

      • 很荣幸再次获得评测开发板的机会,这次活动依旧是ARM中国举办的活动。
      • 这次评测的开发板--全志XR806开发板+搭载Open鸿蒙1.0操作系统。这是完美的国产化。中国牛逼。。。。
      • 第一次接触鸿蒙是一年前,最开始接触是适配了RT-Thread内核进Open鸿蒙1.0中作为第三方内核。不过这个没有公布,只是玩玩。
      • 第二次接触是在5个月前,参与小熊派社区适配Open鸿蒙的Lite-A到STM32MP157,当时主要负责构建系统部分,以及1~2个驱动的适配。
      • 评测XR806算是我第三次接触Open鸿蒙, XR608内核采用Lite-M。在XR608的交流群中,我发现大家已久吐槽最多的就是整个构建流程,环境搭建TM的痛苦。所以写这篇文章的目的就是简化整个环境搭建流程。

      环境搭建

      安装ubuntu

      1. 建议采用ubuntu 18.04版本,这样子掉坑会比较少。
      2. 新安装的ubuntu可能存在与windows电脑之间无法复制粘贴问题,解决方案,如下命令:
      rice@rice:~$ sudo apt-get autoremove open-vm-tools
      rice@rice:~$ sudo apt-get install open-vm-tools-desktop
      

      安装git

      1. 在调试终端输出如下命令:
      rice@rice:~$ sudo apt-get install git
      ...
      rice@rice:~$ git config --global user.email "you@example.com"
      rice@rice:~$ git config --global user.name "Your Name"
      

      安装python3.8

      1. 在调试终端输出如下命令:
      rice@rice:~$ sudo apt-get install python3.8
      rice@rice:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
      rice@rice:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
      
      1. 在接下来的操作如果出现如下错误,请执行下面命令:
      • 错误码如下:
      Traceback (most recent call last):
        File "/usr/lib/command-not-found", line 28, in <module>
          from CommandNotFound import CommandNotFound
        File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
          from CommandNotFound.db.db import SqliteDatabase
        File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
          import apt_pkg
      ModuleNotFoundError: No module named 'apt_pkg'
      
      • 错误纠正命令:
      sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
      

      安装docker

      1. 在调试终端输出如下命令:
      rice@rice:~/xr806$ sudo apt install docker.io
      

      环境搭建完成

      xr806工程搭建

      创建xr806

      1. 在调试终端输出如下命令:
      rice@rice:~$ mkdir xr806
      rice@rice:~$ cd xr806
      

      下载的repo文件

      1. 下载的repo文件,在调试终端输出如下命令:
      rice@rice:~/xr806$ git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
      
      1. 修改git-repo下载到的repo文件REPO_URL地址(https://mirrors.ustc.edu.cn/aosp/git-repo),操作如下所示:
      • 在调试终端输出如下命令:
      rice@rice:~/xr806$ vim git-repo/repo
      
      • 修改位置如下图:

      1. 拷贝repo文件到/usr/bin/,便可以执行repo命令,在调试终端输出如下命令:
      rice@rice:~/xr806/$ sudo cp git-repo/repo /usr/bin/
      

      下载系统源码

      1. 创建目录,在调试终端输出如下命令:
      rice@rice:~/xr806$ mkdir code
      rice@rice:~/xr806$ cd code
      
      1. 通过repo,从gitee仓库中获取鸿蒙系统分支源码,在调试终端输出如下命令:
      rice@rice:~/xr806/code$ repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
      rice@rice:~/xr806/code$ repo sync -c
      rice@rice:~/xr806/code$ repo forall -c 'git lfs pull'
      

      下载xr806源码

      1. 下载device源码,在调试终端输出如下命令:
      rice@rice:~/xr806/code$ cd device/
      rice@rice:~/xr806/code/device$ git clone https://gitee.com/moldy-potato-chips/devboard_device_allwinner_xr806.git
      rice@rice:~/xr806/code/device$ mv devboard_device_allwinner_xr806/ xradio
      
      1. 下载vendor源码,在调试终端输出如下命令:
      rice@rice:~/xr806/code/device$ cd ../
      rice@rice:~/xr806/code$ cd vendor/
      rice@rice:~/xr806/code/vendor$ git clone https://gitee.com/moldy-potato-chips/devboard_vendor_allwinner_xr806.git
      rice@rice:~/xr806/code/vendor$ mv devboard_vendor_allwinner_xr806/ xradio
      

      交叉编译工具

      1. 下载交叉编译工具,在调试终端输出如下命令:
      rice@rice:~/xr806$ mkdir tool
      rice@rice:~/xr806$ cd tool
      rice@rice:~/xr806/tool$ wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
      rice@rice:~/xr806/tool$ tar -jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
      

      下载Open鸿蒙的适配好的docker

      1. 下载docker,在调试终端输出如下命令:
      rice@rice:~/xr806$ docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
      
      1. 进入docker,在调试终端输出如下命令:
      rice@rice:~/xr806$ sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
      

      修改交叉编译工具

      1. 修改device/xradio/xr806/liteos_m/config.gni中的board_toolchain_prefix为实际环境下的gcc路径(/home/openharmony/tool/gcc-arm-none-eabi-10-2020-q4-major/bin)。操作如下:
      root@c2aa13139a52:/home/openharmony# cd code/device/xradio/xr806/liteos_m
      root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/liteos_m# vim config.gni
      

      1. 修改device/xradio/xr806/xr_skylark/gcc.mk,操作如下:
      root@c2aa13139a52:/home/openharmony# cd code/device/xradio/xr806/xr_skylark
      

      SDK配置

      1. 在修改完交叉编译工具路径后 ,在xr_skylark目录下执行,复制配置文件:
      root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/xr_skylark# make menuconfig
      
      1. 如果出现如下错误,输入如下命令:
      • 错误码:

      • 错误解决, 然后重新输入上面命令:
      root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/xr_skylark# apt-get install libncurses5-dev
      
      • 结果:

      1. 清除过程文件
      make build_clean
      
      1. 生成静态库已经自动生成头文件
      make lib -j
      
      1. 成功结果如图:

      系统源码编译

      1. 回到xr806系统源码目录:
      root@c2aa13139a52:/home/openharmony/code#  
      
      1. 输入hb set 选择skylark:

      1. 输入hb build -f 编译:

      1. 生成的镜像文件xr_system.img

      烧录代码

      1. 生成的镜像位于device/xradio/xr806/xr_skylark/out。将整个out的镜像拷贝到windows下。
      2. 拷贝烧录工具(phoenixMC)到windows,位置:device\xradio\xr806\xr_skylark\tools,并打开工具:
      • 第一步:选择镜像。
      • 第二部:选择对应的串口

      1. 修改烧录配置项,勾选“硬件复位烧写模式”:

      1. 点击升级固件,然后等待烧录到100%,便完成整个流程。

      运行效果

      1. 将板子接上串口软件,波特率选择115200,然后可以到对应的启动打印:

      <br/>关注微信公众号『Rice嵌入式开发技术分享』,后台回复“微信”添加作者微信,备注”入群“,便可邀请进入技术交流群。

      posted in XR系列-无线互联
      R
      RiceChen