瑞芯微RV1126B开发板(EASY-EAI-PI2) 开发(编译)方式说明

1. 交叉编译(推荐)

1.1 优缺点

优点:

采用x86架构的CPU进行编译,编译速度快。

源码编辑方便,开发环境支持各种如vsCode、qtCreator等IDE。

缺点:

编译环境需要进行安装部署。

程序的调试运行操作相对本地编译不那么直接。

1.2 EASY-EAI编译环境简介

EASY-EAI编译环境是一款由广州灵眸科技自主研发的在线编译环境(开发板在线)。建立了PC端与板卡端实时同步的映射关系;保障了在PC端进行交叉编译时,能与开发板的依赖库进行实时链接。

1.2.1 安装部署方式

EASY-EAI编译环境,相对于传统的通过解压编译工具链配置系统环境变量的交叉编译环境,具有部署更加方便的特点,并且屏蔽了各种兼容性问题。具体的安装步骤在《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》文章中有详细的说明。

1.2.2 挂载嵌入式设备(开发板)

首先,通过run.sh 2204脚本进入EASY-EAI编译环境:

然后通过串口调试,查看设备IP地址:

回到EASY-EAI编译环境,尝试ping通开发板。能ping通后,则选用一个IP地址(eth0,wlan0都行),把开发板的rootfs根目录需要通过mount命令挂载到EASY-EAI编译环境中的/mnt,命令如下所示:

复制代码
sudo mount -t nfs -o nolock 192.168.3.86:/ /mnt

我们在EASY-EAI编译环境中编译好可执行程序,再把可执行程序拷贝进/mnt内,它就会自动被同步到开发板的rootfs根目录中。

1.3 常规编译手段示例

【百度网盘】

链接:https://pan.baidu.com/s/13rdifPHyZwHFIvbvBC78jw?pwd=1234

提取码:1234

此处是四种常规编译方式的编译示例:

每个示例都包含了一个build.sh脚本,以及一个源代码文件,如下所示。

我们随便进入一个示例,在里面执行./build.sh操作,就会生成一个hello文件

然后只需要在EASY-EAI编译环境中把生成的文件拷贝到/mnt的任意子目录中即可

通过串口调试进入板卡后,定位到刚刚拷贝hello文件的位置,如下所示:

复制代码
cd /userdata/

执行ls命令查看该目录,就可以发现hello文件已经被同步过来了

复制代码
ls

直接运行hello文件,即可看到运行结果

复制代码
./hello

1.4 常规编译手段说明

由映射关系得知,EASY-EAI编译环境的/mnt目录就是开发板的根目录,由于交叉编译工具的依赖库都在开发板上,因此只需要给编译器指定sysroot为/mnt即可。

GCC/G++:

复制代码
aarch64-linux-gnu-gcc --sysroot=/mnt hello_world.c -o hello 
aarch64-linux-gnu-g++ --sysroot=/mnt hello_world.cpp -o hello 

CMAKE:在 CMakeList.txt 文件中包含以下文件即可。

复制代码
include ($ENV{HOME}/configs/cross.cmake)

QMAKE:qmake工具直接安装到开发板中,所以可以直接在EASY-EAI编译环境中执行qmake,示例命令如下。

复制代码
/mnt/usr/bin/qmake xxxxxx.pro  make  

2. 本地编译

2.1 优缺点

优点:

把开发板直接当成一台卡片电脑使用,无须进行繁琐的应用部署。

缺点:

采用rv1126B的CPU进行编译,性能相对较弱,编译速度慢。

源码编辑困难,仅有源生的vi编辑器可使用,无法使用各种IDE。

2.2 使用方法

可以利用:adb、调试串口、ssh三种方式进入开发板后台,然后直接把开发板当做一台装有ubuntu系统的电脑使用。

相关推荐
IT_阿水1 小时前
STM32 HAL库输入捕获配置
stm32·单片机·嵌入式硬件
土星云SaturnCloud1 小时前
土星云AI边缘计算SE110S系列模型部署实战-YOLOv5
服务器·人工智能·yolo·docker·边缘计算
nuoxin1141 小时前
WILX1200HC-5TG144I替代 LCMXO2-1200HC-5TG144I(富利威)
人工智能·嵌入式硬件·fpga开发·电脑·硬件工程·dsp开发
北山有鸟1 小时前
用开发板的.config替换ubuntu中内核源码目录的.config
linux·运维·ubuntu
jcbut2 小时前
离线安装dify 1.7
linux·运维·dify
艾iYYY2 小时前
string 类的模拟实现
android·服务器·c语言·c++·算法
zlinear数据采集卡2 小时前
555触摸延时开关深度解析:从电路原理到智能楼道灯应用
单片机·嵌入式硬件
cjp5602 小时前
003.LINQ在WEB API中的应用
服务器·linq
云计算磊哥@2 小时前
运维开发宝典024-Linux云计算运维入门阶段总结
linux·运维·运维开发