Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


CubeMX, OpenStm32 project with main.cpp with statically allocated objects results in linker error for _sbrk etc.

I’m using CubeMX to generate an OpenStm32 project and then convert the project to C++ with a main.cpp file. All works well until I add a statically-allocated object in the scope of a function i.e., something like this:

void main() {

static MyClass myObj();

}

This results in linker errors (can’t find sbrk and a bunch of other functions). The solution is to add a g++ compiler option of
-fno-threadsafe-statics

This is added in eclipse by going to project properties, tree C/C++ Build / Settings, Tool Settings tab, tree MCU G++ Compiler / Miscellaneous, and in field Other Flags, add -fno-threadsafe-statics.

Why -fno-threadsafe-statics works:
A static allocation in file scope is not an issue but a static allocation in function scope will result in calls to __cxa_guard_acquire and __cxa_guard_release. This gcc.godbolt.org exampleQuestion shows side-by-side C++ & assembly with calls to the ‘guard’ calls. ThisQuestion suggests using -fno-threadsafe-statics. ThisQuestion describes why these guards might be needed. And this example using -fno-threadsafe-staticsQuestion shows how the ‘guard’ calls are elliminated (works in OpenStm32 too).

 

Newest Forum Posts

  1. reservation car service Seattle by Jamesprede, 2025-05-01 10:06
  2. Last day: drone bonus by Danielrug, 2025-04-19 16:55
  3. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-25 07:37
  4. SPI on Nucleo_STMH533RE by royjamil, 2025-03-23 11:31
  5. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-23 09:33
  6. Configuring DMA for ADC in SW? by sam.hodgson, 2025-03-04 12:58
  7. Insightful Perspectives on This Subject by davidsycle, 2025-03-04 05:45
  8. Build a project in "release" mode by info@creosrl.it, 2025-02-20 18:12
  9. Build a project in "release" mode by info@creosrl.it, 2025-02-20 17:05
  10. Build a project in "release" mode by tang, 2025-02-20 10:36

Last-Modified Blogs