Bonjour.
La vitesse de compilation de l'arduino IDE étant insupportable.
J'aimerai bien essayer de compiler à partir d'un makefile.
J'ai beaucoup de problème de dépendance et de header manquant.
Ca commence avec PinNamesTypes.h
qui est appelé par /variants/GIGA/pinmode_arduino.h et qui n'est pas dans la liste des includes.
A chaque nouvelle résolution de problème un autre survient.
J'ai fini par inclure les dossiers
/cores/arduino/mbed/targets/TARGET_STM
/cores/arduino/mbed/targets/TARGET_STM/TARGET_STM32H7
/cores/arduino/mbed/targets/TARGET_STM/TARGET_STM32H7/STM32Cube_FW\CMSIS
/cores/arduino/mbed/targets/TARGET_STM\TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM7
Mais j'ai l'impression de c'est sans fin et surtout pas la bonne méthode.
Je ne sais pas si c'est utile, mais voici mon makefile
TARGET = main
# Microcontrôleur et architecture
MCU = cortex-m7
F_CPU = 480000000UL
CHIP = STM32H747XIH6
# Chemin vers les fichiers STM32 et Arduino Cores
STM32_DIR = "D:/ArduinoCore-mbed-main"
TOOLCHAIN = "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10"
# Fichiers sources
SRC = $(TARGET).cpp
# Outils ARM GCC
CC = $(TOOLCHAIN)/bin/arm-none-eabi-gcc
CXX = $(TOOLCHAIN)/bin/arm-none-eabi-g++
OBJCOPY = $(TOOLCHAIN)/bin/arm-none-eabi-objcopy
SIZE = $(TOOLCHAIN)/bin/arm-none-eabi-size
# Chemins include
INCLUDE = -I$(STM32_DIR)/cores/arduino \
-I$(STM32_DIR)/variants/GIGA \
-I$(STM32_DIR)/cores/arduino/mbed/targets/TARGET_STM \
-I$(STM32_DIR)/cores/arduino/mbed/targets/TARGET_STM/TARGET_STM32H7 \
-I$(STM32_DIR)/cores/arduino/mbed/targets/TARGET_STM/TARGET_STM32H7/STM32Cube_FW\CMSIS \
-I$(STM32_DIR)/cores/arduino/mbed/targets/TARGET_STM\TARGET_STM32H7/TARGET_STM32H747xI/TARGET_STM32H747xI_CM7
# Chemin vers le script linker
LINKER_SCRIPT = $(STM32_DIR)/variants/GIGA/linker_scripts/STM32H747.ld
# Options de compilation
CFLAGS = -mcpu=$(MCU) -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard \
-DF_CPU=$(F_CPU) -DARDUINO_GIGA_R1 -DSTM32H747 -DARDUINO=10600 \
-Wall -Wextra -Os -ffunction-sections -fdata-sections -g $(INCLUDE)
CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions
LDFLAGS = -mcpu=$(MCU) -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard \
-Wl,--gc-sections -T$(LINKER_SCRIPT)
# Règles de compilation
all: $(TARGET).hex
$(TARGET).elf: $(SRC)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^
@echo "Compiled $(TARGET).elf"
$(TARGET).hex: $(TARGET).elf
$(OBJCOPY) -O ihex $< $@
@echo "Converted $(TARGET).elf to $(TARGET).hex"
upload: $(TARGET).hex
# Ajoutez ici la commande de téléversement spécifique
size: $(TARGET).elf
$(SIZE) $<
@echo "Program size calculated."
clean:
del /q $(TARGET).elf $(TARGET).hex
@echo "Cleaned build files."
Si quelqu'un a déjà fait ça.
Je suis preneur...
Merci.
Etienne.