|
| 1 | +# :set noet |
| 2 | +PROJ_NAME = comma |
| 3 | + |
| 4 | +CFLAGS = -O2 -Wall -std=gnu11 -DPEDAL |
| 5 | +CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m3 |
| 6 | +CFLAGS += -msoft-float -DSTM32F2 -DSTM32F205xx |
| 7 | +CFLAGS += -I ../inc -I ../ -I ../../ -nostdlib |
| 8 | +CFLAGS += -T../stm32_flash.ld |
| 9 | + |
| 10 | +STARTUP_FILE = startup_stm32f205xx |
| 11 | + |
| 12 | +CC = arm-none-eabi-gcc |
| 13 | +OBJCOPY = arm-none-eabi-objcopy |
| 14 | +OBJDUMP = arm-none-eabi-objdump |
| 15 | +DFU_UTIL = "dfu-util" |
| 16 | + |
| 17 | +# pedal only uses the debug cert |
| 18 | +CERT = ../../certs/debug |
| 19 | +CFLAGS += "-DALLOW_DEBUG" |
| 20 | + |
| 21 | +canflash: obj/$(PROJ_NAME).bin |
| 22 | + ../../tests/pedal/enter_canloader.py $< |
| 23 | + |
| 24 | +usbflash: obj/$(PROJ_NAME).bin |
| 25 | + ../../tests/pedal/enter_canloader.py; sleep 0.5 |
| 26 | + PYTHONPATH=../../ python -c "from python import Panda; p = [x for x in [Panda(x) for x in Panda.list()] if x.bootstub]; assert(len(p)==1); p[0].flash('obj/$(PROJ_NAME).bin', reconnect=False)" |
| 27 | + |
| 28 | +recover: obj/bootstub.bin obj/$(PROJ_NAME).bin |
| 29 | + ../../tests/pedal/enter_canloader.py --recover; sleep 0.5 |
| 30 | + $(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08004000 -D obj/$(PROJ_NAME).bin |
| 31 | + $(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08000000:leave -D obj/bootstub.bin |
| 32 | + |
| 33 | +obj/main.o: main.c ../*.h |
| 34 | + mkdir -p obj |
| 35 | + $(CC) $(CFLAGS) -o $@ -c $< |
| 36 | + |
| 37 | +obj/bootstub.o: ../bootstub.c ../*.h |
| 38 | + mkdir -p obj |
| 39 | + $(CC) $(CFLAGS) -o $@ -c $< |
| 40 | + |
| 41 | +obj/$(STARTUP_FILE).o: ../$(STARTUP_FILE).s |
| 42 | + $(CC) $(CFLAGS) -o $@ -c $< |
| 43 | + |
| 44 | +obj/%.o: ../../crypto/%.c |
| 45 | + $(CC) $(CFLAGS) -o $@ -c $< |
| 46 | + |
| 47 | +obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.o |
| 48 | + # hack |
| 49 | + $(CC) -Wl,--section-start,.isr_vector=0x8004000 $(CFLAGS) -o obj/$(PROJ_NAME).elf $^ |
| 50 | + $(OBJCOPY) -v -O binary obj/$(PROJ_NAME).elf obj/code.bin |
| 51 | + SETLEN=1 ../../crypto/sign.py obj/code.bin $@ $(CERT) |
| 52 | + |
| 53 | +obj/bootstub.bin: obj/$(STARTUP_FILE).o obj/bootstub.o obj/sha.o obj/rsa.o |
| 54 | + $(CC) $(CFLAGS) -o obj/bootstub.$(PROJ_NAME).elf $^ |
| 55 | + $(OBJCOPY) -v -O binary obj/bootstub.$(PROJ_NAME).elf $@ |
| 56 | + |
| 57 | +clean: |
| 58 | + rm -f obj/* |
| 59 | + |
0 commit comments