From 9242edc16bf985daabf70ab3dc23bb6933b8085a Mon Sep 17 00:00:00 2001 From: Henrik Brix Andersen Date: Tue, 14 Nov 2023 12:00:43 +0100 Subject: [PATCH] modules: canopennode: use zephyr/dsp/types.h for float32_t/float64_t Include the zephyr/dsp/types.h header for float32_t/float64_t type definitions to avoid conflicts with other subsystems including this header. Add compile-time asserts to ensure the typedefs meet the requirements of the CANopenNode module. Fixes: #63896 Signed-off-by: Henrik Brix Andersen (cherry picked from commit c9da68290aecee508bd0c5b5f07e99d8ba9bbe79) --- modules/canopennode/CO_driver_target.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/canopennode/CO_driver_target.h b/modules/canopennode/CO_driver_target.h index 3e76b5290b02c7..27b1f1caa9d6a9 100644 --- a/modules/canopennode/CO_driver_target.h +++ b/modules/canopennode/CO_driver_target.h @@ -22,6 +22,7 @@ extern "C" { #include #include #include +#include /* float32_t, float64_t */ /* Use static variables instead of calloc() */ #define CO_USE_GLOBALS @@ -46,12 +47,13 @@ extern "C" { #endif typedef bool bool_t; -typedef float float32_t; -typedef long double float64_t; typedef char char_t; typedef unsigned char oChar_t; typedef unsigned char domain_t; +BUILD_ASSERT(sizeof(float32_t) >= 4); +BUILD_ASSERT(sizeof(float64_t) >= 8); + typedef struct canopen_rx_msg { uint8_t data[8]; uint16_t ident;