Commit | Line | Data |
---|---|---|
df930a5f JM |
1 | PROJECT=main |
2 | BUILD_DIR=../build | |
3 | DEVICES=lpc1768 | |
4 | ||
5 | # BUILD_TYPE can be set to the following values: | |
6 | # Checked - Optimizations enabled with MRI debug monitor support. (Recommended Type) | |
7 | # Release - Optimizations enabled. | |
8 | # Debug - Optimization disabled with MRI debug monitor support. | |
9 | BUILD_TYPE=Checked | |
10 | ||
11 | # Set to 1 to tag each heap allocation with the caller's return address. | |
12 | # NOTE: Can't be enabled with latest build as not compatible with newlib nano. | |
13 | HEAP_TAGS=0 | |
14 | ||
15 | # Set to 1 configure MPU to disable write buffering and eliminate imprecise bus faults. | |
16 | WRITE_BUFFER_DISABLE=0 | |
17 | ||
18 | # Set to non zero value if you want checks to be enabled which reserve a | |
19 | # specific amount of space for the stack. The heap's growth will be | |
20 | # constrained to reserve this much space for the stack and the stack won't be | |
21 | # able to grow larger than this amount. | |
22 | STACK_SIZE=3072 | |
23 | ||
24 | # Set to 1 to allow MRI debug monitor to take full control of UART0 and use it | |
25 | # as a dedicated debug channel. If you are using the USB based serial port for | |
26 | # the console then this should cause you no problems. Set MRI_BREAK_ON_INIT to | |
27 | # 0 if you don't want to break into GDB at startup. | |
28 | ENABLE_DEBUG_MONITOR?=0 | |
29 | ||
2ee2ad19 JM |
30 | # this is the default UART baud rate used if it is not set in config |
31 | # it is also the baud rate used to report any errors found while parsing the config file | |
32 | DEFAULT_SERIAL_BAUD_RATE?=9600 | |
33 | ||
df930a5f JM |
34 | ifeq "$(ENABLE_DEBUG_MONITOR)" "1" |
35 | # Can add MRI_UART_BAUD=115200 to next line if GDB fails to connect to MRI. | |
36 | # Tends to happen on some Linux distros but not Windows and OS X. | |
37 | MRI_UART=MRI_UART_0 | |
38 | MRI_BREAK_ON_INIT=1 | |
39 | MRI_SEMIHOST_STDIO=1 | |
40 | else | |
41 | MRI_UART=MRI_UART_0 MRI_UART_SHARE | |
42 | MRI_BREAK_ON_INIT=0 | |
43 | MRI_SEMIHOST_STDIO=0 | |
44 | endif | |
45 | ||
46 | # generate a git version string, sorry only on linux and mac osx | |
47 | ifneq "$(OS)" "Windows_NT" | |
48 | DEFINES += -D__GITVERSIONSTRING__=\"$(shell ./generate-version.sh)\" | |
49 | else | |
4bcd0840 | 50 | DEFINES += -D__GITVERSIONSTRING__=\"$(shell generate-version.bat)\" |
df930a5f JM |
51 | endif |
52 | ||
2ee2ad19 JM |
53 | # use c++11 features for the checksums and set default baud rate for serial uart |
54 | DEFINES += -DCHECKSUM_USE_CPP -DDEFAULT_SERIAL_BAUD_RATE=$(DEFAULT_SERIAL_BAUD_RATE) | |
85eabc50 | 55 | |
3b1acdaa JM |
56 | ifneq "$(STEPTICKER_DEBUG_PIN)" "" |
57 | # Set a Pin here that toggles on end of move | |
58 | DEFINES += -DSTEPTICKER_DEBUG_PIN=$(STEPTICKER_DEBUG_PIN) | |
59 | endif | |
9e089978 | 60 | |
df930a5f | 61 | # add any modules that you do not want included in the build |
89b1a6eb | 62 | EXCLUDE_MODULES = tools/touchprobe |
df930a5f JM |
63 | # e.g for a CNC machine |
64 | #export EXCLUDED_MODULES = tools/touchprobe tools/laser tools/temperaturecontrol tools/extruder | |
65 | ||
89b1a6eb JM |
66 | ifneq "$(INCLUDE_MODULE)" "" |
67 | export EXCLUDED_MODULES = $(filter-out $(INCLUDE_MODULE),$(EXCLUDE_MODULES)) | |
68 | else | |
69 | export EXCLUDED_MODULES = $(EXCLUDE_MODULES) | |
70 | endif | |
71 | ||
72 | ||
df930a5f JM |
73 | # set to not compile in any network support |
74 | #export NONETWORK = 1 | |
75 | ||
76 | include $(BUILD_DIR)/build.mk | |
77 | ||
78 | CONSOLE?=/dev/arduino | |
79 | BAUD?=1000000 | |
80 | ||
81 | .PHONY: debug-store flash upload debug console dfu | |
82 | ||
83 | debug-store: ../LPC1768/$(PROJECT).elf | |
84 | cp ../LPC1768/$(PROJECT).elf ../LPC1768/$(PROJECT)_lastupload.elf | |
85 | ||
86 | flash: ../LPC1768/$(PROJECT).hex debug-store | |
87 | lpc21isp $< $(CONSOLE) 115200 12000 | |
88 | ||
89 | dfu: ../LPC1768/$(PROJECT).bin | |
90 | dfu-util -D $< -R | |
91 | ||
92 | upload: ../LPC1768/$(PROJECT).bin debug-store | |
93 | dfu-util -R -d 1d50:6015 -D $< | |
94 | ||
95 | debug: ../LPC1768/$(PROJECT)_lastupload.elf | |
96 | arm-none-eabi-gdb $< -ex "set target-charset ASCII" -ex "set remotelogfile mri.log" -ex "target remote $(CONSOLE)" | |
97 | ||
98 | console: | |
99 | stty raw ignbrk -echo $(BAUD) < $(CONSOLE) | |
100 | ( cat <&3 & cat >&3 ; kill %% ) 3<>$(CONSOLE) |