882|3

265

帖子

0

资源

纯净的硅(初级)

【平头哥Sipeed LicheeRV 86 Panel测评】4-编译环境搭建 [复制链接]

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

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

1 交叉编译环境搭建

1.1 下载交叉编译工具

交叉编译工具链:http://netstorage.allwinnertech.com:5000/sharing/b8mBL1xWa

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

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

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

1.png

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

2.png

1.2 添加环境变量

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

sudo vi /etc/profile

添加下面这句

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

3.png

然后使之立即生效

source /etc/profile

查看编译器的版本:

4.png

2 测试程序编写与编译

编写一个hello word程序:

#include <stdio.h>
​
int main(int argc, char const *argv[])
{
    printf("Hello, Sipeed LicheeRV 86Panel\n");
    return 0;
}

交叉编译:

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

5.png

3 ADB工具的使用

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

3.1 ADB工具的安装

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

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

sudo apt-get install android-tools-adb

安装完直接输入adb命令可以查看adb的相关信息:

6.png

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通的:

7.png

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

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

adb connect 192.168.5.102

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

8.png

3.2.2 使用有线连接

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

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

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

9.png

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

10.png

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

11.png

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

adb devices

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

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

12.png

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

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

adb push hello_world /mytest

13.png

4 尝试运行hello world程序

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

14.png

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

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


回复

95

帖子

0

资源

一粒金砂(中级)

大佬 关于helloworld的问题麻烦提交一个工单 我让工程师这边也帮忙看一下是什么问题 提交的时候最好是复现一下这个问题。
工单地址:https://occ.t-head.cn/people/workorder-submit

点评

已提交,谢谢技术支持  详情 回复 发表于 2022-1-27 22:52

回复

265

帖子

0

资源

纯净的硅(初级)

未来开发者 发表于 2022-1-27 14:00 大佬 关于helloworld的问题麻烦提交一个工单 我让工程师这边也帮忙看一下是什么问题 提交的时候最好是复现 ...

已提交,谢谢技术支持


回复

643

帖子

1

资源

纯净的硅(初级)

使用的交叉编译工具链里的glibc版本,比运行环境里的glibc版本不符合,所以无法运行。

 

可以考虑用匹配同一个版本的编译器重新编译

 

或者使用静态编译, 命令行一般是: gcc -static -o hello hello.c


回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表