You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					68 lines
				
				2.1 KiB
			
		
		
			
		
	
	
					68 lines
				
				2.1 KiB
			| 
								 
											6 years ago
										 
									 | 
							
								# :set noet
							 | 
						||
| 
								 | 
							
								PROJ_NAME = comma
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								CFLAGS  = -O2 -Wall -Wextra -Wstrict-prototypes -Werror -std=gnu11 -DPEDAL
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m3
							 | 
						||
| 
								 | 
							
								CFLAGS += -msoft-float -DSTM32F2 -DSTM32F205xx
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								CFLAGS += -I ../inc -I ../ -I ../../ -nostdlib -fno-builtin
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								CFLAGS += -T../stm32_flash.ld
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								STARTUP_FILE = startup_stm32f205xx
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CC = arm-none-eabi-gcc
							 | 
						||
| 
								 | 
							
								OBJCOPY = arm-none-eabi-objcopy
							 | 
						||
| 
								 | 
							
								OBJDUMP = arm-none-eabi-objdump
							 | 
						||
| 
								 | 
							
								DFU_UTIL = "dfu-util"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# pedal only uses the debug cert
							 | 
						||
| 
								 | 
							
								CERT = ../../certs/debug
							 | 
						||
| 
								 | 
							
								CFLAGS += "-DALLOW_DEBUG"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								canflash: obj/$(PROJ_NAME).bin
							 | 
						||
| 
								 | 
							
									../../tests/pedal/enter_canloader.py $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								usbflash: obj/$(PROJ_NAME).bin
							 | 
						||
| 
								 | 
							
									../../tests/pedal/enter_canloader.py; sleep 0.5
							 | 
						||
| 
								 | 
							
									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)"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								recover: obj/bootstub.bin obj/$(PROJ_NAME).bin
							 | 
						||
| 
								 | 
							
									../../tests/pedal/enter_canloader.py --recover; sleep 0.5
							 | 
						||
| 
								 | 
							
									$(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.bin
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								include ../../common/version.mk
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/cert.h: ../../crypto/getcertheader.py
							 | 
						||
| 
								 | 
							
									../../crypto/getcertheader.py ../../certs/debug.pub ../../certs/release.pub > $@
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/main.o: main.c ../*.h
							 | 
						||
| 
								 | 
							
									mkdir -p obj
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) -o $@ -c $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/bootstub.o: ../bootstub.c ../*.h obj/gitversion.h obj/cert.h
							 | 
						||
| 
								 | 
							
									mkdir -p obj
							 | 
						||
| 
								 | 
							
									mkdir -p ../obj
							 | 
						||
| 
								 | 
							
									cp obj/gitversion.h ../obj/gitversion.h
							 | 
						||
| 
								 | 
							
									cp obj/cert.h  ../obj/cert.h
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) -o $@ -c $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/$(STARTUP_FILE).o: ../$(STARTUP_FILE).s
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) -o $@ -c $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/%.o: ../../crypto/%.c
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) -o $@ -c $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.o
							 | 
						||
| 
								 | 
							
								  # hack
							 | 
						||
| 
								 | 
							
									$(CC) -Wl,--section-start,.isr_vector=0x8004000 $(CFLAGS) -o obj/$(PROJ_NAME).elf $^
							 | 
						||
| 
								 | 
							
									$(OBJCOPY) -v -O binary obj/$(PROJ_NAME).elf obj/code.bin
							 | 
						||
| 
								 | 
							
									SETLEN=1 ../../crypto/sign.py obj/code.bin $@ $(CERT)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								obj/bootstub.bin: obj/$(STARTUP_FILE).o obj/bootstub.o obj/sha.o obj/rsa.o
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) -o obj/bootstub.$(PROJ_NAME).elf $^
							 | 
						||
| 
								 | 
							
									$(OBJCOPY) -v -O binary obj/bootstub.$(PROJ_NAME).elf $@
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								clean:
							 | 
						||
| 
								 | 
							
									rm -f obj/*
							 | 
						||
| 
								 | 
							
								
							 |