Lichee_RV学习系列---认识Lichee Rv Dock、环境搭建和编译第一个程序

Lichee Rv Dock学习系列文章目录



前言

这个系列是个人的学习笔记,主要目的是帮助自己上手Lichee RV这款开发板,为未来的驱动工程师的工作做铺垫。其内容包含四部分。

  • 第一部分:认识Lichee RV和环境搭建
  • 第二部分:移植三个应用到开发板,并记录整理移植过程和运行结果:dhrystone , coremark ,stream(分别是三个业内常用的 benchmark 工具)
  • 第三部分:在开发板上增加一个外设,通过 I2C、SPI、GPIO 方式访问都行,调通功能,输出说明文档和代码。
  • 第四部分:基于开发板自行搭建一个有生活场景的解决方案,完成功能调试。输出说明文档和代码。

一、认识Lichee RV

1、D1-H 芯片

Lichee RV搭载的是全志公司设计的D1-H芯片,该芯片内核采用的是平头哥设计的C906 CPU,该CPU是基于RISC-V指令集设计的CPU,不同与常见的ARM指令集设计的芯片,如STM32系列、麒麟系列芯片。该芯片可支持Linux、RTOS等系统,具有丰富的外设和接口和视频、音频处理等硬件支持。

在这里插入图片描述

2、Lichee RV开发板

笔者使用的是这款开发板,Lichee RV Dock(带WIFI)(之前有一个活动可以免费申请这个,笔者申请了就玩这个开发板)
在这里插入图片描述

开发板特性:
 主芯片全志 D1,平头哥玄铁 C906 核心,主频 1GHz
 主控内置 HiFi4 DSP,最高支持 4K 的 H.265/H.264 解码
 支持运行 Linux 系统,支持 WAFT 开发环境
 板载 512MB DDR3 内存,预留 SD NAND 焊盘
 板载电源管理电路,核心板可独立运行
 双 M.2 金手指连接器,引出 GPIO
 板载 TF 卡座,可插卡直接启动卡内固件
 板载 FEL 按钮与 USB TYPE-C OTG 接口
 板载一颗用户指示灯
 板载 8pin SPI 液晶屏连接器,可扩展 1.14 英寸液晶屏

可做应用:

  • RV Linux开发
  • 小屏幕播放器
  • 声源定位
  • 物联网控制器

核心版功能区:
在这里插入图片描述
底板功能区:
在这里插入图片描述

3、系统镜像

开发板系统镜像有三个,一个是Tina Linux系统,Tina Linux系统镜像在全志官方有很全面的文档资料,参考资料也比较多,推荐使用这个。

此处资料来源于官方D1-H介绍

Tina Linux是全志科技基于Linux内核开发的针对智能硬件类产品的嵌入式软件系统。Tina Linux基于openwrt-14.07 版本的软件开发包,包含了 Linux 系统开发用到的内核源码、驱动、工具、系统中间件与应用程序包。

openwrt 是知名的开源嵌入式 Linux 系统自动构建框架,是由 Makefile 脚本和 Kconfig 配置文件构成的。使得用户可以通过 menuconfig配置,编译出一个完整的可以直接烧写到机器上运行的 Linux 系统软件。

一个是Debian系统,Debian系统相对于Tina Linux系统更加大,Debian系统是一个开源的操作系统,Debian为桌面级系统。支持类似Ubuntu的一些桌面操作。

