From 71360cc885dfb1238c38d2859db1920c2c918332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Engstr=C3=B6m?= Date: Thu, 25 Dec 2014 12:49:08 +0100 Subject: [PATCH] First draft Makefile --- Makefile | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..43a9d69 --- /dev/null +++ b/Makefile @@ -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 $@