platform: restructure (NuttX) architecture-specific code

updated: tone_alarm, px4io_serial, px4_micro_hal
This commit is contained in:
Beat Küng
2019-08-23 16:04:22 +02:00
parent 2fa3ee9336
commit ab43a83bed
111 changed files with 1640 additions and 404 deletions
+12
View File
@@ -347,6 +347,17 @@ else()
px4_find_python_module(jinja2 REQUIRED)
endif()
#=============================================================================
# get chip and chip manufacturer
#
px4_os_determine_build_chip()
if(NOT PX4_CHIP_MANUFACTURER)
message(FATAL_ERROR "px4_os_determine_build_chip() needs to set PX4_CHIP_MANUFACTURER")
endif()
if(NOT PX4_CHIP)
message(FATAL_ERROR "px4_os_determine_build_chip() needs to set PX4_CHIP")
endif()
#=============================================================================
# build flags
#
@@ -451,6 +462,7 @@ add_library(parameters_interface INTERFACE)
include(px4_add_library)
add_subdirectory(src/lib EXCLUDE_FROM_ALL)
add_subdirectory(platforms/${PX4_PLATFORM}/src/px4)
add_subdirectory(src/platforms EXCLUDE_FROM_ALL)
add_subdirectory(src/modules/uORB EXCLUDE_FROM_ALL) # TODO: platform layer
add_subdirectory(src/drivers/boards EXCLUDE_FROM_ALL)
-1
View File
@@ -42,7 +42,6 @@ px4_add_board(
rc_input
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -48,7 +48,6 @@ px4_add_board(
roboclaw
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -49,7 +49,6 @@ px4_add_board(
#roboclaw
stm32
stm32/adc
#stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -27,7 +27,6 @@ px4_add_board(
rc_input
stm32
stm32/adc
stm32/tone_alarm
telemetry
tone_alarm
osd
-1
View File
@@ -51,7 +51,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -32,7 +32,6 @@ px4_add_board(
irlock
kinetis
kinetis/adc
kinetis/tone_alarm
lights/blinkm
lights/oreoled
lights/rgbled
-1
View File
@@ -37,7 +37,6 @@ px4_add_board(
rc_input
stm32
stm32/adc
#stm32/tone_alarm
#tap_esc
#telemetry # all available telemetry drivers
telemetry/frsky_telemetry
-1
View File
@@ -57,7 +57,6 @@ px4_add_board(
#roboclaw
stm32
stm32/adc
stm32/tone_alarm
#tap_esc
#telemetry # all available telemetry drivers
#test_ppm
-1
View File
@@ -37,7 +37,6 @@ px4_add_board(
px4io
stm32
stm32/adc
stm32/tone_alarm
#telemetry # all available telemetry drivers
telemetry/iridiumsbd
tone_alarm
-1
View File
@@ -53,7 +53,6 @@ px4_add_board(
px4io
stm32
stm32/adc
stm32/tone_alarm
#tap_esc
#telemetry # all available telemetry drivers
#test_ppm
-1
View File
@@ -37,7 +37,6 @@ px4_add_board(
px4io
stm32
stm32/adc
stm32/tone_alarm
tone_alarm
MODULES
-1
View File
@@ -33,7 +33,6 @@ px4_add_board(
px4io
stm32
stm32/adc
stm32/tone_alarm
tone_alarm
MODULES
-1
View File
@@ -53,7 +53,6 @@ px4_add_board(
px4io
stm32
stm32/adc
stm32/tone_alarm
#tap_esc
#telemetry # all available telemetry drivers
#test_ppm
-1
View File
@@ -56,7 +56,6 @@ px4_add_board(
roboclaw
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
roboclaw
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
roboclaw
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -41,7 +41,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -43,7 +43,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -41,7 +41,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -54,7 +54,6 @@ px4_add_board(
roboclaw
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -53,7 +53,6 @@ px4_add_board(
roboclaw
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -39,7 +39,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
telemetry # all available telemetry drivers
tone_alarm
uavcan
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -43,7 +43,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
tone_alarm
-1
View File
@@ -43,7 +43,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
telemetry # all available telemetry drivers
tone_alarm
uavcan
-1
View File
@@ -53,7 +53,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -53,7 +53,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -49,7 +49,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
telemetry # all available telemetry drivers
tone_alarm
uavcan
-1
View File
@@ -50,7 +50,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
tone_alarm
-1
View File
@@ -53,7 +53,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
telemetry # all available telemetry drivers
tone_alarm
uavcan
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -55,7 +55,6 @@ px4_add_board(
safety_button
stm32
stm32/adc
stm32/tone_alarm
tap_esc
telemetry # all available telemetry drivers
test_ppm
-1
View File
@@ -17,7 +17,6 @@ px4_add_board(
#magnetometer # all available magnetometer drivers
pwm_out_sim
#telemetry # all available telemetry drivers
sim/tone_alarm
tone_alarm
#uavcan
-1
View File
@@ -17,7 +17,6 @@ px4_add_board(
#magnetometer # all available magnetometer drivers
pwm_out_sim
#telemetry # all available telemetry drivers
sim/tone_alarm
tone_alarm
#uavcan
-1
View File
@@ -17,7 +17,6 @@ px4_add_board(
#magnetometer # all available magnetometer drivers
pwm_out_sim
#telemetry # all available telemetry drivers
sim/tone_alarm
tone_alarm
#uavcan
-1
View File
@@ -47,7 +47,6 @@ px4_add_board(
rc_input
stm32
stm32/adc
stm32/tone_alarm
#tap_esc
telemetry # all available telemetry drivers
#test_ppm
+3
View File
@@ -183,6 +183,9 @@ function(px4_add_board)
set(PX4_PLATFORM ${PLATFORM} CACHE STRING "PX4 board OS" FORCE)
list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake)
# platform-specific include path
include_directories(${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/src/px4/common/include)
if(ARCHITECTURE)
set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE INTERNAL "system processor" FORCE)
endif()
+1
View File
@@ -174,6 +174,7 @@ function(px4_add_common_flags)
${PX4_BINARY_DIR}/src/lib
${PX4_BINARY_DIR}/src/modules
${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/src/px4/${PX4_CHIP_MANUFACTURER}/${PX4_CHIP}
${PX4_SOURCE_DIR}/src
${PX4_SOURCE_DIR}/src/include
${PX4_SOURCE_DIR}/src/lib
+1 -1
View File
@@ -40,7 +40,7 @@ include(px4_base)
# Like add_library but with PX4 platform dependencies
#
function(px4_add_library target)
add_library(${target} ${ARGN})
add_library(${target} EXCLUDE_FROM_ALL ${ARGN})
target_compile_definitions(${target} PRIVATE MODULE_NAME="${target}")
-2
View File
@@ -36,8 +36,6 @@ include(cygwin_cygpath)
set(NUTTX_DIR ${PX4_BINARY_DIR}/NuttX/nuttx)
set(NUTTX_APPS_DIR ${PX4_BINARY_DIR}/NuttX/apps)
add_subdirectory(src)
add_executable(px4 ${PX4_SOURCE_DIR}/src/platforms/empty.c)
set(FW_NAME ${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}.elf)
set_target_properties(px4 PROPERTIES OUTPUT_NAME ${FW_NAME})
+33
View File
@@ -38,6 +38,7 @@
# Required OS Interface Functions
#
# * px4_os_add_flags
# * px4_os_determine_build_chip
# * px4_os_prebuild_targets
#
@@ -84,6 +85,38 @@ function(px4_os_add_flags)
endfunction()
#=============================================================================
#
# px4_os_determine_build_chip
#
# Sets PX4_CHIP and PX4_CHIP_MANUFACTURER.
#
# Usage:
# px4_os_determine_build_chip()
#
function(px4_os_determine_build_chip)
# determine chip and chip manufacturer based on NuttX config
if (CONFIG_STM32_STM32F10XX)
set(CHIP_MANUFACTURER "stm")
set(CHIP "stm32f1")
elseif(CONFIG_STM32_STM32F4XXX)
set(CHIP_MANUFACTURER "stm")
set(CHIP "stm32f4")
elseif(CONFIG_ARCH_CHIP_STM32F7)
set(CHIP_MANUFACTURER "stm")
set(CHIP "stm32f7")
elseif(CONFIG_ARCH_CHIP_MK66FN2M0VMD18)
set(CHIP_MANUFACTURER "nxp")
set(CHIP "k66")
else()
message(FATAL_ERROR "Could not determine chip architecture from NuttX config. You may have to add it.")
endif()
set(PX4_CHIP ${CHIP} CACHE STRING "PX4 Chip" FORCE)
set(PX4_CHIP_MANUFACTURER ${CHIP_MANUFACTURER} CACHE STRING "PX4 Chip Manufacturer" FORCE)
endfunction()
#=============================================================================
#
# px4_os_prebuild_targets
+37
View File
@@ -0,0 +1,37 @@
############################################################################
#
# Copyright (c) 2019 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. 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.
# 3. Neither the name PX4 nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# 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 OWNER 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.
#
############################################################################
add_subdirectory(common)
add_subdirectory(${PX4_CHIP_MANUFACTURER})

Some files were not shown because too many files have changed in this diff Show More