From 8dae5b1c7ae6d5de55aa807413114998075dfbc3 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Thu, 10 Dec 2015 23:18:06 +0000 Subject: [PATCH] RTOS/RioTOS: Added initial PolyMCU support --- Application/Examples/RioTOS/Application.cmake | 34 +++++++++++ Application/Examples/RioTOS/CMakeLists.txt | 35 +++++++++++ README.md | 1 + RTOS/RioTOS/CMakeLists.txt | 61 +++++++++++++++++++ RTOS/RioTOS/FindRTOS.cmake | 42 +++++++++++++ 5 files changed, 173 insertions(+) create mode 100644 Application/Examples/RioTOS/Application.cmake create mode 100644 Application/Examples/RioTOS/CMakeLists.txt create mode 100644 RTOS/RioTOS/CMakeLists.txt create mode 100644 RTOS/RioTOS/FindRTOS.cmake diff --git a/Application/Examples/RioTOS/Application.cmake b/Application/Examples/RioTOS/Application.cmake new file mode 100644 index 0000000..248182d --- /dev/null +++ b/Application/Examples/RioTOS/Application.cmake @@ -0,0 +1,34 @@ +# +# Copyright (c) 2015, Lab A Part +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Support required by the application +if (NOT DEFINED SUPPORT_RTOS) + set(SUPPORT_RTOS RioTOS) +endif() + +# List of modules needed by the application +set(LIST_MODULES CMSIS + Lib/PolyMCU) diff --git a/Application/Examples/RioTOS/CMakeLists.txt b/Application/Examples/RioTOS/CMakeLists.txt new file mode 100644 index 0000000..3cd91c2 --- /dev/null +++ b/Application/Examples/RioTOS/CMakeLists.txt @@ -0,0 +1,35 @@ +# +# Copyright (c) 2015, Lab A Part +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +cmake_minimum_required(VERSION 2.6) + +find_package(Board) +find_package(CMSIS) +find_package(PolyMCU) + +set(Firmware_SRCS main.c) +set(Firmware_LIBS ${Board_LIBRARIES} ${RTOS_LIBRARIES} ${PolyMCU_LIBRARIES}) +BUILD_FIRMWARE(Firmware RioT_RTOS_Example "${Firmware_SRCS}" "${Firmware_LIBS}") diff --git a/README.md b/README.md index fb3eeec..b56b941 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Support - RTOS: - **ARM RTX: V4.79** - **FreeRTOS V8.2.3** + - **RioT-OS 2015.09** - Boards: - AppNearMe MicroNFCBoard - Freescale Freedom KL25 diff --git a/RTOS/RioTOS/CMakeLists.txt b/RTOS/RioTOS/CMakeLists.txt new file mode 100644 index 0000000..afd3b56 --- /dev/null +++ b/RTOS/RioTOS/CMakeLists.txt @@ -0,0 +1,61 @@ +# +# Copyright (c) 2015, Lab A Part +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +cmake_minimum_required(VERSION 2.6) + +find_package(Board) +find_package(CMSIS) +find_package(RTOS) + +add_definitions(-DRIOT_VERSION="2015.09") + +# Remove '-DDEBUG' to avoid to get conflict with the RioT's macro DEBUG() +string(REPLACE "-DDEBUG" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) + +set(riot_SRSC ${RIOT_CORE_ROOT}/atomic.c + ${RIOT_CORE_ROOT}/bitarithm.c + ${RIOT_CORE_ROOT}/c11_atomic.c + ${RIOT_CORE_ROOT}/clist.c + ${RIOT_CORE_ROOT}/kernel_init.c + ${RIOT_CORE_ROOT}/lifo.c + ${RIOT_CORE_ROOT}/msg.c + ${RIOT_CORE_ROOT}/mutex.c + ${RIOT_CORE_ROOT}/panic.c + ${RIOT_CORE_ROOT}/priority_queue.c + ${RIOT_CORE_ROOT}/ringbuffer.c + ${RIOT_CORE_ROOT}/reboot.c + ${RIOT_CORE_ROOT}/sched.c + ${RIOT_CORE_ROOT}/thread.c) + +# ARM Cortex-M support +list(APPEND riot_SRSC ${RIOT_CPU_ROOT}/cortexm_common/atomic_arch.c + ${RIOT_CPU_ROOT}/cortexm_common/cortexm_init.c + ${RIOT_CPU_ROOT}/cortexm_common/irq_arch.c + ${RIOT_CPU_ROOT}/cortexm_common/panic.c + ${RIOT_CPU_ROOT}/cortexm_common/reboot_arch.c + ${RIOT_CPU_ROOT}/cortexm_common/thread_arch.c) + +add_library(riot_rtos STATIC ${riot_SRSC}) diff --git a/RTOS/RioTOS/FindRTOS.cmake b/RTOS/RioTOS/FindRTOS.cmake new file mode 100644 index 0000000..bd51d78 --- /dev/null +++ b/RTOS/RioTOS/FindRTOS.cmake @@ -0,0 +1,42 @@ +# +# Copyright (c) 2015, Lab A Part +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +set(RIOT_CPU_ROOT ${CMAKE_CURRENT_LIST_DIR}/src/cpu) +set(RIOT_CORE_ROOT ${CMAKE_CURRENT_LIST_DIR}/src/core) +set(RIOT_SYS_ROOT ${CMAKE_CURRENT_LIST_DIR}/src/sys) + +include_directories(${RIOT_CORE_ROOT}/include + ${RIOT_SYS_ROOT}/include) + +# +# ARM Cortex-M support +# +include_directories(${RIOT_CPU_ROOT}/cortexm_common/include) + +# This CPU implementation is using the new core/CPU interface: +add_definitions(-DCOREIF_NG=1) + +set(RTOS_LIBRARIES riot_rtos)