File tree Expand file tree Collapse file tree 9 files changed +98
-6
lines changed Expand file tree Collapse file tree 9 files changed +98
-6
lines changed Original file line number Diff line number Diff line change @@ -17,12 +17,12 @@ jobs:
1717 sudo apt install cmake python3 build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
1818 - name : Build MPY Cross
1919 run : make -C micropython/mpy-cross
20- - name : Submodules
20+ - name : MicroPython submodules
2121 run : make -C micropython/ports/rp2 BOARD=SPARKFUN_XRP_CONTROLLER submodules
2222 - name : Set Pico SDK path
2323 run : echo "PICO_SDK_PATH=$GITHUB_WORKSPACE/micropython/lib/pico-sdk" >> "$GITHUB_ENV"
2424 - name : Build OpenCV
25- run : make -C src/opencv PLATFORM=embedded/ rp2350 --no-print-directory -j4
25+ run : make -C src/opencv PLATFORM=rp2350 --no-print-directory -j4
2626 - name : Build firmware
2727 run : make BOARD=SPARKFUN_XRP_CONTROLLER -j4
2828 - name : Upload UF2
Original file line number Diff line number Diff line change 1- [submodule "src/opencv "]
2- path = src/opencv
1+ [submodule "src/opencv/opencv "]
2+ path = src/opencv/opencv
33 url = https://github.com/sfe-SparkFro/opencv.git
44[submodule "src/ulab "]
55 path = src/ulab
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ ifndef PLATFORM
2+ $(error PLATFORM not specified. Use 'make PLATFORM=rp2350' or similar.)
3+ endif
4+
5+ TOOLCHAIN_FILE = ../../platforms/${PLATFORM}.toolchain.cmake
6+
7+ # TODO: For some reason, specifying this in the toolchain file doesn't work
8+ CMAKE_ARGS += -DBUILD_LIST=core,imgproc,imgcodecs
9+
10+ # Generic build
11+ all :
12+ cd opencv && mkdir -p build && cmake -S . -B build -DPICO_BUILD_DOCS=0 -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_ARGS} && make -C build -f Makefile $(MAKEFLAGS ) $(MAKE_ARGS )
13+
14+ # Clean the OpenCV build
15+ clean :
16+ cd opencv && rm -rf build
Original file line number Diff line number Diff line change 1+ # Derived from:
2+ # https://github.com/joachimBurket/esp32-opencv/blob/master/esp32/doc/detailed_build_procedure.md
3+ set (CMAKE_BUILD_TYPE Release)
4+ set (BUILD_SHARED_LIBS OFF )
5+ set (CV_DISABLE_OPTIMIZATION OFF )
6+ set (WITH_IPP OFF )
7+ set (WITH_TBB OFF )
8+ set (WITH_OPENMP OFF )
9+ set (WITH_PTHREADS_PF OFF )
10+ set (WITH_QUIRC OFF )
11+ set (WITH_1394 OFF )
12+ set (WITH_CUDA OFF )
13+ set (WITH_OPENCL OFF )
14+ set (WITH_OPENCLAMDFFT OFF )
15+ set (WITH_OPENCLAMDBLAS OFF )
16+ set (WITH_VA_INTEL OFF )
17+ set (WITH_EIGEN OFF )
18+ set (WITH_GSTREAMER OFF )
19+ set (WITH_GTK OFF )
20+ set (WITH_JASPER OFF )
21+ set (WITH_JPEG OFF )
22+ set (WITH_OPENJPEG OFF )
23+ set (WITH_WEBP OFF )
24+ set (BUILD_ZLIB ON )
25+ set (BUILD_PNG ON )
26+ set (WITH_TIFF OFF )
27+ set (WITH_V4L OFF )
28+ set (WITH_LAPACK OFF )
29+ set (WITH_ITT OFF )
30+ set (WITH_PROTOBUF OFF )
31+ set (WITH_IMGCODEC_HDR OFF )
32+ set (WITH_IMGCODEC_SUNRASTER OFF )
33+ set (WITH_IMGCODEC_PXM OFF )
34+ set (WITH_IMGCODEC_PFM OFF )
35+ # TODO: For some reason, specifying this in the toolchain file doesn't work
36+ # set(BUILD_LIST core,imgproc,imgcodecs)
37+ set (BUILD_JAVA OFF )
38+ set (BUILD_opencv_python OFF )
39+ set (BUILD_opencv_java OFF )
40+ set (BUILD_opencv_apps OFF )
41+ set (BUILD_PACKAGE OFF )
42+ set (BUILD_PERF_TESTS OFF )
43+ set (BUILD_TESTS OFF )
44+ set (CV_ENABLE_INTRINSICS OFF )
45+ set (CV_TRACE OFF )
46+ set (OPENCV_ENABLE_MEMALIGN OFF )
Original file line number Diff line number Diff line change 1+ #ifndef RP2350_UNSAFE_CV_XADD_H
2+ #define RP2350_UNSAFE_CV_XADD_H
3+
4+ // Fix for https://github.com/raspberrypi/pico-sdk/issues/2505
5+ static inline int unsafe_cv_xadd (int * addr , int delta )
6+ {
7+ int tmp = * addr ;
8+ * addr += delta ;
9+ return tmp ;
10+ }
11+ #define CV_XADD (addr , delta ) unsafe_cv_xadd(addr, delta)
12+
13+ #endif
Original file line number Diff line number Diff line change 1+ # Define PICO_SDK_PATH in your environment before running this script
2+ if (NOT DEFINED ENV{PICO_SDK_PATH})
3+ message (FATAL_ERROR "PICO_SDK_PATH environment variable is not set. Please define it before running this script." )
4+ endif ()
5+
6+ # Include the RP2350 toolchain file
7+ include ("$ENV{PICO_SDK_PATH} /cmake/preload/toolchains/pico_arm_cortex_m33_gcc.cmake" )
8+
9+ # Include the common embedded OpenCV settings
10+ include ("${CMAKE_CURRENT_LIST_DIR} /common.cmake" )
11+
12+ # Set RP2350 specific settings
13+ set (OPENCV_DISABLE_THREAD_SUPPORT ON )
14+
15+ # Fix for https://github.com/raspberrypi/pico-sdk/issues/2505
16+ set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -DOPENCV_INCLUDE_PORT_FILE=\\\" ${CMAKE_CURRENT_LIST_DIR} /include/rp2350_unsafe_cv_xadd.h\\\" " )
17+ set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} -DOPENCV_INCLUDE_PORT_FILE=\\\" ${CMAKE_CURRENT_LIST_DIR} /include/rp2350_unsafe_cv_xadd.h\\\" " )
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ target_compile_definitions(usermod INTERFACE ULAB_MAX_DIMS=4)
3939include (${CMAKE_CURRENT_LIST_DIR} /ulab/code/micropython.cmake)
4040
4141# Include OpenCV
42- set (OpenCV_DIR ${CMAKE_CURRENT_LIST_DIR} /opencv/build )
42+ set (OpenCV_DIR ${CMAKE_CURRENT_LIST_DIR} /opencv/opencv/ build )
4343find_package (OpenCV REQUIRED)
4444target_include_directories (usermod INTERFACE ${OpenCV_INCLUDE_DIRS} )
4545target_link_libraries (usermod INTERFACE ${OpenCV_LIBS} )
You can’t perform that action at this time.
0 commit comments