I’m new on this forum and in Visual Studio Code - PlatformIO.
I’m trying to build a project for my Nucleo devices (F446RE, F767ZI) and using MBED framework. But the this framework have additional libs which are found here:
One example of this libs is mbed-trace and mbed-client-cli.
First test I’ve tried the mbed-trace, but it was impossible to make it compile. After few hours of troubleshooting I’ve success to make PlatformIO to include the directory and try to compile it, but it fails.
This is my platformio.ini file:
[env] framework = mbed build_flags = lib_deps = extra_scripts = lib_extra_dirs = $PROJECT_CORE_DIR/packages/framework-mbed/features/frameworks build_type = debug lib_ldf_mode = deep+ lib_compat_mode = soft [env:nucleo_f767zi] platform = ststm32 board = nucleo_f767zi upload_port = /dev/serial/by-id/usb-STMicroelectronics_STM32_STLink_066EFF485151717867222456-if02 upload_protocol = stlink [env:nucleo_f446re] platform = ststm32 board = nucleo_f446re upload_protocol = stlink upload_port = COM3
#include "mbed.h" #define TRACE_GROUP "main" #include "mbed-trace/mbed_trace.h" #define MBED_TRACE_MAX_LEVEL TRACE_LEVEL_INFO
The error of the compilation is:
Compiling .pio\build\nucleo_f446re\lib0ed\mbed-trace\mbed_trace.o C:\Users\Adrian\.platformio\packages\framework-mbed\features\frameworks\mbed-trace\source\mbed_trace.c:19:9: note: #pragma message: MBED_TRACE_MAX_LEVEL is defined as #pragma message "MBED_TRACE_MAX_LEVEL is defined as " XSTR(MBED_TRACE_MAX_LEVEL) ^~~~~~~ In file included from C:\Users\Adrian\.platformio\packages\framework-mbed\features\frameworks\mbed-trace\source\mbed_trace.c:37:0: C:\Users\Adrian\.platformio\packages\framework-mbed\features\frameworks\mbed-trace/mbed-trace/mbed_trace.h:122:26: error: operator '>=' has no left operand #if MBED_TRACE_MAX_LEVEL >= TRACE_LEVEL_DEBUG
But when PlatformIO is starting to compile is creating a directory under the project named .pio\build\nucleo_f446re where I found this file: mbed_config.h . In this file I’ve found this:
// PlatformIO Library Dependency Finder (LDF) #define MBED_CONF_MBED_TRACE_ENABLE #define MBED_TRACE_MAX_LEVEL #define MBED_CONF_MBED_TRACE_FEA_IPV6 #define MEM_ALLOC malloc #define MEM_FREE free
Which is breaking the compilation. I’ve tried with lib_ldf_mode = off, lib_ldf_mode = chain+, lib_compat_mode = off. Nothing.
Could you please advice me how can I use those libs under MBED without installing them from repositories? Because those from repositories most of the time are not updated, from what I’ve noticed.