mohan-bee/mini-mp3-player
Portable, battery-powered MP3 player hardware with USB charging, microSD storage, an MCU, VS10xx audio decoder, headphone output, status controls, and regulated power rails.
- Version
- 1.2.0
- License
- unset
- Stars
- 0
firmware/Makefile
PREFIX ?= riscv-none-elf-
CC = $(PREFIX)gcc
OBJCOPY = $(PREFIX)objcopy
SIZE = $(PREFIX)size
ARCH = -march=rv32imac_zicsr -mabi=ilp32
INCLUDES = -Iinclude -Ivendor/wch/Peripheral/inc -Ivendor/wch/Core -Ivendor/fatfs
CFLAGS = $(ARCH) -Os -g3 -ffunction-sections -fdata-sections -fno-common -Wall -Wextra $(INCLUDES) -DCH32V20x_D6
WCH = vendor/wch/Peripheral/src
SOURCES = src/board.c src/buttons.c src/decoder.c src/diskio.c src/main.c vendor/fatfs/ff.c vendor/wch/system_ch32v20x.c $(WCH)/ch32v20x_rcc.c $(WCH)/ch32v20x_gpio.c $(WCH)/ch32v20x_spi.c $(WCH)/ch32v20x_usart.c $(WCH)/ch32v20x_adc.c
OBJECTS = $(addprefix build/,$(SOURCES:.c=.o)) build/vendor/wch/startup.o
all: build/mini-mp3.bin build/mini-mp3.hex
build/%.o: %.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
build/%.o: %.S
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
build/mini-mp3.elf: $(OBJECTS) link.ld
$(CC) $(ARCH) -nostartfiles --specs=nano.specs --specs=nosys.specs -Tlink.ld -Wl,--gc-sections,-Map=build/mini-mp3.map $(OBJECTS) -o $@
$(SIZE) $@
build/mini-mp3.bin: build/mini-mp3.elf
$(OBJCOPY) -O binary $< $@
build/mini-mp3.hex: build/mini-mp3.elf
$(OBJCOPY) -O ihex $< $@
clean:
rm -rf build
-include $(OBJECTS:.o=.d)
.PHONY: all clean