香橙派 瑞芯微 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");
}

过了就没管了

目录
相关文章
|
Ubuntu Linux
荔枝派Zero(全志V3S)驱动开发之USB摄像头 1
荔枝派Zero(全志V3S)驱动开发之USB摄像头
203 0
|
Linux Windows
荔枝派Zero(全志V3S)驱动开发之USB摄像头 2
荔枝派Zero(全志V3S)驱动开发之USB摄像头
189 0
|
存储 Ubuntu Linux
荔枝派Zero(全志V3S)驱动开发之hello驱动程序
字符设备驱动是占用篇幅最大的一类驱动,因为字符设备最多,从最简单的点灯到 I2C、SPI、音频等都属于字符设备驱动的类型。
228 1
|
算法 编译器 开发工具
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
111 0
|
存储 图形学 芯片
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(1)
嵌入式系统的定义有很多的说法,但是没有一个定义是全面的,下面给到的两种方法我觉得应该算是比较合理的。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(1)
|
传感器 编解码 算法
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(6)
通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(6)
|
Ubuntu Linux C语言
韦东山Linux驱动入门实验班(1)hello驱动
韦东山Linux驱动入门实验班(1)hello驱动
212 0
|
芯片 数据格式
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(2)
什么是中断?中断就是CPU在正常运行程序的时候,由于内部或者外部事件引起的暂时中止现行的程序,转去执行请求CPU为其服务的那个外设或者事件的服务程序,等待这个服务程序执行完毕又要返回到被中止的地方的程序,这么的一个过程。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(2)
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(4)
什么是实时时钟?实时时钟RTC是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可以供应时钟日历的功能。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(4)