香橙派 瑞芯微 RK3588 上手自记

简介: 香橙派 瑞芯微 RK3588 上手自记

环境搭建Day 1

ubuntu 22.04 下载安装
打开ftp 服务
sudo apt-get install vsftpd
sudo vi /etc/vsftpd.conf
找下面两行开注释
local_enable=YES
write_enable=YES
重启
sudo /etc/init.d/vsftpd restart

tar -zxvf 解压SDK 包 和toolchain 包(toolchain 路径 D:\project\rk3588\Rk3588-linux-v110\RK3588_LINUX_NVR_SDK_Release_V1.1.0_20220418\build)

向系统添加toolchain 作为环境变量( vim ~/.bashrc export PATH="xxx":$PATH)

使用 arrch-ro xxxxx-gcc helloworld.c

上板运行测试 可以打印说明截止目前 可用

下一步,编译rknn中的Yolov5 example

环境搭建 Day 2

直接把rknpu2-master copy 过去,改.sh,里面加export toolchain,改gcc前面的工具链宏名 然后运行

编译结果在同级的build里

既然能编译了,下一步要确保能debug,简单功能就可以开发了

首先,在虚拟机上安装ssh server
udo apt-get install openssh-server

编译gdb gdb server
./configure --prefix=/home/rui/rk3588/yolo5/gdb-10.2/rk3588 --host=arm-linux CC=aarch64-rockchip1031-linux-gnu-gcc CXX=aarch64-rockchip1031-linux-gnu-g++ LD=aarch64-rockchip1031-linux-gnu-ld AR=aarch64-rockchip1031-linux-gnu-ar

环境搭建 Day3

给ubuntu上安装c/c++ esten
发现对面的orangepi是可以直接编译C、C++ 的,很尴尬 ,我编出来的gdbserver没有用,我PC甚至可以在上面装vscode扩展。

环境搭建 Day4

opencv 4.5.5 编译结束,挺简单的,大概干了两个事,一个是指定编译工具,
因为嫌麻烦,所以直接在板子上编译的,

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc ..

中间有一个部分失败了,是因为png的库检测成他自己出厂带的库了,版本有点低把他自带的usr/lib/libpngxxx.so 干掉了 然后把usr/lib/aarchxxxgnu 里面的16版本的库拷贝出来,再编译,就没有问题了

编译成功后 sudo make install
安装之后随便写了个main.c 测试,makefile 如下:


CC = /usr/bin/aarch64-linux-gnu-gcc
CXX=/usr/bin/aarch64-linux-gnu-g++
CFLAGS=-c -Wall -g
CXXFLAGS=-c -Wall -g
OBJS=main.cpp

main: main.cpp
    $(CXX)  -o main  $(OBJS) -L/usr/local/lib -lopencv_highgui -lopencv_features2d -lopencv_flann -lopencv_calib3d -lopencv_objdetect -lopencv_imgcodecs -lopencv_imgproc -lopencv_videoio -lopencv_dnn -lopencv_core
.PHONY: clean
clean:
    rm main

然后main.cpp 如下

#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/calib3d.hpp>
#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

// # define _GLIBCXX_USE_CXX11_ABI 0
#include <iostream>

using namespace cv;
using namespace std;
int main(){
   
    Mat image = imread("./1.jpg") ;
    printf("hello the fuck world!\r\n");
}

过了就没管了

目录
相关文章
|
编解码 openCL TensorFlow
RK3568开发笔记(一):瑞芯微RK3568芯片介绍,入手开发板的核心板介绍
RK3568开发笔记(一):瑞芯微RK3568芯片介绍,入手开发板的核心板介绍
RK3568开发笔记(一):瑞芯微RK3568芯片介绍,入手开发板的核心板介绍
|
12月前
|
Ubuntu Linux 网络安全
【HarmonyOS】小熊派鸿蒙系统搭建
【HarmonyOS】小熊派鸿蒙系统搭建
185 0
|
Scala
《JDK8新特性与生产-for“华东地区scala爱好者聚会”》电子版地址
JDK8新特性与生产-for“华东地区scala爱好者聚会”
64 0
《JDK8新特性与生产-for“华东地区scala爱好者聚会”》电子版地址
|
数据采集 Linux 开发工具
猿创征文 | 三款Python学习开发任选工具
猿创征文 | 三款Python学习开发任选工具
92 0
猿创征文 | 三款Python学习开发任选工具
|
芯片
单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉
单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉
96 0
单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉
大厂工程师都在用的时序图终结者!plantUML使用最佳姿势
生命线的激活与撤销 关键字activate和deactivate 表示参与者的生命活动。 一旦参与者被激活,它的生命线就会显示出来。 activate和deactivate适用于以上情形。 destroy表示一个参与者的生命线的终结。
233 0
大厂工程师都在用的时序图终结者!plantUML使用最佳姿势