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:
17
17
sudo apt install cmake python3 build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
18
18
- name : Build MPY Cross
19
19
run : make -C micropython/mpy-cross
20
- - name : Submodules
20
+ - name : MicroPython submodules
21
21
run : make -C micropython/ports/rp2 BOARD=SPARKFUN_XRP_CONTROLLER submodules
22
22
- name : Set Pico SDK path
23
23
run : echo "PICO_SDK_PATH=$GITHUB_WORKSPACE/micropython/lib/pico-sdk" >> "$GITHUB_ENV"
24
24
- 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
26
26
- name : Build firmware
27
27
run : make BOARD=SPARKFUN_XRP_CONTROLLER -j4
28
28
- 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
3
3
url = https://github.com/sfe-SparkFro/opencv.git
4
4
[submodule "src/ulab "]
5
5
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)
39
39
include (${CMAKE_CURRENT_LIST_DIR} /ulab/code/micropython.cmake )
40
40
41
41
# Include OpenCV
42
- set (OpenCV_DIR ${CMAKE_CURRENT_LIST_DIR} /opencv/build )
42
+ set (OpenCV_DIR ${CMAKE_CURRENT_LIST_DIR} /opencv/opencv/ build )
43
43
find_package (OpenCV REQUIRED )
44
44
target_include_directories (usermod INTERFACE ${OpenCV_INCLUDE_DIRS} )
45
45
target_link_libraries (usermod INTERFACE ${OpenCV_LIBS} )
You can’t perform that action at this time.
0 commit comments