系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、认识Lichee RV
- 1、D1-H 芯片
- 2、Lichee RV开发板
- 3、系统镜像
- 二、Lichee RV 固件烧录
- 1、要求基本硬件
- 2、基本资料下载
- 3、固件烧录
- 在这里插入图片描述
- 三、连接上开发板
- 1、ADB方式连接
- a:ADB下载
- b:ADB连接
- c:ADB参考资料
- 2、串口方式连接到开发板
- a:驱动和串口工具下载和安装
- b:硬件连接
- c:登录到开发板
- 3、SSH方式连接到开发板
- 四、点亮第一个小灯
- 五、Lichee RV PC环境搭建
- 1、Ubuntu环境安装
- 2、源码下载
- 六、在开发板上运行第一个程序
- 1、编写hello.c文件
- 2、编译hello.c
- a:直接编译
- b:使用Makefile编译
- 3、使用ADB传送文件到开发板
- 3、使用ADB执行第一个程序
- 资料下载
- 参考资料
前言
这个系列是个人的学习笔记,主要目的是帮助自己上手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官方基础操作
命令:
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系列开发教程汇总
平头哥开放社区
哇酷开发社区