瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

伍华  2026-09-15 07:14:22  阅读 29 次

1.方案简介

本文将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头运行DIS方案。

1.1接线示意图

摄像头与板卡连接(注意:两个CSI接口都要被接上)

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

* 接线必须在断电时进行操作。

* 采用同向线连接SC450AI摄像头与CSI0/CSI1接口。(注意:用错线会烧坏摄像头或者核心板,因此在接线时务必要小心。)

* 接线端子卡扣与FPC线的蓝色塑料标识必须位于同一侧。如下图所示。

反向线:两端的蓝色标识不在同一侧面。

同向线:两端的蓝色标识处于同一侧面。

2. 快速上手

通过串口调试ssh调试,进入开发板后台,运行lsb_release -a命令,可查看系统版本:

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

2.1 开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh 2404

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

* 开发环境版本要与开发板【正在运行】的系统版本【一致】。

* 开发板是其它版本的固件,可以修改对应的./run.sh参数(如2204),进入到对应的编译环境;也可以把开发板烧录成与编译环境匹配的固件,具体操作可参考《固件烧录与更新》

2.2源码下载以及例程编译

在EASY-EAI编译环境下创建存放源码仓库的管理目录:

cd /opt mkdir EASY-EAI-Toolkit cd EASY-EAI-Toolkit

通过git工具,在管理目录内克隆远程仓库

git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-1126B.git

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

注:

* 此处可能会因网络原因造成卡顿,请耐心等待。

* 如果实在要在gitHub网页上下载,也要把整个仓库下载下来,不能单独下载本实例对应的目录。

进入到对应的例程目录执行编译操作,具体命令如下所示:

cd EASY-EAI-Toolkit-1126B/Solutions/dis ./build.sh all

注:

* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

* build.sh #仅编译,产物输出到Release/

* build.sh deploy #部署.ko驱动+JSON配置到板端

* build.sh all #先deploy,再编译+拷贝到板端

* build.sh clear #清理build/ 和 Release/

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

2.3 例程运行

通过串口调试ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata/Solu/dis

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

运行下方命令,停止rkaiq_3A.service:

systemctl stop rkaiq_3A.service

也可以通过disable永久性禁用(重启也不会启动):

systemctl disable rkaiq_3A.service

安装所需驱动:

insmod video_rkfec.ko

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

运行例程命令如下所示。

sudo ./dis -w 2688 -h 1520 -a /etc/iqfiles/ -r ./sc450ai_CRK4F4209_dis.json

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

参数说明:

-w : 视频宽度

-h :视频高度

-a : AIQ iqfiles 路径

-r :DIS 配置JSON文件(必需)

运行后能使用vlc网络串流进行预览,端口号可通过打印确认,设备ip可通过ip addr | grep eth0 (对应网卡)确认

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS) 瑞芯微(EASY EAI)RV1126B 电子防抖(DIS) 瑞芯微(EASY EAI)RV1126B 电子防抖(DIS) 瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

防抖效果可通过晃动镜头进行观察

3.设计参考

1、数据流路径:

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

4.开发指南

4.1 Toolkit仓库介绍

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

4.2示例文件&目录结构

4.2.1开发实例介绍

每个开发实例就是一个独立的项目,项目使用cmake构建自动编译部署。一个最简单的项目至少要包含以下元素:build.sh、CMakeLists.txt、main.c,如下所示。

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

具体介绍如下所示。

组成部分 描述
build.sh 编译脚本,用于管理生成可执行文件后的部署准备工作,用户可自定义shell命令
CMakeLists.txt 工程管理文件,用于组织整个工程结构,指导cmake生成Makefile
include 用于存放第三方应用库、头文件目录等
src 用于存放实现本方案需求的源代码

4.2.2可拓展的目录

可拓展的目录是指:开发过程中增加某些功能模块,功能代码。增加模式分为两种:

  • 增加已编译的第三方库,在include、libs目录内添加头文件和库文件;
  • 增加用户自定义的功能模块,推荐在src目录内增加;

具体情况如下所示,第三方模块相关的文件由include/3rd_model/xxx.h、libs/3rd_model/xxx.a。自定义的功能模块为src/mySrcCode、src/mySrcCode2。

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

4.3CMakeLists.txt文件解析

4.3.1编译环境配置部分:

第一部分为配置部分,配置部分如下所示。(获取当前方案目录、配置工具链、提取方案名称)

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

配置信息如下所示。

配置项 描述
CMake要求版本 cmake_minimum_required函数指定,要求的最低版本
CMAKE_SYSTEM_NAME cmake的系统类型,交叉编译必须
CMAKE_CROSSCOMPILING cmake是否启动交叉编译
cross.camke camke_host_system_information获取平台信息,发现不是armv7l或者aarch64就导入当前平台的交叉编译配置。
project项目名 由project函数指定

4.3.2easyeai-api配置部分

第二部分是引入我司的功能组件库(针对当前方案进行:配置EASY EAI API头文件目录${XXX_INCLUDE_DIRS}、源码文件目录${XXX_SOURCE_DIRS}以及所依赖的库参数${XXX_LIBS})

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

配置信息如下所示。

配置项 描述
api_inc 最终通过target_include_directories关键字指定目标包含的头文件路径
api_srcs 最终通过add_executable关键字指定所需easyeai-api的源码
sysLib_list 最终通过target_link_libraries关键字指定easyeai-api所需的库参数

4.3.3第三方库配置部分

第三部分配置第三方的库(针对当前方案进行:配置第三方头文件目录、库文件目录、配置第三方库链接参数以及配置源码目录)

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

配置信息如下所示。

配置项 描述
custom_inc 自定义变量custom_inc,最终通过target_include_directories函数指定目标包含的头文件路径,在源码include目录下
link_directories 由link_directories函数指定第三方库所在路径
custom_libs 自定义变量custom_libs,最终通过target_link_libraries函数指定目标引用的库链接参数
aux_source_directory 自定义变量dir_srcs,用于添加工程代码以及自定义的个人代码

例如添加个人库的目录组成方式如下所示。

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

aux_source_directory的修改方式为:

aux_source_directory(./src ./src/mySrcCode ./src/mySrcCode2 dir_srcs)

aux_source_directory(./src dir_srcs) aux_source_directory(./src/mySrcCode dir_srcs) aux_source_directory(./src/mySrcCode2 dir_srcs)

4.3.4本方案配置部分

第四部分配置项目的编译信息,内容如下所示:

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

配置项如下所示。

配置项 需求
add_executable 编译结果为${CURRENT_FOLDER}指定,即方案目录名;

编译的源文件为${dir_srcs}和${api_srcs}指定;

target_include_directories 指定头文件的名字,由${custom_inc}与${api_inc}指定;
target_link_libraries 指定的库编译参数,由${custom_libs}与${sysLib_list}指定;

4.4build.sh编译脚本:

4.4.1路径定位部分

第一部分用于提取目录用于编译操作,内容如下所示:(进入build.sh脚本所在目录,并且提取当前目录绝对路径,提取当前目录名称)

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

4.4.2清除编译部分

第二部分清除操作,清除目录为build、Release,内容如下所示:(执行build.sh脚本时,带入了参数“clear”,则清空编译输出)

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

4.4.3编译操作

第三部分,编译直接调用cmake,内容如下所示:(重新编译,成部署目录,并把资源自动部署进板卡)

瑞芯微(EASY EAI)RV1126B 电子防抖(DIS)

本文地址:https://www.shazhe.cn/huagu2749.html
免责声明:本文为原创文章,版权归 伍华 所有,欢迎分享本文,转载请保留出处!

评论已关闭!