STM32-CAN library - error: core_debug.h: No such file or directory

using IDE 2.3.5 tested STM32_CAN library using STM32F103 bluepill and STM32F746ZG nucleo board OK

the Arduino GIGA R1 WiFi Tech specs references the STM32H747XI datasheet which lists under peripherals
2× CAN controllers: 2 with CAN FD, 1 with
time-triggered CAN (TT-CAN)

board selected Tools>Board is Arduino Giga R1
error when compiling example code File>Examples>STM32_CAN/Read-Write_with_filters

FQBN: arduino:mbed_giga:giga
Using board 'giga' from platform in folder: C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1
Using core 'arduino' from platform in folder: C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1

Detecting libraries used...
C:\Users\bb\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/defines.txt @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/cxxflags.txt -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_GIGA -DARDUINO_ARCH_MBED_GIGA -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA -DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000 -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino/api/deprecated -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/../GIGA/includes.txt C:\Users\bb\AppData\Local\arduino\sketches\FB7677EE3236A5680974D8F6FBDE5680\sketch\Read-Write_with_filters.ino.cpp -o nul
Alternatives for STM32_CAN.h: [STM32_CAN@1.2.2]
ResolveLibrary(STM32_CAN.h)
  -> candidates: [STM32_CAN@1.2.2]
C:\Users\bb\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/defines.txt @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/cxxflags.txt -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_GIGA -DARDUINO_ARCH_MBED_GIGA -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA -Ic:\Users\bb\Documents\Arduino\libraries\STM32_CAN\src -DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000 -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino/api/deprecated -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/../GIGA/includes.txt C:\Users\bb\AppData\Local\arduino\sketches\FB7677EE3236A5680974D8F6FBDE5680\sketch\Read-Write_with_filters.ino.cpp -o nul
C:\Users\bb\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++ -c -w -g3 -nostdlib @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/defines.txt @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/cxxflags.txt -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_GIGA -DARDUINO_ARCH_MBED_GIGA -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA -Ic:\Users\bb\Documents\Arduino\libraries\STM32_CAN\src -DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000 -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino/api/deprecated -IC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\cores\arduino @C:\Users\bb\AppData\Local\Arduino15\packages\arduino\hardware\mbed_giga\4.3.1\variants\GIGA/../GIGA/includes.txt c:\Users\bb\Documents\Arduino\libraries\STM32_CAN\src\STM32_CAN.cpp -o nul
Alternatives for core_debug.h: []
ResolveLibrary(core_debug.h)
  -> candidates: []
c:\Users\bb\Documents\Arduino\libraries\STM32_CAN\src\STM32_CAN.cpp:3:10: fatal error: core_debug.h: No such file or directory
 #include "core_debug.h"
          ^~~~~~~~~~~~~~
compilation terminated.
exit status 1

Compilation error: exit status 1

looks as though some STM32 header files are missing from the Giga support

What version do you have of board ???

board selected Tools>Board is Arduino Giga R1

error when compiling the example code File>Examples>STM32_CAN/Read-Write_with_filters

Hi @horace. The core_debug.h file is specific to the core of the 3rd party "STM32 MCU based boards" platform (AKA "STM32duino"):

https://github.com/stm32duino/Arduino_Core_STM32/blob/2.10.1/cores/arduino/core_debug.h

The "STM32_CAN" library is specifically written for use with that platform, and can not be used with the "Arduino Mbed OS Giga Boards" platform:

https://github.com/pazi88/STM32_CAN#can-bus-library-for-arduino-stm32

This library should support all STM32 MCUs that are also supported in stm32duino Arduino_Core_STM32

"STM32 header files" implies a header file from a universal STM32 toolchain component. That is not the case here. This is an arbitrary non-standard file present in a 3rd party Arduino core. There is no reason to expect it to be present in the core of other platforms.

1 Like

thanks for the information!

looks as though there is no support for using the STM32 onboard CAN interface
although the Arduino GIGA R1 WiFi web page states

There are different levels of "support" for a capability. For example:

  • The Arduino company provides an official actively maintained library with comprehensive documentation, making it easy to use the capability in Arduino sketches.
  • There is a 3rd party Arduino library that facilitates the use of the capability in Arduino sketches.
  • The hardware has the capability, but there isn't an Arduino library to facilitate its use, meaning you must use lower level code.
  • The hardware does not have the capability.

When you see a capability listed in the specs of a hardware product, it should generally only be taken as a claim that the hardware has that capability, without implying any specific level of support by the libraries and documentation.