Compiler pour la giga R1 depuis 1 Makefile

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.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.