虽然未能运行成功,但操作的过程还有有必要记录一下。
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工具的安装
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程序的编译工具链不匹配?
下篇继续尝试解决这个问题。
文章转载自:平头哥芯片开放社区 作者:码农爱学习