| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- # Assume newlib gcc toolchain
- ARMCC=arm-none-eabi-gcc
- OBJCOPY=arm-none-eabi-objcopy
- CPPFLAGS=-DSTM32F205xx -DSTM32F2xx -DUSE_HAL_DRIVER -Wall -DS2S_USB_FS -DREV_2020
- CFLAGS=-mcpu=cortex-m3 -mthumb -mslow-flash-data \
- -std=gnu11 \
- -specs=nosys.specs \
- -Os -g \
- LDFLAGS= \
- "-Tsrc/firmware/link.ld" \
- INCLUDE = -Iinclude
- STM32CubeMX_INCUDE = \
- -ISTM32CubeMX/2020c/Inc \
- -ISTM32CubeMX/2020c/Middlewares/ST/STM32_USB_Host_Library/Class/MSC/Inc \
- -ISTM32CubeMX/2020c/Middlewares/ST/STM32_USB_Host_Library/Core/Inc \
- -ISTM32CubeMX/2020c/Drivers/CMSIS/Include \
- -ISTM32CubeMX/2020c/Drivers/CMSIS/Device/ST/STM32F2xx/Include \
- -ISTM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Inc \
- -ISTM32CubeMX/2020c/Middlewares/Third_Party/FatFs/src/ \
- -ISTM32CubeMX/2020c/Middlewares/Third_Party/FatFs/src/drivers \
- -ISTM32CubeMX/2020c/Middlewares/ST/STM32_USB_Device_Library/Core/Inc \
- -Isrc/firmware/usb_device \
- all: build/firmware.V6.2020.dfu
- build/2020c/stm32cubemx/dma.o: STM32CubeMX/2020c/Src/dma.c
- build/2020c/stm32cubemx/fsmc.o: STM32CubeMX/2020c/Src/fsmc.c
- build/2020c/stm32cubemx/gpio.o: STM32CubeMX/2020c/Src/gpio.c
- build/2020c/stm32cubemx/main.o: STM32CubeMX/2020c/Src/main.c
- build/2020c/stm32cubemx/sdio.o: STM32CubeMX/2020c/Src/sdio.c
- build/2020c/stm32cubemx/spi.o: STM32CubeMX/2020c/Src/spi.c
- build/2020c/stm32cubemx/stm32f2xx_hal_msp.o: STM32CubeMX/2020c/Src/stm32f2xx_hal_msp.c
- build/2020c/stm32cubemx/stm32f2xx_it.o: STM32CubeMX/2020c/Src/stm32f2xx_it.c
- build/2020c/stm32cubemx/tim.o: STM32CubeMX/2020c/Src/tim.c
- build/2020c/stm32cubemx/usart.o: STM32CubeMX/2020c/Src/usart.c
- build/2020c/stm32cubemx/usbd_conf.o: STM32CubeMX/2020c/Src/usbd_conf.c
- build/2020c/stm32cubemx/stm32f2xx_hal.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal.c
- build/2020c/stm32cubemx/stm32f2xx_hal_cortex.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_cortex.c
- build/2020c/stm32cubemx/stm32f2xx_hal_dma.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_dma.c
- build/2020c/stm32cubemx/stm32f2xx_hal_flash.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_flash.c
- build/2020c/stm32cubemx/stm32f2xx_hal_flash_ex.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_flash_ex.c
- build/2020c/stm32cubemx/stm32f2xx_hal_gpio.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_gpio.c
- build/2020c/stm32cubemx/stm32f2xx_hal_hcd.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_hcd.c
- build/2020c/stm32cubemx/stm32f2xx_hal_pcd.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_pcd.c
- build/2020c/stm32cubemx/stm32f2xx_hal_pcd_ex.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_pcd_ex.c
- build/2020c/stm32cubemx/stm32f2xx_hal_rcc.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_rcc.c
- build/2020c/stm32cubemx/stm32f2xx_hal_sd.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_sd.c
- build/2020c/stm32cubemx/stm32f2xx_hal_spi.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_spi.c
- build/2020c/stm32cubemx/stm32f2xx_hal_sram.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_sram.c
- build/2020c/stm32cubemx/stm32f2xx_hal_tim.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_tim.c
- build/2020c/stm32cubemx/stm32f2xx_hal_tim_ex.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_tim_ex.c
- build/2020c/stm32cubemx/stm32f2xx_hal_uart.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_hal_uart.c
- build/2020c/stm32cubemx/stm32f2xx_ll_fsmc.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_ll_fsmc.c
- build/2020c/stm32cubemx/stm32f2xx_ll_sdmmc.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_ll_sdmmc.c
- build/2020c/stm32cubemx/stm32f2xx_ll_usb.o: STM32CubeMX/2020c/Drivers/STM32F2xx_HAL_Driver/Src/stm32f2xx_ll_usb.c
- build/2020c/stm32cubemx/usbd_core.o: STM32CubeMX/2020c/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c
- build/2020c/stm32cubemx/usbd_ctlreq.o: STM32CubeMX/2020c/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c
- build/2020c/stm32cubemx/usbd_ioreq.o: STM32CubeMX/2020c/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c
- build/2020c/stm32cubemx/system_stm32f2xx.o: STM32CubeMX/2020c/Drivers/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c
- build/2020c/stm32cubemx/startup_stm32f205xx.o: STM32CubeMX/2020c/Drivers/CMSIS/Device/ST/STM32F2xx/Source/Templates/gcc/startup_stm32f205xx.s
- STM32OBJS = \
- build/2020c/stm32cubemx/dma.o \
- build/2020c/stm32cubemx/fsmc.o \
- build/2020c/stm32cubemx/gpio.o \
- build/2020c/stm32cubemx/main.o \
- build/2020c/stm32cubemx/sdio.o \
- build/2020c/stm32cubemx/spi.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_msp.o \
- build/2020c/stm32cubemx/stm32f2xx_it.o \
- build/2020c/stm32cubemx/tim.o \
- build/2020c/stm32cubemx/usart.o \
- build/2020c/stm32cubemx/usbd_conf.o \
- build/2020c/stm32cubemx/stm32f2xx_hal.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_cortex.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_dma.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_flash.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_flash_ex.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_gpio.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_hcd.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_pcd.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_pcd_ex.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_rcc.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_sd.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_spi.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_sram.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_tim.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_tim_ex.o \
- build/2020c/stm32cubemx/stm32f2xx_hal_uart.o \
- build/2020c/stm32cubemx/stm32f2xx_ll_fsmc.o \
- build/2020c/stm32cubemx/stm32f2xx_ll_sdmmc.o \
- build/2020c/stm32cubemx/stm32f2xx_ll_usb.o \
- build/2020c/stm32cubemx/usbd_core.o \
- build/2020c/stm32cubemx/usbd_ctlreq.o \
- build/2020c/stm32cubemx/usbd_ioreq.o \
- build/2020c/stm32cubemx/system_stm32f2xx.o \
- build/2020c/stm32cubemx/startup_stm32f205xx.o \
- # Modified versin from stm32cubemx for a composite class with both
- # mass-storage and HID interfaces
- USBCOMPOSITE_SRC= \
- src/firmware/usb_device/usb_device.c \
- src/firmware/usb_device/usbd_composite.c \
- src/firmware/usb_device/usbd_desc.c \
- src/firmware/usb_device/usbd_hid.c \
- src/firmware/usb_device/usbd_msc_bot.c \
- src/firmware/usb_device/usbd_msc.c \
- src/firmware/usb_device/usbd_msc_data.c \
- src/firmware/usb_device/usbd_msc_scsi.c \
- src/firmware/usb_device/usbd_msc_storage_sd.c \
- SRC = \
- src/firmware/bootloader.c \
- src/firmware/bsp.c \
- src/firmware/cdrom.c \
- src/firmware/config.c \
- src/firmware/disk.c \
- src/firmware/diagnostic.c \
- src/firmware/fpga.c \
- src/firmware/geometry.c \
- src/firmware/hidpacket.c \
- src/firmware/hwversion.c \
- src/firmware/inquiry.c \
- src/firmware/led.c \
- src/firmware/main.c \
- src/firmware/mo.c \
- src/firmware/mode.c \
- src/firmware/scsiPhy.c \
- src/firmware/scsi.c \
- src/firmware/sd.c \
- src/firmware/spinlock.c \
- src/firmware/tape.c \
- src/firmware/time.c \
- src/firmware/vendor.c \
- src/firmware/bsp_driver_sd.c \
- ${USBCOMPOSITE_SRC}
- build/2020c/firmware.elf: $(SRC) rtl/fpga_bitmap.2020.o $(STM32OBJS)
- $(ARMCC) $(CPPFLAGS) $(CFLAGS) -o $@ $(STM32CubeMX_INCUDE) $(INCLUDE) $^ $(LDFLAGS)
- @EBSS=`arm-none-eabi-nm build/2020c/firmware.elf | grep _ebss | cut -f1 "-d "`; \
- echo HEAPSIZE = $$((0x2001C000 - 0x$${EBSS})) bytes
- @echo STACKSIZE = 16384 bytes
- build/2020c/firmware.bin: build/2020c/firmware.elf
- $(OBJCOPY) -O binary $< $@
- # Example to hard-code config within firmware
- #sudo arm-none-eabi-objcopy --update-section .fixed_config=config.dat firmware.elf -O binary firmware.bin
- build/2020c/stm32cubemx/%.o:
- mkdir -p build/2020c/stm32cubemx
- $(ARMCC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(STM32CubeMX_INCUDE) $(INCLUDE) $^
- build/2020c/stm32cubemx/stm32f2xx_it.o:
- mkdir -p build/2020c/stm32cubemx
- $(ARMCC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(STM32CubeMX_INCUDE) $(INCLUDE) $^
- $(OBJCOPY) -N EXTI4_IRQHandler $@
- build/2020c/stm32cubemx/system_stm32f2xx.o:
- mkdir -p build/2020c/stm32cubemx
- $(ARMCC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(STM32CubeMX_INCUDE) $(INCLUDE) $^
- $(OBJCOPY) --redefine-sym SystemInit=OrigSystemInit $@
- build/2020c/scsiPhy.s: src/firmware/scsiPhy.c
- $(ARMCC) $(CPPFLAGS) $(CFLAGS) -S -o $@ $(STM32CubeMX_INCUDE) $(INCLUDE) $^
- build/firmware.V6.2020.dfu: build/2020c/firmware.bin
- python tools/dfu-convert.py -b 0x08000000:$< $@
- clean:
- rm -f build/firmware.V6.2020.dfu
- rm -rf build/2020c/
- program:
- dfu-util --download build/firmware.V6.2020.dfu --alt 0
|