芯片开放社区
直播中

廉鼎琮

8年用户 977经验值
私信 关注
[技术讨论]

【平头哥Sipeed LicheeRV 86 Panel测评】编译环境搭建

本篇参考全志开发社区的教程:https://d1.docs.aw-ol.com/study/study_6helloword/,尝试在板子上运行一个hello word程序。

虽然未能运行成功,但操作的过程还有有必要记录一下。

1 交叉编译环境搭建

1.1 下载交叉编译工具


下载后得到 riscv64-linux-x86_64-20210329.tar.gz

复制到ubuntu中解压,我是复制到了/usr/local/d1目录中了:

sudo tar -zxvf riscv64-linux-x86_64-20210329.tar.gz

编译工具链在bin文件夹下:


1.2 添加环境变量

然后将该编译工具添加到环境变量:

sudo vi /etc/profile
添加下面这句

export PATH=$PATH:/usr/local/d1/bin

然后使之立即生效

source /etc/profile
查看编译器的版本:


2 测试程序编写与编译

编写一个hello word程序:

#include

int main(int argc, char const *argv[])
{
    printf("Hello, Sipeed LicheeRV 86Paneln");
    return 0;
}
交叉编译:

riscv64-unknown-linux-gnu-gcc -o hello_world hello_world.c

3 ADB工具的使用

使用ADB(Android Debug Bridge)工具,可以方便的进行电脑与板子间的文件传输。

3.1 ADB工具的安装

Windows系统可以从如下地址下载ADB:http://adbdownload.com/

ubuntu虚拟机中可以直接使用命令进行安装:

sudo apt-get install android-tools-adb
安装完直接输入adb命令可以查看adb的相关信息:


3.2 使用ADB传输文件

3.2.1 尝试无线连接

板子中的系统镜像,我使用的是LicheeRV_tina_86panel_480p_waft.7z压缩包里的tina_d1-nezha_uart0.img镜像文件,使用这个是因为Tina系统比较小巧,启动快,且该镜像自带了一个天气示例程序,可以通过这个程序给板子配置wifi信息,实现wifi上网。

连接好wifi后,可以先通过串口连接板子,使用ifconfig指令查看板子的ip信息,我查到的是192.168.5.102,与ubuntu的ip地址192.168.5.104是可以ping通的:


然后在ubuntu中ping板子也是可以ping通的。


但是使用如下的adb连接指令连接不上:

adb connect 192.168.5.102
可能是哪里还需要配置吧,或者是我这种连接方式不对。


3.2.2 使用有线连接

ADB无线连接的方式遇到了问题,那再试试有线连接的方式。

有线的方式连接,貌似只能通过板子上的核心板上的USB接口连接(只有核心板上的USB口有ADB功能)。

准备将USB线连接到核心板中的USB接口,但是核心板装到底板上之后,USB线刚好插不进去:


插不进去,那就先把核心板取下来测试吧:


然后在ubuntu中查看USB,将ADB设备连接至Ubuntu虚拟机:


然后就可以ADB连接了,使用如下指令,如果看到有一串数字,就是连接上了。

adb devices
继续使用adb shell指令可以进入到板子的命令行界面中。

进入之后,可以先在根目录下创建一个mytest文件夹,用来存放hello_word可执行文件。


使用exit执行退出ADB shell界面。

然后使用如下指令将ubuntu中的hello_word可执行文件发送到板子中的mytest文件夹中:

adb push hello_world /mytest

4 尝试运行hello world程序

运行板子中的hello_word可执行程序,没有运行起来,提示如下错误:


看起来是glibc的版本不对,是不是编译系统镜像的工具链和我hello word程序的编译工具链不匹配?

下篇继续尝试解决这个问题。

文章转载自:平头哥芯片开放社区 作者:码农爱学习

更多回帖

发帖
×
20
完善资料,
赚取积分