From ade4ee50c56cc574f66fdca98742cefd74912d5b Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Wed, 28 Jan 2026 18:54:18 +0100 Subject: [PATCH] baremetal: add baremetal platform --- CMakeLists.txt | 2 +- .../shared/platform/baremetal/platform_init.c | 24 +++++++++ .../platform/baremetal/platform_internal.h | 49 +++++++++++++++++++ .../platform/baremetal/shared_platform.cmake | 12 +++++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 core/shared/platform/baremetal/platform_init.c create mode 100644 core/shared/platform/baremetal/platform_internal.h create mode 100644 core/shared/platform/baremetal/shared_platform.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b28fa89..6031b7c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,7 +150,7 @@ endif () include (${SHARED_DIR}/utils/uncommon/shared_uncommon.cmake) set (THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads REQUIRED) +# find_package(Threads REQUIRED) add_library (vmlib ${WAMR_RUNTIME_LIB_SOURCE}) set_target_properties (vmlib PROPERTIES OUTPUT_NAME iwasm) diff --git a/core/shared/platform/baremetal/platform_init.c b/core/shared/platform/baremetal/platform_init.c new file mode 100644 index 00000000..6665d117 --- /dev/null +++ b/core/shared/platform/baremetal/platform_init.c @@ -0,0 +1,24 @@ +#include "platform_api_vmcore.h" + +int +bh_platform_init() +{ + return 0; +} + +void +bh_platform_destroy() +{ +} + +int +os_printf(const char *format, ...) +{ + return 0; +} + +int +os_vprintf(const char *format, va_list ap) +{ + return 0; +} diff --git a/core/shared/platform/baremetal/platform_internal.h b/core/shared/platform/baremetal/platform_internal.h new file mode 100644 index 00000000..ee0dcdb8 --- /dev/null +++ b/core/shared/platform/baremetal/platform_internal.h @@ -0,0 +1,49 @@ +#ifndef _PLATFORM_INTERNAL_H +#define _PLATFORM_INTERNAL_H + +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include +// #include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef BH_PLATFORM_BAREMETAL +#define BH_PLATFORM_BAREMETAL +#endif + +#define BH_APPLET_PRESERVED_STACK_SIZE (8 * 1024) +#define BH_THREAD_DEFAULT_PRIORITY 0 + +#ifdef __cplusplus +} +#endif + +#endif /* end of _PLATFORM_INTERNAL_H */ diff --git a/core/shared/platform/baremetal/shared_platform.cmake b/core/shared/platform/baremetal/shared_platform.cmake new file mode 100644 index 00000000..a123d693 --- /dev/null +++ b/core/shared/platform/baremetal/shared_platform.cmake @@ -0,0 +1,12 @@ +set (PLATFORM_SHARED_DIR ${CMAKE_CURRENT_LIST_DIR}) + +add_definitions(-DBH_PLATFORM_BAREMETAL) + +include_directories(${PLATFORM_SHARED_DIR}) +include_directories(${PLATFORM_SHARED_DIR}/../include) + +file (GLOB_RECURSE source_all ${PLATFORM_SHARED_DIR}/*.c) +set (PLATFORM_SHARED_SOURCE ${source_all}) + +file (GLOB header ${PLATFORM_SHARED_DIR}/../include/baremetal/*.h) +LIST (APPEND RUNTIME_LIB_HEADER_LIST ${header})