Merge pull request #378 from hakalan/thermocouple
[clinton/Smoothieware.git] / src / makefile
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
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
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
50 DEFINES += -D__GITVERSIONSTRING__=\"placeholder\"
51 endif
52
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)
55
56 # add any modules that you do not want included in the build
57 export EXCLUDED_MODULES = tools/touchprobe
58 # e.g for a CNC machine
59 #export EXCLUDED_MODULES = tools/touchprobe tools/laser tools/temperaturecontrol tools/extruder
60
61 # set to not compile in any network support
62 #export NONETWORK = 1
63
64 include $(BUILD_DIR)/build.mk
65
66 CONSOLE?=/dev/arduino
67 BAUD?=1000000
68
69 .PHONY: debug-store flash upload debug console dfu
70
71 debug-store: ../LPC1768/$(PROJECT).elf
72 cp ../LPC1768/$(PROJECT).elf ../LPC1768/$(PROJECT)_lastupload.elf
73
74 flash: ../LPC1768/$(PROJECT).hex debug-store
75 lpc21isp $< $(CONSOLE) 115200 12000
76
77 dfu: ../LPC1768/$(PROJECT).bin
78 dfu-util -D $< -R
79
80 upload: ../LPC1768/$(PROJECT).bin debug-store
81 dfu-util -R -d 1d50:6015 -D $<
82
83 debug: ../LPC1768/$(PROJECT)_lastupload.elf
84 arm-none-eabi-gdb $< -ex "set target-charset ASCII" -ex "set remotelogfile mri.log" -ex "target remote $(CONSOLE)"
85
86 console:
87 stty raw ignbrk -echo $(BAUD) < $(CONSOLE)
88 ( cat <&3 & cat >&3 ; kill %% ) 3<>$(CONSOLE)