• 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
返回

电子发烧友 电子发烧友

  • 全文搜索
    • 全文搜索
    • 标题搜索
  • 全部时间
    • 全部时间
    • 1小时内
    • 1天内
    • 1周内
    • 1个月内
  • 默认排序
    • 默认排序
    • 按时间排序
大家还在搜
  • Yuzuki Lizard 全志V851S开发板 –编译 OPENCV 4.5.4

    1.主要参考教程地址,实际操作结合多个教程。 https://blog.csdn.net/Flag_ing/article/details/109508374 2.放从OPENCV RELEASE 下载的解压出来的文件,里面还要放对应版本的contribute 解压文件 /root/opencv-4.5.4 /root/opencv-4.5.4/build6 /root/opencv-4.5.4/build6 在这里要找到三个地方进行修改; 1、勾选上BUILD_opencv_world 2、在CMAKE_BUILD_TYPE后填上:RELEASE 3、在OPENCV_EXTRA_MODULES_PATH后填上opencv-contrib/modules的路径 比如我是:/home/wsx/opencv/opencv/opencv_contrib/modules 完成之后再次点击Configure按钮,稍等片刻,之后在点击Generate按钮 (所有红色报错,全部关掉即可) 交叉编译工具链地址: /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-gcc /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-g++ /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/bin/ 注意: 取消WITH_GTK 取消WITH_TIFF , PNG ,JPG 所有红色报错的功能,都不要勾选,或者自己搞定。 如果点击configure提示处理器未识别 那么执行vi /root/opencv-4.5.4/cmake/OpenCVDetectCXXCompiler.cmake 可以在第47行,写入 set(CMAKE_SYSTEM_PROCESSOR arm) (一定会提示,一定要这么做。) 4、 如果要修改默认的install文件夹,要在点击Generate之前修改,修改方式如下vi /root/opencv-4.5.4/build6/CMakeCache.txt 修改CMAKE_INSTALL_PREFIX:PATH=/root/opencv-4.5.4/build6 5、进入目录 /root/opencv-4.5.4/build6/ 执行 cmake . 执行 export STAGING_DIR=/root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin 执行 make -j20 (看自己的线程数,设定) 到此编译成功 6、编译出来的文件 动态库文件 /usr/local/lib/ 文件库 /usr/local/include/opencv4/ 注意下面步骤中成功编译出来的固件,是不含动态库的,所以还需要编译时所用的动态库,同步复制到板子的/usr/lib/ 里面去。否则报错找不到动态库 7、编译一个opencv example 首先 执行 export STAGING_DIR=/root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin 任意目录下创建3个文件 1.CMakeLists.txt cmake_minimum_required(VERSION 3.10) set (ARM_LINUX_GCC_PATH /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/) # 改成你的路径 set (CMAKE_C_COMPILER ${ARM_LINUX_GCC_PATH}arm-openwrt-linux-gcc) set (CMAKE_CXX_COMPILER ${ARM_LINUX_GCC_PATH}arm-openwrt-linux-g++) project(Test_OpenCV_Mobile) set(CMAKE_CXX_STANDARD 11) set(OpenCV_DIR \"/root/opencv-4.5.4/\") # 改成你的路径 find_package(OpenCV REQUIRED) FIND_PACKAGE(OpenMP REQUIRED) add_executable(Test_OpenCV_Mobile main.cpp) target_link_libraries(Test_OpenCV_Mobile pthread) target_link_libraries(Test_OpenCV_Mobile dl) target_link_libraries(Test_OpenCV_Mobile -fopenmp) target_link_libraries(Test_OpenCV_Mobile ${OpenCV_LIBS}) 2.makefile OPENCV_DIR := /root/opencv-4.5.4/ THIRD_PART_INCLUDE := -I$(OPENCV_DIR)include/opencv4 -I$(OPENCV_DIR)include/opencv4/opencv2 THIRD_PART_LIBRARY := $(OPENCV_DIR)lib/libopencv_highgui.a $(OPENCV_DIR)lib/libopencv_features2d.a $(OPENCV_DIR)lib/libopencv_imgproc.a $(OPENCV_DIR)lib/libopencv_photo.a $(OPENCV_DIR)lib/libopencv_video.a $(OPENCV_DIR)lib/libopencv_core.a TARGET = Test_OpenCV_Mobile START: @echo START rm -rf $(TARGET) /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-g++ -O2 -std=c++11 -lpthread -fopenmp -ldl $(CFLAGS) $(THIRD_PART_INCLUDE) -o $(TARGET) ./main.cpp $(THIRD_PART_LIBRARY) .PHONY:clean clean: rm -rf $(BINDIR) 3.main.cpp #include <opencv2/opencv.hpp> #include <iostream> int main() { cv::Mat mat = cv::Mat::zeros(256,256, CV_8UC1); { cv::rectangle(mat, cv::Rect(40, 45, 51, 65), cv::Scalar(255), -1, cv::LINE_8, 0);//绘制填充矩形 cv::rectangle(mat, cv::Rect(180, 180, 85, 21), cv::Scalar(255), -1, cv::LINE_8, 0);//绘制填充矩形 std::cout << \"mat.rows = \" << mat.rows << std::endl; std::cout << \"mat.cols = \" << mat.cols << std::endl; } return 0; } 8.编译 opencv example 在创建的目录里面,执行 cmake . make 9、将文件推进板子,并添加权限执行 10、推送相应的动态库进入 /usr/lib 比如 world,core…. 11、最后终端执行,推送进来的文件。 ./Test_OpenCV/example 到此 opencv 4.5.4 编译成功,并运行opencv example成功。 本文转载自:https://bbs.aw-ol.com/topic/3422/

    2023-05-08 09:22

  • Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程

    本文转载自:https://forums.100ask.net/t/topic/3027 移植 QT5 教程 (此教程基于docker版V851S开发环境) docker pull registry.cn-hangzhou.aliyuncs.com/gloomyghost/yuzukilizard 编译依赖 apt-get install repo git gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools \\\\ parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools libssl-dev \\\\ autotools-dev libsigsegv2 m4 libdrm-dev curl sed make binutils build-essential gcc g++ bash \\\\ patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev \\\\ openssh-client lib32stdc++6 gcc-aarch64-linux-gnu libncurses5-dev lzop libssl1.0.0 libssl-dev \\\\ libglade2-dev cvs mercurial subversion asciidoc w3m dblatex graphviz python-matplotlib \\\\ libc6:i386 texinfo liblz4-tool genext2fs expect autoconf intltool libqt4-dev libgtk2.0-dev 安装第一遍会有报错,部分无法执行。在执行一遍,就可以了。 1.建议新建一个docker避免环境污染的问题。 2.打开下面目录 /root/tina-v853-docker/platform/thirdparty/gui/qt/ 并解压 tar -xvf qt-5.12.9.tar.xz 3.导入编译工具链 3.1 新建tool文件夹 mkdir /root/tool 3.2 将toolchain.tar解压到tool文件夹下面 cd /root/tool/ tar -xvf toolchain.tar 4.source 编译工具链 4.1 修改profile vi /etc/profile 增加一行代码 export PATH=$PATH:/root/tool/toolchain/bin 4.2 增加环境变量 nano /root/.bashrc 增加二行代码 export PATH=$PATH:/root/tool/toolchain/bin export STAGING_DIR=$STAGING_DIR:/root/tool/toolchain/bin 5.qt解压完成后,进入文件夹 cd /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/ 在当前文件夹里面创建一个.sh文件 执行 touch make.sh chmod 777 make.sh nano make.sh 复制粘贴下面内容到文件里面 #!/bin/sh PWD=`pwd` mkdir arm-qt ./configure \\\\ -prefix $PWD/arm-qt \\\\ -release \\\\ -opensource \\\\ -shared \\\\ -xplatform linux-arm-gnueabi-g++ \\\\ -optimized-qmake \\\\ -pch \\\\ -qt-sqlite \\\\ -qt-libjpeg \\\\ -qt-libpng \\\\ -qt-zlib \\\\ -no-opengl \\\\ -skip qt3d \\\\ -skip qtcanvas3d \\\\ -skip qtpurchasing \\\\ -skip qtlocation \\\\ -skip qttools \\\\ -no-sse2 \\\\ -no-openssl \\\\ -no-cups \\\\ -no-glib \\\\ -no-dbus \\\\ -no-xcb \\\\ -no-iconv \\\\ -no-separate-debug-info \\\\ -no-fontconfig \\\\ -recheck-all \\\\ -make examples make -j16 make install 这里面比较复杂,里面开启和关闭部分项目是为了保证编译可以成功。 如果需要编译复杂的QT可以自己测试。 6.将工具链改为自己的 执行: nano /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf # # qmake configuration for building with arm-linux-gnueabi-g++ # MAKEFILE_GENERATOR= UNIX CONFIG+= incremental QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) CROSS_COMPILE=arm-openwrt-linux # modifications to g++.conf QMAKE_CC = $${CROSS_COMPILE}-gcc QMAKE_CXX= $${CROSS_COMPILE}-g++ QMAKE_LINK= $${CROSS_COMPILE}-g++ QMAKE_LINK_SHLIB= $${CROSS_COMPILE}-g++ # modifications to linux.conf QMAKE_AR = $${CROSS_COMPILE}-ar cqs QMAKE_OBJCOPY= $${CROSS_COMPILE}-objcopy QMAKE_NM = $${CROSS_COMPILE}-nm -P QMAKE_STRIP = $${CROSS_COMPILE}-strip load(qt_config) 7.编译QT5 执行: cd /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/ 执行: ./make.sh 8.安装 如果没有报错,就编译完成了。 make install 9.下载build文件 执行: tar -cvf arm-qt.tar arm-qt 压缩包压缩好,就可以通过ftp下载下来了。 10.编译qtdemo 10.1 编译qtdemo 创建一个文件夹helloworld,然后再文件夹里面创建一个文件 main.cpp #include <QApplication> #include <QWidget> #include <QLabel> #include <QSlider> #include <QHBoxLayout> int main(int argc, char **argv) { QApplication app(argc, argv); QWidget *window= new QWidget; window->setWindowTitle(\"I am a slider\"); QLabel *label = new QLabel;// QLabel控件,用于显示数字 QSlider *slider = new QSlider(Qt::Horizontal);// 滑动条 slider->setRange(0, 100); QObject::connect(slider, SIGNAL(valueChanged(int)), label, SLOT(setNum(int))); slider->setValue(50); QHBoxLayout *layout = new QHBoxLayout; //level layout->addWidget(label); layout->addWidget(slider); window->setLayout(layout); window->resize(400, 240); window->show(); return app.exec(); } 10.2 编译 执行: /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin/qmake -project 执行: /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin/qmake 执行: make 此时会提示报错:修改.pro结尾的文件,末尾增加一行代码。 参考这个代码 ###################################################################### # Automatically generated by qmake (3.1) Sun Apr 2 23:32:59 2023 ###################################################################### TEMPLATE = app TARGET = helloworld INCLUDEPATH += . # The following define makes your compiler warn you if you use any # feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 # Input SOURCES += hello.cpp greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 并重新执行一遍 10.3 下载可执行文件 helloworld 11.导入 /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin 下面的两个文件夹到板子上,其余的不用 复制bin下面的lib 到usr/lib 并根据报错相应的修改文件名 复制bin下面的plugin到usr目录下面 复制刚才的可执行文件helloworld 到/mnt 12.进入板子/mnt 添加权限 chmod 777 helloworld 执行 ./helloworld 13.此时会报错,要修改文件名 凡是涉及到5.12.9.so的文件名,全部要改成5.so 否则会报错 (如何快速改文件名呢?) 其中包含名字为core,gui,widget的,一定要改

    2023-04-25 09:29

  • Sargantana芯片:西班牙设计的开源芯片

    自2019年以来,BSC一直致力于基于Lizard系列的芯片研发,而在2022年和2023年,成功推出了两款搭载Sargantana处理器的芯片:Sargantana芯片本身以及第四代“Kameleon”芯片。

    2023-12-19 16:52

  • 在全志V851S开发板上进行屏幕触摸适配

    /v851s/configs/lizard/board.dts(注意路径,要设置为自己的实际路径) ctp@38 { compatible = \"focaltech,fts\"

    2023-05-06 10:44

  • 全志 V85x E907 RISC-V小核开发与使用

    e907_rtos/rtos/source/projects/v851-e907-lizard/kernel.lds将 ORIGIN 配置为上面预留的内存。MEMORY&#123

    2023-02-27 09:37

  • 全志V851S开发版无法正常挂载TF卡,sdc0、sdc1报错

    硬件设备及镜像 主板为:Yuzuki Lizard V851S开发板 宿主机环境:ubuntu 22.04 SDK版本:Yuzukilizard的github上的Docker镜像 img为

    2023-07-28 10:16

  • 全志v851s uart3 设置成普通串口收发

    /config/chips/v851s/configs/lizard/board.dts 在设备树中搜索UART 找到UART3 相关配置 &uart0 { pinctrl-names

    2023-04-23 15:49

  • 全志V851s、V853内g2d模块sample深究

    :tina-v853-docker/out/v851s/lizard/openwrt/v851s_linux_lizard_uart0.img 下的img 镜像烧录到开发板。adb shell 打开控制终端查看设备节点G2D

    2023-04-19 09:38

  • 在全志V851S开发板上使用SSH配置步骤分析

    /tina-v853-docker/openwrt/target/v851s/v851s-lizard/busybox-init-base-files/etc/init.d/S50wifideamon 修改

    2023-04-28 10:11