Updates Zephyr STM32F4 Discovery sample for Zephyr 1.13.99. (#2481)

This commit is contained in:
Jared Woolston
2018-12-21 03:33:42 -08:00
committed by Nikolay Igotti
parent 0369a282c8
commit 8d00a1ebcf
7 changed files with 50 additions and 47 deletions
+4 -2
View File
@@ -1,11 +1,13 @@
cmake_minimum_required(VERSION 3.8.2)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(NONE) project(NONE)
add_library(libsupcpp STATIC IMPORTED) add_library(libsupcpp STATIC IMPORTED)
set_property(TARGET libsupcpp PROPERTY IMPORTED_LOCATION $ENV{GCCARMEMB_TOOLCHAIN_PATH}/arm-none-eabi/lib/thumb/libsupc++.a) set_property(TARGET libsupcpp PROPERTY IMPORTED_LOCATION $ENV{GNUARMEMB_TOOLCHAIN_PATH}/arm-none-eabi/lib/thumb/libsupc++.a)
target_link_libraries(app libsupcpp) target_link_libraries(app PRIVATE libsupcpp)
set_property(TARGET app PROPERTY LINKER_LANGUAGE C) set_property(TARGET app PROPERTY LINKER_LANGUAGE C)
+3 -3
View File
@@ -8,9 +8,9 @@ set TOOLCHAIN=gcc-arm-none-eabi-7-2017-q4-major-win32
set DIR=%~dp0 set DIR=%~dp0
if "%KONAN_DATA_DIR%"=="" (set KONAN_DATA_DIR=%userprofile%\.konan) if "%KONAN_DATA_DIR%"=="" (set KONAN_DATA_DIR=%userprofile%\.konan)
set KONAN_DEPS=%KONAN_DATA_DIR%/dependencies set KONAN_DEPS=%KONAN_DATA_DIR%/dependencies
set GCC_ARM=%KONAN_DEPS%/%TOOLCHAIN% set GNU_ARM=%KONAN_DEPS%/%TOOLCHAIN%
set ZEPHYR_TOOLCHAIN_VARIANT=gccarmemb set ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
set GCCARMEMB_TOOLCHAIN_PATH=%GCC_ARM% set GNUARMEMB_TOOLCHAIN_PATH=%GNU_ARM%
if defined KONAN_HOME ( if defined KONAN_HOME (
set "PATH=%KONAN_HOME%\bin;%PATH%" set "PATH=%KONAN_HOME%\bin;%PATH%"
+6 -3
View File
@@ -8,6 +8,9 @@ if [ "$ZEPHYR_BASE" == "PLEASE_SET_ZEPHYR_BASE" ] ; then
exit 1 exit 1
fi fi
export KONAN_DATA_DIR=$HOME/.konan
export KONAN_DEPS=$KONAN_DATA_DIR/dependencies
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd ) DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd )
if [ -z "$KONAN_HOME" ]; then if [ -z "$KONAN_HOME" ]; then
@@ -24,13 +27,13 @@ case "$OSTYPE" in
esac esac
fi fi
GCC_ARM="$KONAN_DEPS/$TOOLCHAIN" GNU_ARM="$KONAN_DEPS/$TOOLCHAIN"
rm -rf $DIR/build || exit 1 rm -rf $DIR/build || exit 1
mkdir -p $DIR/build && cd $DIR/build mkdir -p $DIR/build && cd $DIR/build
export ZEPHYR_GCC_VARIANT=gccarmemb export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
export GCCARMEMB_TOOLCHAIN_PATH=$GCC_ARM export GNUARMEMB_TOOLCHAIN_PATH=$GNU_ARM
[ -f CMakeCache.txt ] || cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DBOARD=$BOARD .. || exit 1 [ -f CMakeCache.txt ] || cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DBOARD=$BOARD .. || exit 1
@@ -11,27 +11,26 @@ if "%BOARD%" == "" (
) )
:: TODO: we need a robust automated way to ask Zephyr for :: TODO: we need a robust automated way to ask Zephyr for
:: all these $ZEPHYR_BASE based paths and the proper defines. :: all these %ZEPHYR_BASE% based paths and the proper defines.
:: TODO: The D flag in `-copt -Dxxx` sequence is interpreted to be a jvm property, :: TODO: The D flag in `-compilerOpts -Dxxx` sequence is interpreted to be a jvm property,
:: so we workaround the using -Xclang. :: so we workaround the using -Xclang.
call cinterop -def %DIR%/c_interop/platforms/%BOARD%.def ^ call cinterop -def %DIR%/c_interop/platforms/%BOARD%.def ^
-pkg platform.zephyr.%BOARD% ^ -pkg platform.zephyr.%BOARD% ^
-copt "-Xclang -DSTM32F407xx" ^ -compilerOpts "-Xclang -DSTM32F407xx" ^
-copt -I%ZEPHYR_BASE%/kernel/include ^ -compilerOpts -I%ZEPHYR_BASE%/kernel/include ^
-copt -I%ZEPHYR_BASE%/arch/arm/include ^ -compilerOpts -I%ZEPHYR_BASE%/arch/arm/include ^
-copt -I%ZEPHYR_BASE%/arch/arm/soc/st_stm32/stm32f4 ^ -compilerOpts -I%ZEPHYR_BASE%/soc/arm/st_stm32/stm32f4 ^
-copt -I%ZEPHYR_BASE%/arch/arm/soc/st_stm32/stm32f4/include ^ -compilerOpts -I%ZEPHYR_BASE%/soc/arm/st_stm32/common ^
-copt -I%ZEPHYR_BASE%/arch/arm/soc/st_stm32/include ^ -compilerOpts -I%ZEPHYR_BASE%/boards/arm/%BOARD% ^
-copt -I%ZEPHYR_BASE%/boards/arm/%BOARD% ^ -compilerOpts -I%ZEPHYR_BASE%/include ^
-copt -I%ZEPHYR_BASE%/include ^ -compilerOpts -I%ZEPHYR_BASE%/include/drivers ^
-copt -I%ZEPHYR_BASE%/include/drivers ^ -compilerOpts -I%ZEPHYR_BASE%/ext/hal/cmsis/Include ^
-copt -I%ZEPHYR_BASE%/ext/hal/cmsis/Include ^ -compilerOpts -I%ZEPHYR_BASE%/ext/hal/st/stm32cube/stm32f4xx/soc ^
-copt -I%ZEPHYR_BASE%/ext/hal/st/stm32cube/stm32f4xx/soc ^ -compilerOpts -I%ZEPHYR_BASE%/ext/hal/st/stm32cube/stm32f4xx/drivers/include ^
-copt -I%ZEPHYR_BASE%/ext/hal/st/stm32cube/stm32f4xx/drivers/include ^ -compilerOpts -I%ZEPHYR_BASE%/ext/hal/st/stm32cube/stm32f4xx/drivers/include/Legacy ^
-copt -I%ZEPHYR_BASE%/ext/hal/st/stm32cube/stm32f4xx/drivers/include/Legacy ^ -compilerOpts -I%ZEPHYR_BASE%/drivers ^
-copt -I%ZEPHYR_BASE%/drivers ^ -compilerOpts -I%DIR%/build/zephyr/include/generated ^
-copt -I%DIR%/build/zephyr/include/generated ^ -compilerOpts -I%DIR%/build/zephyr/include/generated/syscalls ^
-copt -I%DIR%/build/zephyr/include/generated/syscalls ^
-o %DIR%/c_interop/platforms/build/%BOARD% ^ -o %DIR%/c_interop/platforms/build/%BOARD% ^
-target zephyr_%BOARD% || exit /b -target zephyr_%BOARD% || exit /b
@@ -5,6 +5,6 @@
# Keep this one board independent. # Keep this one board independent.
headers = autoconf.h zephyr.h board.h device.h gpio.h headers = autoconf.h zephyr.h generated_dts_board.h device.h gpio.h
compilerOpts = -DKERNEL -DUSE_FULL_LL_DRIVER -DUSE_HAL_DRIVER -D_FORTIFY_SOURCE=2 -D__ZEPHYR__=1 -ffreestanding -std=c99 -nostdinc compilerOpts = -DKERNEL -DUSE_FULL_LL_DRIVER -DUSE_HAL_DRIVER -D_FORTIFY_SOURCE=2 -D__ZEPHYR__=1 -ffreestanding -std=c99 -nostdinc
@@ -12,26 +12,25 @@ fi
# TODO: we need a robust automated way to ask Zephyr for # TODO: we need a robust automated way to ask Zephyr for
# all these $ZEPHYR_BASE based paths and the proper defines. # all these $ZEPHYR_BASE based paths and the proper defines.
# TODO: The D flag in `-copt -Dxxx` sequence is interpreted to be a jvm property, # TODO: The D flag in `-compilerOpts -Dxxx` sequence is interpreted to be a jvm property,
# so we workaround the using -Xclang. # so we workaround the using -Xclang.
cinterop -def $DIR/c_interop/platforms/$BOARD.def \ cinterop -def $DIR/c_interop/platforms/$BOARD.def \
-pkg platform.zephyr.$BOARD \ -pkg platform.zephyr.$BOARD \
-copt '-Xclang -DSTM32F407xx' \ -compilerOpts '-Xclang -DSTM32F407xx' \
-copt -I$ZEPHYR_BASE/kernel/include \ -compilerOpts -I$ZEPHYR_BASE/kernel/include \
-copt -I$ZEPHYR_BASE/arch/arm/include \ -compilerOpts -I$ZEPHYR_BASE/arch/arm/include \
-copt -I$ZEPHYR_BASE/arch/arm/soc/st_stm32/stm32f4 \ -compilerOpts -I$ZEPHYR_BASE/soc/arm/st_stm32/stm32f4 \
-copt -I$ZEPHYR_BASE/arch/arm/soc/st_stm32/stm32f4/include \ -compilerOpts -I$ZEPHYR_BASE/soc/arm/st_stm32/common \
-copt -I$ZEPHYR_BASE/arch/arm/soc/st_stm32/include \ -compilerOpts -I$ZEPHYR_BASE/boards/arm/$BOARD \
-copt -I$ZEPHYR_BASE/boards/arm/$BOARD \ -compilerOpts -I$ZEPHYR_BASE/include \
-copt -I$ZEPHYR_BASE/include \ -compilerOpts -I$ZEPHYR_BASE/include/drivers \
-copt -I$ZEPHYR_BASE/include/drivers \ -compilerOpts -I$ZEPHYR_BASE/ext/hal/cmsis/Include \
-copt -I$ZEPHYR_BASE/ext/hal/cmsis/Include \ -compilerOpts -I$ZEPHYR_BASE/ext/hal/st/stm32cube/stm32f4xx/soc \
-copt -I$ZEPHYR_BASE/ext/hal/st/stm32cube/stm32f4xx/soc \ -compilerOpts -I$ZEPHYR_BASE/ext/hal/st/stm32cube/stm32f4xx/drivers/include \
-copt -I$ZEPHYR_BASE/ext/hal/st/stm32cube/stm32f4xx/drivers/include \ -compilerOpts -I$ZEPHYR_BASE/ext/hal/st/stm32cube/stm32f4xx/drivers/include/Legacy \
-copt -I$ZEPHYR_BASE/ext/hal/st/stm32cube/stm32f4xx/drivers/include/Legacy \ -compilerOpts -I$ZEPHYR_BASE/drivers \
-copt -I$ZEPHYR_BASE/drivers \ -compilerOpts -I$DIR/build/zephyr/include/generated \
-copt -I$DIR/build/zephyr/include/generated \ -compilerOpts -I$DIR/build/zephyr/include/generated/syscalls \
-copt -I$DIR/build/zephyr/include/generated/syscalls \
-o $DIR/c_interop/platforms/build/$BOARD \ -o $DIR/c_interop/platforms/build/$BOARD \
-target zephyr_$BOARD || exit 1 -target zephyr_$BOARD || exit 1
+3 -3
View File
@@ -8,16 +8,16 @@ import kotlinx.cinterop.*
fun blinky(value: Int) { fun blinky(value: Int) {
val port = LED0_GPIO_PORT val port = LED0_GPIO_CONTROLLER
val led = LED0_GPIO_PIN val led = LED0_GPIO_PIN
var toggler = false var toggler = false
val dev = device_get_binding(port) val dev = device_get_binding(port)
gpio_pin_configure(dev, led, GPIO_DIR_OUT) gpio_pin_configure(dev, led.convert(), GPIO_DIR_OUT)
while (true) { while (true) {
/* Set pin to HIGH/LOW every 1 second */ /* Set pin to HIGH/LOW every 1 second */
gpio_pin_write(dev, led, if (toggler) 1 else 0); gpio_pin_write(dev, led.convert(), if (toggler) 1U else 0U);
toggler = !toggler toggler = !toggler
k_sleep(1000 * value); k_sleep(1000 * value);
} }