2019-02-06 12:45:11 -07:00
|
|
|
CFLAGS += -I inc -I ../ -nostdlib -fno-builtin -std=gnu11 -Os
|
2018-04-11 17:15:32 -06:00
|
|
|
|
2017-04-06 19:11:36 -06:00
|
|
|
CFLAGS += -Tstm32_flash.ld
|
|
|
|
|
2019-03-12 00:41:40 -06:00
|
|
|
# Compile fast charge (DCP) only not on EON
|
|
|
|
ifeq (,$(wildcard /EON))
|
|
|
|
BUILDER = DEV
|
|
|
|
else
|
|
|
|
CFLAGS += "-DEON"
|
|
|
|
BUILDER = EON
|
|
|
|
endif
|
|
|
|
|
2017-04-06 19:11:36 -06:00
|
|
|
CC = arm-none-eabi-gcc
|
|
|
|
OBJCOPY = arm-none-eabi-objcopy
|
|
|
|
OBJDUMP = arm-none-eabi-objdump
|
|
|
|
|
2017-04-28 21:13:00 -06:00
|
|
|
ifeq ($(RELEASE),1)
|
|
|
|
CERT = ../../pandaextra/certs/release
|
|
|
|
else
|
2017-07-17 16:29:31 -06:00
|
|
|
# enable the debug cert
|
2017-04-28 21:13:00 -06:00
|
|
|
CERT = ../certs/debug
|
|
|
|
CFLAGS += "-DALLOW_DEBUG"
|
|
|
|
endif
|
2017-04-25 19:03:58 -06:00
|
|
|
|
2017-07-27 15:29:07 -06:00
|
|
|
DFU_UTIL = "dfu-util"
|
2017-06-12 01:53:18 -06:00
|
|
|
|
2017-07-17 16:29:31 -06:00
|
|
|
# this no longer pushes the bootstub
|
2017-07-29 18:21:22 -06:00
|
|
|
flash: obj/$(PROJ_NAME).bin
|
2018-01-18 22:31:30 -07:00
|
|
|
PYTHONPATH=../ python -c "from python import Panda; Panda().flash('obj/$(PROJ_NAME).bin')"
|
2017-07-29 18:21:22 -06:00
|
|
|
|
|
|
|
ota: obj/$(PROJ_NAME).bin
|
|
|
|
curl http://192.168.0.10/stupdate --upload-file $<
|
|
|
|
|
|
|
|
bin: obj/$(PROJ_NAME).bin
|
2017-05-02 11:07:27 -06:00
|
|
|
|
2017-07-27 15:29:07 -06:00
|
|
|
# this flashes everything
|
2017-07-18 11:19:42 -06:00
|
|
|
recover: obj/bootstub.$(PROJ_NAME).bin obj/$(PROJ_NAME).bin
|
2018-01-18 22:31:30 -07:00
|
|
|
-PYTHONPATH=../ python -c "from python import Panda; Panda().reset(enter_bootloader=True)"
|
2017-08-28 11:42:23 -06:00
|
|
|
sleep 1.0
|
2017-08-23 19:38:17 -06:00
|
|
|
$(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08004000 -D obj/$(PROJ_NAME).bin
|
|
|
|
$(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08000000:leave -D obj/bootstub.$(PROJ_NAME).bin
|
2017-07-27 15:29:07 -06:00
|
|
|
|
2017-08-22 10:08:24 -06:00
|
|
|
include ../common/version.mk
|
2017-04-06 19:11:36 -06:00
|
|
|
|
2017-04-27 23:06:31 -06:00
|
|
|
obj/cert.h: ../crypto/getcertheader.py
|
2017-04-28 16:06:01 -06:00
|
|
|
../crypto/getcertheader.py ../certs/debug.pub ../certs/release.pub > $@
|
2017-04-25 19:03:58 -06:00
|
|
|
|
2017-09-25 20:21:00 -06:00
|
|
|
obj/%.$(PROJ_NAME).o: %.c obj/cert.h obj/gitversion.h config.h drivers/*.h gpio.h libc.h provision.h safety.h safety/*.h spi_flasher.h
|
2017-07-12 12:25:10 -06:00
|
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
2017-04-17 14:57:34 -06:00
|
|
|
|
2017-06-12 01:53:18 -06:00
|
|
|
obj/%.$(PROJ_NAME).o: ../crypto/%.c
|
2017-07-12 12:25:10 -06:00
|
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
2017-04-17 14:57:34 -06:00
|
|
|
|
2017-04-06 19:11:36 -06:00
|
|
|
obj/$(STARTUP_FILE).o: $(STARTUP_FILE).s
|
2017-07-12 12:25:10 -06:00
|
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
2017-04-06 19:11:36 -06:00
|
|
|
|
2017-07-29 18:53:39 -06:00
|
|
|
obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.$(PROJ_NAME).o
|
2017-04-06 19:11:36 -06:00
|
|
|
# hack
|
2017-07-12 12:25:10 -06:00
|
|
|
$(CC) -Wl,--section-start,.isr_vector=0x8004000 $(CFLAGS) -o obj/$(PROJ_NAME).elf $^
|
2017-04-17 14:57:34 -06:00
|
|
|
$(OBJCOPY) -v -O binary obj/$(PROJ_NAME).elf obj/code.bin
|
2017-04-27 23:11:54 -06:00
|
|
|
SETLEN=1 ../crypto/sign.py obj/code.bin $@ $(CERT)
|
2019-01-23 14:24:29 -07:00
|
|
|
@BINSIZE=$$(du -b "obj/$(PROJ_NAME).bin" | cut -f 1) ; if [ $$BINSIZE -ge 32768 ]; then echo "ERROR obj/$(PROJ_NAME).bin is too big!"; exit 1; fi;
|
|
|
|
|
2017-04-06 19:11:36 -06:00
|
|
|
|
2017-07-29 18:53:39 -06:00
|
|
|
obj/bootstub.$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/bootstub.$(PROJ_NAME).o obj/sha.$(PROJ_NAME).o obj/rsa.$(PROJ_NAME).o
|
2019-02-08 13:15:46 -07:00
|
|
|
$(CC) $(CFLAGS) -o obj/bootstub.$(PROJ_NAME).elf $^
|
2017-04-06 19:11:36 -06:00
|
|
|
$(OBJCOPY) -v -O binary obj/bootstub.$(PROJ_NAME).elf $@
|
2017-06-12 01:53:18 -06:00
|
|
|
|
2017-04-06 19:11:36 -06:00
|
|
|
clean:
|
2017-07-31 19:00:53 -06:00
|
|
|
@rm -f obj/*
|