镜像有很多版本:这些版本的含义如下
在这里插入图片描述
以下内容来自[官方文档](https://wiki.sipeed.com/hardware/zh/lichee/RV/flash.html)

镜像词缀说明 含义
LicheeRV Sipeed 专用的 RISCV D1 Linux 系列系统
Tina 标记为 tina openwrt 系统
debian 标记为 riscv debian 系统
86panel taobao 86panel
dock taobao dock
hdmi 表示屏幕默认输出到 HDMI 屏幕上
800480 / 480P 表示屏幕默认输出到 LCD 屏幕上,分辨率可以是 800*480 或 480P (640X480)。
8723ds 表示该镜像支持 8723ds WIFI / BLE 驱动。
xr829 表示该镜像支持 xr829 WIFI / BLE 驱动
waft 是否内置 waft 软件

二、Lichee RV 固件烧录

1、要求基本硬件

Lichee RV Docx开发板、Type-C USB数据线、读卡器、SD卡、(USB转串口、杜邦线这个如果占时没有,也可以使用ADB的方式替代串口连接上开发板)

2、基本资料下载

下载选择LICHEE目录就行,根据自己的我自己用的是Lichee_RV进入目录:/LICHEE/D1,下载Liechee_RV的内容,一般选择官方企业网盘进行下载。网盘资料内容挺全的,包含烧录软件、板级支持包、系统镜像(Debian镜像需要另外下载)等、SDK等。

Debian系统镜像下载,提取码:wbef

官网下载链接:适合单文件下载

官方网盘,一般>10M文件选择或者多文件这个渠道下载

Lichee_RV目录如下
在这里插入图片描述

3、固件烧录

固件烧录我们使用:PhoenixCard

工具在官方网盘下载后的目录:tool\PhoenixCard(Lichee_RV目录如上图)

管理员打开,使用读卡器插上>16G的SD卡(推荐使用官方的SD卡)

根据需求选择固件,我这里没有显示器,就选择就选选择以恶个LicheeRV_Tina_hdmi_8723ds版本的,LicheeRV_dock我这个版本用的WIFI是8723ds(可以拆开核心版,看底板的WIFI芯片能知道芯片的型号),注意不要选错了,版本选择哪个,可以看上面固件介绍。

固件路径:Lichee_RV\Lichee_RV\SDK\image

在这里插入图片描述

烧录成功后面输出信息会有烧录成功的提示

这样就烧写完成了
在这里插入图片描述

如果固件烧录出现问题,点击下面链接有介绍固件烧录出现问题如何解决
官方烧录例程

安装SD卡,同时连接上USB到电脑,启动开发板:

在这里插入图片描述

三、连接上开发板

1、ADB方式连接

如果你和我一样,USB转TTL还没到,手上只有SD卡,读卡器、Type-C数据线、Lichee RV Docx开发板就使用ADB的方式吧

ADB介绍:
ADB全称Android debug bridge,是连接安卓的桥梁。可以通过USB连接PC和Android设备的调试工具。ADB是用在连接安卓的一个命令行工具,可以通过ADB进行安坐设备的调试、apk包的安装、文件的上传等。我们可以通过PC端连接到开发板(开发板固件里面已经安装好ADB相关的程序了)

小试牛刀:简单演示效果,这里ADB程序已经安装好了

命令:adb version 查看ADB版本
命令:adb start-server 连接到ADB客服端(开发板)
命令:adb devices 当前输出当前ADB设备
命令:adb shell ls 利用adb 执行shell 的ls 命令
命令:adb shell 连接到shell ,这里就可以类似串口一样使用开发板了
在这里插入图片描述
在这里插入图片描述

a:ADB下载

友情下载连接

将安装包解压放在自己喜欢的任意位置,里面有adb.exe程序,我们之后需要用过命令行去运行这个程序,先记录下adb.exe程序的路径,把他复制出来,我的路径如下
在这里插入图片描述

b:ADB连接

打开windows命令行窗口,windows+r,输入cmd

切换到存放adb根目录,然后cd 命令切换到adb.exe所在目录

使用命令cd 切换路径:cd adb.exe所在的路径

使用adb version 查看是否可以执行adb命令

在这里插入图片描述
之后执行以下命令就行:

命令:adb start-server 连接到ADB客服端(开发板)
命令:adb devices 当前输出当前ADB设备
命令:adb shell 连接到shell ,这里就可以类似串口一样使用开发板了
在这里插入图片描述

c:ADB参考资料

ADB参考资料
ADB命令参考
ADB常用命令

2、串口方式连接到开发板

由于个人没有USB转TTL(还再路上),这里就不写啦,因为暂时使用ADB也够用,速度也比较快。这里就贴上一些链接参考。

a:驱动和串口工具下载和安装

驱动下载

b:硬件连接

docx板子后面有贴心地标出RX\TX,自己连接USB转TTL就行了,RX->TX,TX->RX,GND->GND即可

看原理图,连接引脚6,8,10即可
在这里插入图片描述
在这里插入图片描述

c:登录到开发板

Tina 系统登录用户名:root 密码:tina

3、SSH方式连接到开发板

这个等我先摸索一下怎么连接上wifi(不知道为什么我按照sipeed的方式: 修改/etc/wifi/wpa_supplicant.conf ),再更新这块

四、点亮第一个小灯

额外内容:在abd 操作命令中,windows内容复制后,在命令行鼠标右键是粘贴操作
此处内容来自sipeed官方基础操作

基本点亮灯的操作:

导出GPIO:

echo 65 > /sys/class/gpio/export  

IO 置为输出状态

echo out>/sys/class/gpio/gpio65/direction 

输出状态

echo 1 > /sys/class/gpio/gpio65/value   
echo 0 > /sys/class/gpio/gpio65/value  

下面是官方点亮红/绿/蓝灯的操作
命令:

echo 255 > /sys/class/leds/sunxi_led0r/brightness #红灯亮
echo 0 > /sys/class/leds/sunxi_led0r/brightness   #红灯灭
echo 255 > /sys/class/leds/sunxi_led0g/brightness #绿灯亮
echo 0 > /sys/class/leds/sunxi_led0g/brightness   #绿灯灭
echo 255 > /sys/class/leds/sunxi_led0b/brightness #蓝灯亮
echo 0 > /sys/class/leds/sunxi_led0b/brightness   #蓝灯灭


五、Lichee RV PC环境搭建

1、Ubuntu环境安装

使用的虚拟机是Virtual Box不是VMware注意了
Ubuntu建议安装:14.04版本,虚拟硬盘内存50G+,内存2G+,这里不建议自己搭建环境(不知道为什么我跟着官方搭建环境,用Ubuntu14.04的版本搭建不成功,可以试试用Ubuntu16的版本),建议使用官方搭建好的环境

Ubuntu14.04安装教程

阿里云Ubuntu镜像

选择ubuntu-14.04-desktop-amd64.iso即可
在这里插入图片描述
可以使用官方的Ubuntu14.04已经搭建好的环境
官方搭建好的环境:虚拟机下载地址

官方的配置好的虚拟机用户allwinner密码是:123456 root密码需要自己去配置,执行命令passwd即可配置命令

2、源码下载

根据官方下载即可,官方描述挺清晰的。官方的SDK挺大的要下载挺久,记得先把Ubuntu的下载源给换好,换成阿里云或者清华的源都可以。

SDK下载参考链接
AWOL参考链接

六、在开发板上运行第一个程序

在安装好virtual box、ubuntu14.04、和安装好SDK之后,我们就已经可以去编译我们的程序了。让我们编译第一个程序,经典的”hello world!“

1、编写hello.c文件

编写的文件可以在Ubuntu编写,不过我不建议,在我安装完Virtual Box7.0版本和安装官方的ubuntu14.04之后,系统出现一个小错误,vi编辑器不能正常使用。可以在windows编写之后然后使用共享文件夹的方式将文件拉到ubuntu自己的目录。

#include<stdio.h>        
int main()             
{
    
                         
    printf("Hello world!");   
    return 0;           
}                   

2、编译hello.c

我们需要进入我们下载官方sdk的目录(之前是在这个目录使用repo sync 进行同步的)

这个是我下载的文件
在这里插入图片描述
编译到开发板的编译器GCC就在

// GCC 编译工具所在位置
/home/allwinner/workspace/tina-D1-H/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc

a:直接编译

编译hello.c,这里要根据自己下载SDK的目录进行执行指令,也就是上面GCC编译工具链所在位置。
这块的路径都是一样的:
prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc

/home/allwinner/workspace/tina-D1-H/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc  -o hello hello.c

在这里插入图片描述

b:使用Makefile编译

Makefile文件内容,将Makefile文件与hello.c放在同一个文件夹

#设置编译链路径及工具
CTOOL:=riscv64-unknown-linux-gnu-
CCL:=/home/allwinner/workspace/tina-D1-H/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702
CC:=${
    
    CCL}/bin/${
    
    CTOOL}gcc

#设置编译规则
hello_word:hello.c
        ${
    
    CC} -o hello hello.c

#清理规则
clean:
        rm hello

执行make命令就可以了
在这里插入图片描述

3、使用ADB传送文件到开发板

将hello 文件放在共享文件夹当中(设置Virtual Box共享文件夹的方式在上面安装Virtual Box的链接已经有了)

这样就把文件放到Windos了
在这里插入图片描述
连接ADB(上文有教┗|`O′|┛ 嗷~~),使用push文件将文件传送到开发板
在这里插入图片描述

3、使用ADB执行第一个程序

运行前记得修改文件的权限
在这里插入图片描述


资料下载

Lichee D1资料下载

参考资料

D1-H详细介绍资料-AWOL
全志客服服务平台,D1-H官方文档资料在这里可以下载
WIKI.SIPEED官方教程
Lichee RV系列开发教程汇总
平头哥开放社区
哇酷开发社区

猜你喜欢

转载自blog.csdn.net/weixin_46185705/article/details/128610220