diff --git a/Drv/BlockDriver/BlockDriverComponentAi.xml b/Drv/BlockDriver/BlockDriverComponentAi.xml index db99e5757f..135a0888df 100644 --- a/Drv/BlockDriver/BlockDriverComponentAi.xml +++ b/Drv/BlockDriver/BlockDriverComponentAi.xml @@ -60,7 +60,7 @@ Internal interrupt reporting interface - + The interrupt register value diff --git a/Drv/CMakeLists.txt b/Drv/CMakeLists.txt index 027adb4265..f9f69bafab 100644 --- a/Drv/CMakeLists.txt +++ b/Drv/CMakeLists.txt @@ -14,8 +14,14 @@ add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxGpioDriver/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxSerialDriver/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxSpiDriver/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxI2cDriver/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Ip/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/TcpClient/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/TcpServer/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Udp/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/SocketIpDriver/") + +# IP Socket is only supported for Linux, Darwin, VxWorks +if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR ${CMAKE_SYSTEM_NAME} STREQUAL "VxWorks") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Ip/") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/TcpClient/") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/TcpServer/") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Udp/") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/SocketIpDriver/") +else() + message(STATUS "Cannot use IP sockets with platform ${CMAKE_SYSTEM_NAME}. Skipping.") +endif() diff --git a/Fw/Cfg/CMakeLists.txt b/Fw/Cfg/CMakeLists.txt index f0b737446f..ecb0c5a769 100644 --- a/Fw/Cfg/CMakeLists.txt +++ b/Fw/Cfg/CMakeLists.txt @@ -9,7 +9,7 @@ set(SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/ConfigCheck.cpp" ) register_fprime_module() -if (FPRIME_USE_BAREMETAL_SCHEDULE) +if (FPRIME_USE_BAREMETAL_SCHEDULER) target_compile_definitions(Fw_Cfg PUBLIC FW_BAREMETAL_SCHEDULER=1) else() target_compile_definitions(Fw_Cfg PUBLIC FW_BAREMETAL_SCHEDULER=0) diff --git a/Fw/Types/BasicTypes.hpp b/Fw/Types/BasicTypes.hpp index d9fe2dc838..544a4b711e 100644 --- a/Fw/Types/BasicTypes.hpp +++ b/Fw/Types/BasicTypes.hpp @@ -100,6 +100,61 @@ typedef float F32; //!< 32-bit floating point #define NULL (0) //!< NULL #endif + +#ifndef I8_MAX +#define I8_MAX (I8)(127) +#endif + +#ifndef I8_MIN +#define I8_MIN (I8)(-128) +#endif + +#ifndef U8_MAX +#define U8_MAX (U8)(255) +#endif + +#if FW_HAS_16_BIT +#ifndef I16_MAX +#define I16_MAX (I16)(32767) +#endif + +#ifndef I16_MIN +#define I16_MIN (I16)(-32768) +#endif + +#ifndef U16_MAX +#define U16_MAX (U16)(65535) +#endif +#endif + +#if FW_HAS_32_BIT +#ifndef I32_MAX +#define I32_MAX (I32)(2147483647) +#endif + +#ifndef I32_MIN +#define I32_MIN (I32)(-2147483648) +#endif + +#ifndef U32_MAX +#define U32_MAX (U32)(4294967295) +#endif +#endif + +#if FW_HAS_64_BIT +#ifndef I64_MAX +#define I64_MAX (I64)(9223372036854775807) +#endif + +#ifndef I64_MIN +#define I64_MIN (I64)(-9223372036854775808) +#endif + +#ifndef U64_MAX +#define U64_MAX (U64)(18446744073709551615) +#endif +#endif + #define FW_NUM_ARRAY_ELEMENTS(a) (sizeof(a)/sizeof((a)[0])) //!< number of elements in an array #define FW_MAX(a,b) (((a) > (b))?(a):(b)) //!< MAX macro diff --git a/Os/CMakeLists.txt b/Os/CMakeLists.txt index 2f9ebf14d5..4cb2129aaa 100644 --- a/Os/CMakeLists.txt +++ b/Os/CMakeLists.txt @@ -80,6 +80,7 @@ if (FPRIME_USE_BAREMETAL_SCHEDULER) endif() endforeach() list(APPEND SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/Baremetal/Task.cpp") + list(APPEND SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/Baremetal/Mutex.cpp") endif() register_fprime_module() diff --git a/Svc/CMakeLists.txt b/Svc/CMakeLists.txt index 37b3d3da70..7111112d0f 100644 --- a/Svc/CMakeLists.txt +++ b/Svc/CMakeLists.txt @@ -31,8 +31,6 @@ add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/GroundInterface/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Framer/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/FramingProtocol/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Health/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxTime/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxTimer/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/PassiveConsoleTextLogger/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/PolyDb/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/PrmDb/") @@ -40,3 +38,9 @@ add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/RateGroupDriver/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/StaticMemory/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Time/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/TlmChan/") + +if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxTime/") + add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/LinuxTimer/") +endif() + \ No newline at end of file diff --git a/Svc/ComLogger/ComLogger.hpp b/Svc/ComLogger/ComLogger.hpp index a0f26aa80c..59893fcb65 100644 --- a/Svc/ComLogger/ComLogger.hpp +++ b/Svc/ComLogger/ComLogger.hpp @@ -17,6 +17,13 @@ #include #include +// some limits.h don't have PATH_MAX +#ifdef PATH_MAX +#define COMLOGGER_PATH_MAX PATH_MAX +#else +#define COMLOGGER_PATH_MAX 255 +#endif + namespace Svc { class ComLogger : @@ -75,7 +82,7 @@ namespace Svc { // The maximum size of a filename enum { MAX_FILENAME_SIZE = NAME_MAX, // as defined in limits.h - MAX_PATH_SIZE = PATH_MAX + MAX_PATH_SIZE = COMLOGGER_PATH_MAX }; // The filename data: diff --git a/Svc/FatalHandler/CMakeLists.txt b/Svc/FatalHandler/CMakeLists.txt index 7f9e3841ff..c40977dfdc 100644 --- a/Svc/FatalHandler/CMakeLists.txt +++ b/Svc/FatalHandler/CMakeLists.txt @@ -6,11 +6,20 @@ # # Note: using PROJECT_NAME as EXECUTABLE_NAME #### + set(SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/FatalHandlerComponentAi.xml" "${CMAKE_CURRENT_LIST_DIR}/FatalHandlerComponentCommonImpl.cpp" - "${CMAKE_CURRENT_LIST_DIR}/FatalHandlerComponentLinuxImpl.cpp" ) + +if(FPRIME_USE_BAREMETAL_SCHEDULER) + list(APPEND SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/FatalHandlerComponentBaremetalImpl.cpp") +elseif(${CMAKE_SYSTEM_NAME} STREQUAL "VxWorks") + list(APPEND SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/FatalHandlerComponentVxWorksImpl.cpp") +else() + list(APPEND SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/FatalHandlerComponentLinuxImpl.cpp") +endif() + set(MOD_DEPS Os Fw/Logger diff --git a/Svc/FileDownlink/FileDownlink.cpp b/Svc/FileDownlink/FileDownlink.cpp index 87a03f8ec9..6b5a7e8dfb 100644 --- a/Svc/FileDownlink/FileDownlink.cpp +++ b/Svc/FileDownlink/FileDownlink.cpp @@ -179,7 +179,7 @@ namespace Svc { Os::Queue::QueueStatus status = fileQueue.send((U8 *) &entry, sizeof(entry), 0, Os::Queue::QUEUE_NONBLOCKING); if(status != Os::Queue::QUEUE_OK) { - return SendFileResponse(SendFileStatus::ERROR, __UINT32_MAX__); + return SendFileResponse(SendFileStatus::ERROR, U32_MAX); } return SendFileResponse(SendFileStatus::OK, entry.context); } @@ -241,7 +241,7 @@ namespace Svc { .source = FileDownlink::COMMAND, .opCode = opCode, .cmdSeq = cmdSeq, - .context =__UINT32_MAX__ + .context = U32_MAX }; FW_ASSERT(sourceFilename.length() < sizeof(entry.srcFilename)); @@ -274,7 +274,7 @@ namespace Svc { .source = FileDownlink::COMMAND, .opCode = opCode, .cmdSeq = cmdSeq, - .context = __UINT32_MAX__ + .context = U32_MAX }; FW_ASSERT(sourceFilename.length() < sizeof(entry.srcFilename)); diff --git a/cmake/platform/Linux.cmake b/cmake/platform/Linux.cmake index b44cbab0c6..d8e71e19ea 100644 --- a/cmake/platform/Linux.cmake +++ b/cmake/platform/Linux.cmake @@ -5,7 +5,7 @@ #### # Set platform default for baremetal scheduler drivers if (NOT DEFINED FPRIME_USE_BAREMETAL_SCHEDULER) - set(FPRIME_USE_BAREMETAL_SCHEDULE OFF) + set(FPRIME_USE_BAREMETAL_SCHEDULER OFF) message(STATUS "Requiring thread library") FIND_PACKAGE ( Threads REQUIRED ) endif() diff --git a/cmake/platform/platform.cmake.template b/cmake/platform/platform.cmake.template index 501c9f3931..8d6a318382 100644 --- a/cmake/platform/platform.cmake.template +++ b/cmake/platform/platform.cmake.template @@ -62,7 +62,7 @@ set(CMAKE_CXX_FLAGS # directory. NOTE: when running without threads, remove this line. # Here there is a check for the using baremetal scheduler if (NOT DEFINED FPRIME_USE_BAREMETAL_SCHEDULER) - set(FPRIME_USE_BAREMETAL_SCHEDULE OFF) + set(FPRIME_USE_BAREMETAL_SCHEDULER OFF) message(STATUS "Requiring thread library") FIND_PACKAGE ( Threads REQUIRED ) endif()