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 <hebad@vestas.com>
This commit is contained in:
Henrik Brix Andersen 2023-11-14 12:00:43 +01:00 committed by Carles Cufí
commit c9da68290a

View file

@ -22,6 +22,7 @@ extern "C" {
#include <zephyr/types.h> #include <zephyr/types.h>
#include <zephyr/device.h> #include <zephyr/device.h>
#include <zephyr/toolchain.h> #include <zephyr/toolchain.h>
#include <zephyr/dsp/types.h> /* float32_t, float64_t */
/* Use static variables instead of calloc() */ /* Use static variables instead of calloc() */
#define CO_USE_GLOBALS #define CO_USE_GLOBALS
@ -46,12 +47,13 @@ extern "C" {
#endif #endif
typedef bool bool_t; typedef bool bool_t;
typedef float float32_t;
typedef long double float64_t;
typedef char char_t; typedef char char_t;
typedef unsigned char oChar_t; typedef unsigned char oChar_t;
typedef unsigned char domain_t; typedef unsigned char domain_t;
BUILD_ASSERT(sizeof(float32_t) >= 4);
BUILD_ASSERT(sizeof(float64_t) >= 8);
typedef struct canopen_rx_msg { typedef struct canopen_rx_msg {
uint8_t data[8]; uint8_t data[8];
uint16_t ident; uint16_t ident;