diff --git a/Tools/px_generate_params.py b/Tools/px_generate_params.py index b468867523..c73b842875 100755 --- a/Tools/px_generate_params.py +++ b/Tools/px_generate_params.py @@ -82,12 +82,12 @@ src += """ }; #ifdef __PX4_DARWIN -#define ___param__attributes ; +#define ___param__attributes #else -#define ___param__attributes __attribute__((alias("px4_parameters_impl"))); +#define ___param__attributes __attribute__((alias("px4_parameters_impl"))) #endif -extern const struct px4_parameters_t px4_parameters ___param__attributes +extern const struct px4_parameters_t px4_parameters ___param__attributes; """ % i fp_header.write(header) diff --git a/cmake/common/px4_base.cmake b/cmake/common/px4_base.cmake index 4b42f388cf..0142d21736 100644 --- a/cmake/common/px4_base.cmake +++ b/cmake/common/px4_base.cmake @@ -273,6 +273,9 @@ function(px4_add_module) endif() endforeach() foreach (prop STACK MAIN COMPILE_FLAGS LINK_FLAGS PRIORITY) + if ("${prop}" STREQUAL "MAIN") + add_definitions(-DPX4_MAIN=${${prop}}_app_main) + endif() if (${prop}) set_target_properties(${MODULE} PROPERTIES "${prop}" "${${prop}}") endif() diff --git a/cmake/configs/posix_eagle_default.cmake b/cmake/configs/posix_eagle_default.cmake index 8bee815a8b..36c787edca 100644 --- a/cmake/configs/posix_eagle_default.cmake +++ b/cmake/configs/posix_eagle_default.cmake @@ -8,7 +8,7 @@ set(config_module_list drivers/pwm_out_sim drivers/rgbled drivers/led - modules/sensors + drivers/boards/sitl systemcmds/param systemcmds/mixer @@ -38,6 +38,7 @@ set(config_module_list lib/geo_lookup lib/conversion + platforms/common platforms/posix/px4_layer platforms/posix/work_queue ) diff --git a/cmake/configs/posix_eagle_hil.cmake b/cmake/configs/posix_eagle_hil.cmake index fc771f3d89..c4e5375766 100644 --- a/cmake/configs/posix_eagle_hil.cmake +++ b/cmake/configs/posix_eagle_hil.cmake @@ -1,5 +1,10 @@ include(posix/px4_impl_posix) +# Use build stubs unless explicitly set not to +if("${DSPAL_STUBS_ENABLE}" STREQUAL "") + set(DSPAL_STUBS_ENABLE "1") +endif() + set(CMAKE_TOOLCHAIN_FILE cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake) set(config_module_list @@ -26,6 +31,7 @@ set(config_module_list lib/geo_lookup lib/conversion + platforms/common platforms/posix/px4_layer platforms/posix/work_queue modules/muorb/krait diff --git a/cmake/configs/posix_eagle_release.cmake b/cmake/configs/posix_eagle_release.cmake index cb3019ae2b..36a9ad1be3 100644 --- a/cmake/configs/posix_eagle_release.cmake +++ b/cmake/configs/posix_eagle_release.cmake @@ -1,5 +1,10 @@ include(posix/px4_impl_posix) +# Use build stubs unless explicitly set not to +if("${DSPAL_STUBS_ENABLE}" STREQUAL "") + set(DSPAL_STUBS_ENABLE "1") +endif() + set(CMAKE_TOOLCHAIN_FILE cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake) set(config_module_list @@ -20,6 +25,7 @@ set(config_module_list lib/geo_lookup lib/conversion + platforms/common platforms/posix/px4_layer platforms/posix/work_queue diff --git a/cmake/configs/qurt_eagle_hello.cmake b/cmake/configs/qurt_eagle_hello.cmake index 43db471f69..9076ec7511 100644 --- a/cmake/configs/qurt_eagle_hello.cmake +++ b/cmake/configs/qurt_eagle_hello.cmake @@ -24,10 +24,4 @@ set(config_module_list platforms/posix/work_queue platforms/qurt/tests/hello ) - set(${out_module_list} ${config_module_list} PARENT_SCOPE) - - # output - set(${OUT_MODULES} ${config_module_list} PARENT_SCOPE) - -endfunction() diff --git a/cmake/configs/qurt_eagle_test.cmake b/cmake/configs/qurt_eagle_test.cmake index 501c7fbeb8..c25191f5b9 100644 --- a/cmake/configs/qurt_eagle_test.cmake +++ b/cmake/configs/qurt_eagle_test.cmake @@ -14,7 +14,7 @@ set(config_module_list # Library modules # modules/systemlib - modules/mixer + modules/systemlib/mixer modules/uORB # @@ -31,8 +31,8 @@ set(config_module_list platforms/qurt/px4_layer platforms/posix/work_queue platforms/qurt/tests/hello - platforms/qurt/tests/vcdev_test - platforms/qurt/tests/hrt_test - platforms/qurt/tests/wqueue + platforms/posix/tests/vcdev_test + platforms/posix/tests/hrt_test + platforms/posix/tests/wqueue ) diff --git a/cmake/configs/qurt_eagle_travis.cmake b/cmake/configs/qurt_eagle_travis.cmake index 61b171d14d..ab766f189c 100644 --- a/cmake/configs/qurt_eagle_travis.cmake +++ b/cmake/configs/qurt_eagle_travis.cmake @@ -1,7 +1,7 @@ include(qurt/px4_impl_qurt) # Run a full link with build stubs to make sure qurt target isn't broken -set(QURT_ENABLE_STUBS 1) +set(QURT_ENABLE_STUBS "1") set(CMAKE_TOOLCHAIN_FILE cmake/toolchains/Toolchain-hexagon.cmake) diff --git a/src/firmware/nuttx/CMakeLists.txt b/src/firmware/nuttx/CMakeLists.txt index 13118146f5..39abf9161a 100644 --- a/src/firmware/nuttx/CMakeLists.txt +++ b/src/firmware/nuttx/CMakeLists.txt @@ -11,7 +11,7 @@ px4_nuttx_generate_romfs(OUT romfs.o px4_generate_parameters() # add executable -add_executable(firmware_nuttx builtin_commands.c romfs.o) +add_executable(firmware_nuttx builtin_commands.c ${CMAKE_BINARY_DIR}/px4_parameters.c romfs.o) set(nuttx_export_dir ${CMAKE_BINARY_DIR}/${BOARD}/NuttX/nuttx-export) set(main_link_flags "-T${nuttx_export_dir}/build/ld.script" diff --git a/src/firmware/qurt/CMakeLists.txt b/src/firmware/qurt/CMakeLists.txt index 8e8b3ea7f5..b4271ee12e 100644 --- a/src/firmware/qurt/CMakeLists.txt +++ b/src/firmware/qurt/CMakeLists.txt @@ -20,19 +20,15 @@ px4_generate_parameters() if ("${QURT_ENABLE_STUBS}" STREQUAL "1") add_executable(mainapp ${CMAKE_SOURCE_DIR}/src/platforms/qurt/dspal/dspal_stub.c + ${CMAKE_BINARY_DIR}/px4_parameters.c ${CMAKE_BINARY_DIR}/apps.h) else("${QURT_ENABLE_STUBS}" STREQUAL "1") add_library(mainapp ${CMAKE_SOURCE_DIR}/src/platforms/qurt/dspal/dspal_stub.c + ${CMAKE_BINARY_DIR}/px4_parameters.c ${CMAKE_BINARY_DIR}/apps.h) endif() -set(main_link_flags - "-T${CMAKE_SOURCE_DIR}/cmake/posix/ld.script" - ) -px4_join(OUT main_link_flags LIST ${main_link_flags} GLUE " ") -set_target_properties(mainapp PROPERTIES LINK_FLAGS ${main_link_flags}) - target_link_libraries(mainapp -Wl,--whole-archive ${module_libraries} diff --git a/src/modules/muorb/krait-stubs/px4muorb_KraitRpcWrapper.hpp b/src/modules/muorb/krait-stubs/px4muorb_KraitRpcWrapper.hpp new file mode 100644 index 0000000000..d6feab2a47 --- /dev/null +++ b/src/modules/muorb/krait-stubs/px4muorb_KraitRpcWrapper.hpp @@ -0,0 +1,76 @@ +/**************************************************************************** + * + * Copyright (C) 2015 Mark Charlebois. 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. + * + ****************************************************************************/ +#ifndef _px4muorb_KraitRpcWrapper_hpp_ +#define _px4muorb_KraitRpcWrapper_hpp_ +#include + +namespace px4muorb +{ + class KraitRpcWrapper; +} + +class px4muorb::KraitRpcWrapper +{ +public: + /** + * Constructor + */ + KraitRpcWrapper() {} + + /** + * destructor + */ + ~KraitRpcWrapper() {} + + /** + * Initiatizes the rpc channel px4 muorb + */ + bool Initialize() { return true; } + + /** + * Terminate to clean up the resources. This should be called at program exit + */ + bool Terminate() { return true; } + + /** + * Muorb related functions to pub/sub of orb topic from krait to adsp + */ + int32_t AddSubscriber( const char* topic ) { return 1; } + int32_t RemoveSubscriber( const char* topic ) { return 1; } + int32_t SendData( const char* topic, int32_t length_in_bytes, const uint8_t* data ) { return 1; } + int32_t ReceiveData( int32_t* msg_type, char** topic, int32_t* length_in_bytes, uint8_t** data ) { return 1; } + int32_t IsSubscriberPresent( const char* topic, int32_t* status ) { return 1; } + int32_t ReceiveBulkData( uint8_t** bulk_data, int32_t* length_in_bytes, int32_t* topic_count ) { return 1; } + int32_t UnblockReceiveData() { return 1; } +}; +#endif // _px4muorb_KraitWrapper_hpp_ diff --git a/src/modules/muorb/krait/CMakeLists.txt b/src/modules/muorb/krait/CMakeLists.txt index 5bb0dd4f7d..1c1d6605ac 100644 --- a/src/modules/muorb/krait/CMakeLists.txt +++ b/src/modules/muorb/krait/CMakeLists.txt @@ -30,6 +30,10 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ +if("${DSPAL_STUBS_ENABLE}" STREQUAL "1") + include_directories(../krait-stubs) +endif() + px4_add_module( MODULE modules__muorb__krait MAIN muorb diff --git a/src/modules/muorb/krait/muorb_main.cpp b/src/modules/muorb/krait/muorb_main.cpp index 3a320e6134..006870780c 100644 --- a/src/modules/muorb/krait/muorb_main.cpp +++ b/src/modules/muorb/krait/muorb_main.cpp @@ -32,7 +32,7 @@ ****************************************************************************/ #include -#include "uORBManager.hpp" +#include "modules/uORB/uORBManager.hpp" #include "uORBKraitFastRpcChannel.hpp" extern "C" { __EXPORT int muorb_main(int argc, char *argv[]); } diff --git a/src/modules/muorb/krait/uORBKraitFastRpcChannel.hpp b/src/modules/muorb/krait/uORBKraitFastRpcChannel.hpp index a2f6850cbe..0e8d82b44b 100644 --- a/src/modules/muorb/krait/uORBKraitFastRpcChannel.hpp +++ b/src/modules/muorb/krait/uORBKraitFastRpcChannel.hpp @@ -38,7 +38,7 @@ #include #include #include "uORB/uORBCommunicator.hpp" -#include +#include "px4muorb_KraitRpcWrapper.hpp" #include #include "drivers/drv_hrt.h" diff --git a/src/platforms/qurt/tests/muorb/muorb_test_example.cpp b/src/platforms/qurt/tests/muorb/muorb_test_example.cpp index 2628b56a3b..3b932b5f13 100644 --- a/src/platforms/qurt/tests/muorb/muorb_test_example.cpp +++ b/src/platforms/qurt/tests/muorb/muorb_test_example.cpp @@ -45,7 +45,7 @@ #include #include "uORB/topics/sensor_combined.h" #include "uORB/topics/pwm_input.h" -#include "uORB.h" +#include "modules/uORB/uORB.h" #include "px4_middleware.h" #include "px4_defines.h" #include