Qurt lightweight parameter implementation (#20735)

This commit is contained in:
Zachary Lowell 2022-12-09 11:55:49 -06:00 committed by GitHub
parent f3884d5835
commit 643eed51cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 13 additions and 9 deletions

View File

@ -3,3 +3,4 @@ CONFIG_BOARD_TOOLCHAIN="qurt"
CONFIG_MODULES_MUORB_SLPI=y
CONFIG_SYSTEMCMDS_UORB=y
CONFIG_ORB_COMMUNICATOR=y
CONFIG_SYSTEMCMDS_PARAM=y

View File

@ -5,3 +5,4 @@ CONFIG_MODULES_MUORB_APPS=y
CONFIG_SYSTEMCMDS_PERF=y
CONFIG_SYSTEMCMDS_UORB=y
CONFIG_ORB_COMMUNICATOR=y
CONFIG_SYSTEMCMDS_PARAM=y

View File

@ -48,9 +48,7 @@ function(px4_add_library target)
# all PX4 libraries have access to parameters and uORB
# TODO: Exclusion of qurt is temporary until these modules
# build cleanly.
if(NOT ${PLATFORM} MATCHES "qurt")
add_dependencies(${target} uorb_headers parameters)
endif()
add_dependencies(${target} uorb_headers parameters)
target_link_libraries(${target} PRIVATE prebuild_targets)
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_PATHS ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -170,9 +170,6 @@ function(px4_add_module)
if (${PX4_PLATFORM} STREQUAL "nuttx" AND NOT CONFIG_BUILD_FLAT AND KERNEL)
target_link_libraries(${MODULE} PRIVATE kernel_parameters_interface px4_kernel_layer uORB_kernel)
set_property(GLOBAL APPEND PROPERTY PX4_KERNEL_MODULE_LIBRARIES ${MODULE})
elseif(${PX4_PLATFORM} STREQUAL "qurt")
target_link_libraries(${MODULE} PRIVATE px4_layer uORB)
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_LIBRARIES ${MODULE})
else()
target_link_libraries(${MODULE} PRIVATE parameters_interface px4_layer uORB)
set_property(GLOBAL APPEND PROPERTY PX4_MODULE_LIBRARIES ${MODULE})

View File

@ -100,6 +100,12 @@ typedef struct {
#define POLLIN (0x01)
#endif
#if defined(__PX4_QURT)
// Qurt has no fsync implementation so need to declare one here
// and then define a fake one in the Qurt platform code.
void fsync(int fd);
#endif
__EXPORT int px4_open(const char *path, int flags, ...);
__EXPORT int px4_close(int fd);
__EXPORT ssize_t px4_read(int fd, void *buffer, size_t buflen);
@ -114,7 +120,6 @@ __END_DECLS
#error "No TARGET OS Provided"
#endif
// The stack size is intended for 32-bit architectures; therefore
// we often run out of stack space when pointers are larger than 4 bytes.
// Double the stack size on posix when we're on a 64-bit architecture.

View File

@ -50,8 +50,6 @@ include(qurt_reqs)
include_directories(${HEXAGON_SDK_INCLUDES})
set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
#=============================================================================
#
# Defined functions in this file

View File

@ -38,6 +38,8 @@
#include <pthread.h>
#include <visibility.h>
#include <inttypes.h>
#include <sys/stat.h>
__BEGIN_DECLS

View File

@ -35,5 +35,7 @@
__BEGIN_DECLS
long PX4_TICKS_PER_SEC = 1000L;
void fsync(int fd) { return; }
uint32_t crc32part(const uint8_t *src, size_t len, uint32_t crc32val) { return 1; }
__END_DECLS