Skip to content

Commit 9d8b09b

Browse files
mergify[bot]amfern
andauthored
Add support for Kakute F7 (M7) (#441) (#447)
(cherry picked from commit 6dacf11) Co-authored-by: Ilya guterman <[email protected]>
1 parent 76e2aec commit 9d8b09b

File tree

3 files changed

+36
-5
lines changed

3 files changed

+36
-5
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ Supported boards are:
1818

1919
Community contributed boards are:
2020

21-
| Board | Min version | Contributor | Details | Prebuild meta |
22-
| ----------------------------------------------------- | ----------- | ---------------------------------------------- | ------- | ------------------------ |
23-
| [Arduino Due](https://store.arduino.cc/arduino-due) | - | [@lukicdarkoo](https://github.com/lukicdarkoo) | | `colcon_verylowmem.meta` |
24-
| [Arduino Zero](https://store.arduino.cc/arduino-zero) | - | [@lukicdarkoo](https://github.com/lukicdarkoo) | | `colcon_verylowmem.meta` |
25-
21+
| Board | Min version | Contributor | Details | Prebuild meta |
22+
| -------------------------------------------------------------- | ----------- | ---------------------------------------------- | ------- | ------------------------ |
23+
| [Arduino Due](https://store.arduino.cc/arduino-due) | - | [@lukicdarkoo](https://github.com/lukicdarkoo) | | `colcon_verylowmem.meta` |
24+
| [Arduino Zero](https://store.arduino.cc/arduino-zero) | - | [@lukicdarkoo](https://github.com/lukicdarkoo) | | `colcon_verylowmem.meta` |
25+
| [Kakute F7](http://www.holybro.com/product/kakute-f7-aio-v1-5/) | - | [@amfern](https://github.com/amfern) | | `colcon.meta` |
2626

2727
You can find the available precompiled ROS 2 types for messages and services in [available_ros2_types](available_ros2_types).
2828

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
SET(CMAKE_SYSTEM_NAME Generic)
2+
set(CMAKE_CROSSCOMPILING 1)
3+
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
4+
5+
set(CMAKE_C_COMPILER $ENV{TOOLCHAIN_PREFIX}gcc)
6+
set(CMAKE_CXX_COMPILER $ENV{TOOLCHAIN_PREFIX}g++)
7+
8+
SET(CMAKE_C_COMPILER_WORKS 1 CACHE INTERNAL "")
9+
SET(CMAKE_CXX_COMPILER_WORKS 1 CACHE INTERNAL "")
10+
11+
set(FLAGS "-O2 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -fsingle-precision-constant -Wdouble-promotion -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-exceptions -mcpu=cortex-m7 -mthumb" CACHE STRING "" FORCE)
12+
13+
set(CMAKE_C_FLAGS_INIT "-std=c11 ${FLAGS} -DCLOCK_MONOTONIC=0 -D'__attribute__(x)='" CACHE STRING "" FORCE)
14+
set(CMAKE_CXX_FLAGS_INIT "-std=c++14 ${FLAGS} -fno-rtti -DCLOCK_MONOTONIC=0 -D'__attribute__(x)='" CACHE STRING "" FORCE)
15+
16+
set(__BIG_ENDIAN__ 0)

extras/library_generation/library_generation.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ if [ $OPTIND -eq 1 ]; then
1818
PLATFORMS+=("cortex_m3")
1919
# PLATFORMS+=("portenta-m4")
2020
PLATFORMS+=("portenta-m7")
21+
PLATFORMS+=("kakutef7-m7")
2122
fi
2223

2324
shift $((OPTIND-1))
@@ -165,6 +166,20 @@ if [[ " ${PLATFORMS[@]} " =~ " portenta-m7 " ]]; then
165166
cp -R firmware/build/libmicroros.a /project/src/cortex-m7/fpv5-d16-softfp/libmicroros.a
166167
fi
167168

169+
######## Build for Kakute F7 M7 core ########
170+
if [[ " ${PLATFORMS[@]} " =~ " kakutef7-m7 " ]]; then
171+
rm -rf firmware/build
172+
173+
export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-
174+
ros2 run micro_ros_setup build_firmware.sh /project/extras/library_generation/kakutef7-m7_toolchain.cmake /project/extras/library_generation/colcon.meta
175+
176+
find firmware/build/include/ -name "*.c" -delete
177+
cp -R firmware/build/include/* /project/src/
178+
179+
mkdir -p /project/src/cortex-m7/fpv5-sp-d16-hardfp
180+
cp -R firmware/build/libmicroros.a /project/src/cortex-m7/fpv5-sp-d16-hardfp/libmicroros.a
181+
fi
182+
168183
######## Generate extra files ########
169184
find firmware/mcu_ws/ros2 \( -name "*.srv" -o -name "*.msg" -o -name "*.action" \) | awk -F"/" '{print $(NF-2)"/"$NF}' > /project/available_ros2_types
170185
find firmware/mcu_ws/extra_packages \( -name "*.srv" -o -name "*.msg" -o -name "*.action" \) | awk -F"/" '{print $(NF-2)"/"$NF}' >> /project/available_ros2_types

0 commit comments

Comments
 (0)