Makefile STM32 (Aladinova lampa pro STM)

Ahoj chtěl by se zeptat zda někdo neví o aladinově lampě pro stmko? Klidně by mi šlo i o nějaký rozumný makefile, který by se dal obecně použít. Jeden makefile mám a už nějakou chvíli ho používám, ale má jeden nedostatek. Neumím v něm udělat to, aby generoval assembler a aby ukazoval zaplnění flešky/ramky jako to umí makefile pro avrko. Vypadá takto

# Makefile for building basic STM32 projects
#
# Michael Hope <michaelh@juju.net.nz>, 2010
#

# Using the CodeSourcery 2009q3 Lite ARM EABI tools
CROSS_COMPILE = arm-none-eabi-
CC = $(CROSS_COMPILE)gcc
OBJCOPY = $(CROSS_COMPILE)objcopy

# Name of the startup file.  'hd' for high density
STARTUP = startup_stm32f10x_md_vl.s
# Build for the Cortex-M3 with basic optimisations and debugging
CFLAGS = -mcpu=cortex-m3 -mthumb -O -g

# List of all binaries to build
all: main.bin

# Create a raw binary file from the ELF version
main.bin: main.elf
	$(OBJCOPY) -O binary $< $@

# Create the ELF version by mixing together the startup file,
# application, and linker file
main.elf: $(STARTUP) main.c \
	             system_stm32f10x.c \
	             komunikace_slave.c \
	             komunikace_master.c \
	             regulace.c \
	             rtc.c \
	             gpio_driver.c \
	             led_driver.c \
	             eeprom.c \
	             stm32f10x_flash.c \
	             stm32f10x_iwdg.c
	
	$(CC) -o $@ $(CFLAGS) -nostartfiles -Wl,-Tstm32_flash.ld $^

# Program the binary to the board using the builtin serial bootloader
program:
	stm32loader.py -p /dev/ttyUSB0 -ewv hello.bin

# Remove the temporary files
clean:
	rm -f *.o *.elf *.bin 

a našel jsem ho někde na internetu. Dík za jakoukoliv radu.

:arrow_right: administrator: přejmenováno z "STM32"

Nekam na zacatek dej

SIZE = $(CROSS_COMPILE)size

A blok main.bin: zkus upravit takhle

main.bin: main.elf
     $(OBJCOPY) -O binary $< $@ 
     $(SIZE) -B $<

Kdyby to neslo, tak zkus za $< dosadit nazev elf souboru

Ahoj, dík za radu…jsem zase kousek blíže :slight_smile:
Musel jsem to udělat takto:

main.bin: main.elf
	$(OBJCOPY) -O binary $< $@
	$(SIZE) -B main.elf

a pak se vypsalo toto:

arm-none-eabi-size -B main.elf
   text	   data	    bss	    dec	    hex	filename
  11952	   1172	    856	  13980	   369c	main.elf

No nic vic z toho uz nedostanes. Program size pro avr je jinej a ma vic voleb, ktere tady nejdou pouzit.
Velikost sekce text je velikost vysledneho bin souboru. Procenta zaplneni si musis spocitat podle velikosti pameti mcu.