First draft Makefile

master
Adam Engström 2014-12-25 12:49:08 +01:00
commit 71360cc885
1 changed files with 40 additions and 0 deletions

40
Makefile 100644
View File

@ -0,0 +1,40 @@
all:
orig_fw.hex:
@echo "Reading Novatouch firmware to $@..."
mspdebug rf2500 "hexout 0x8000 0xffff $@"
orig_fw.bin: orig_fw.hex
@echo "Converting ihex fw to binary blob..."
msp430-objcopy -I ihex -O binary $< $@
section_isr.bin: orig_fw.bin
@echo "Create isr vectors binary..."
dd if=$< of=$@ bs=1 skip=0x7fe0 count=0x20
section_data.bin: orig_fw.bin
@echo "Create data section binary..."
dd if=$< of=$@ bs=1 count=0x2780
section_data_patch.bin: section_data.bin
@echo "Patching firmware..."
python patch.py section_data.bin section_data_patch.bin
# IDA friendly elf file
main.o: section_data_patch.bin section_isr.bin
msp430-objcopy -I binary -O elf32-msp430 -B msp430:430X \
--rename-section .data=.text,contents,code,alloc,load,readonly \
--change-section-address .data=0x8000 \
--add-section .vectors=section_isr.bin \
--set-section-flags .vectors=contents,alloc,load,readonly,code \
--change-section-address .vectors=0xff80 \
--set-start 0x8000 section_data_patch.bin $@
# The main.o is an relocatable elf which needs to be converted to an actual elf
# for IDA to like it
main.elf: main.o
msp430-gcc -O0 -mmcu=msp430f5510 \
-Wl,--section-start=.text=0x8000 \
-Wl,--entry=0x9ca6 \
-nostdlib \
$< -o $@