From ac9963449d3b4baa2b454bab324a6662af35b217 Mon Sep 17 00:00:00 2001 From: EricX-Zhao Date: Fri, 26 Jun 2026 18:00:45 +0300 Subject: [PATCH] Add support for rk3576 platform: update input options and add toolchain files --- .github/workflows/build-images.yaml | 4 +-- cross_compile/rk3576/cc_rk3576.Dockerfile | 17 +++++++++++ cross_compile/rk3576/rk3576.toolchain.cmake | 32 +++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 cross_compile/rk3576/cc_rk3576.Dockerfile create mode 100644 cross_compile/rk3576/rk3576.toolchain.cmake diff --git a/.github/workflows/build-images.yaml b/.github/workflows/build-images.yaml index a07233a..2934ebe 100644 --- a/.github/workflows/build-images.yaml +++ b/.github/workflows/build-images.yaml @@ -10,8 +10,8 @@ on: description: "Target platform" required: true type: choice - options: [rk3588] - default: rk3588 + options: [rk3588, rk3576] + default: rk3576 ros_distro: description: "ROS 2 distribution" required: true diff --git a/cross_compile/rk3576/cc_rk3576.Dockerfile b/cross_compile/rk3576/cc_rk3576.Dockerfile new file mode 100644 index 0000000..6fdd461 --- /dev/null +++ b/cross_compile/rk3576/cc_rk3576.Dockerfile @@ -0,0 +1,17 @@ +FROM cc-base:latest AS cc_rk3576 + +WORKDIR /opt + +RUN wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \ + && tar -xJf arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \ + && rm /opt/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz + +COPY rk3576/rk3576.toolchain.cmake /opt/cmake/ + +ENV PATH="/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin:${PATH}" + +ENV CC_TOOLCHAIN_FILE=/opt/cmake/rk3576.toolchain.cmake + +ENV TARGET_SYSROOT=/opt/rk3576 + +WORKDIR /root diff --git a/cross_compile/rk3576/rk3576.toolchain.cmake b/cross_compile/rk3576/rk3576.toolchain.cmake new file mode 100644 index 0000000..da43b00 --- /dev/null +++ b/cross_compile/rk3576/rk3576.toolchain.cmake @@ -0,0 +1,32 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR aarch64) + +set(SYSROOT /opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu) + +set(CMAKE_SYSROOT + ${SYSROOT}/aarch64-none-linux-gnu/libc +) + +set(CMAKE_C_COMPILER ${SYSROOT}/bin/aarch64-none-linux-gnu-gcc) +set(CMAKE_CXX_COMPILER ${SYSROOT}/bin/aarch64-none-linux-gnu-g++) + +list(APPEND CMAKE_FIND_ROOT_PATH + $ENV{TARGET_SYSROOT} + $ENV{ROS_ROOT} + ${CMAKE_INSTALL_PREFIX} +) + +# Set compile flags which are overwritter by android.toolchain.cmake +# set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG -Wno-error=unused-variable") +# set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -Wno-error=unused-variable") + +# add_link_options("LINKER:-rpath-link,$ENV{TARGET_SYSROOT}/lib") + +set(Python3_EXECUTABLE /usr/bin/python3) +set(Python3_NumPy_INCLUDE_DIR $ENV{TARGET_SYSROOT}/lib/python3.10/site-packages/numpy/core/include) + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +