Statistics
| Branch: | Tag: | Revision:

amiro-os / bootloader / bootloader.mk @ 1dd7edc7

History | View | Annotate | Download (3.621 KB)

1 e545e620 Thomas Schöpping
################################################################################
2
# AMiRo-OS is an operating system designed for the Autonomous Mini Robot       #
3
# (AMiRo) platform.                                                            #
4
# Copyright (C) 2016..2018  Thomas Schöpping et al.                            #
5
#                                                                              #
6
# This program is free software: you can redistribute it and/or modify         #
7
# it under the terms of the GNU General Public License as published by         #
8
# the Free Software Foundation, either version 3 of the License, or            #
9
# (at your option) any later version.                                          #
10
#                                                                              #
11
# This program is distributed in the hope that it will be useful,              #
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of               #
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                #
14
# GNU General Public License for more details.                                 #
15
#                                                                              #
16
# You should have received a copy of the GNU General Public License            #
17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.        #
18
#                                                                              #
19
# This research/work was supported by the Cluster of Excellence Cognitive      #
20
# Interaction Technology 'CITEC' (EXC 277) at Bielefeld University, which is   #
21
# funded by the German Research Foundation (DFG).                              #
22
################################################################################
23
24
25
26
# the path to this makefile
27 870f74ac Thomas Schöpping
BOOTLOADER_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
28 e545e620 Thomas Schöpping
29
# the interface for the bootloader
30
BOOTLOADERINC = $(BOOTLOADER_DIR)AMiRo-BLT/Target/Source/AMiRo
31
32
include $(BOOTLOADER_DIR)AMiRo-BLT/Target/Modules/moduleids.mk
33
34
# some flashing parameters
35
ifeq ($(OS),Windows_NT)
36
	FLASH_PORT ?= COM4
37
else
38 27e4a312 Thomas Schöpping
	# check whether /dev/ttyAMiRo0 exists
39
	ifeq (,$(wildcard /dev/ttyAMiRo0))
40
		# check whether /dev/ttyUSB0 exists
41
		ifeq (,$(wildcard /dev/ttyUSB0))
42
			# set to /dev/ttyAMiRo0 for meaningful error message
43
			FLASH_PORT ?= /dev/ttyAMiRo0
44
		else
45
			# legacy support
46
			FLASH_PORT ?= /dev/ttyUSB0
47
		endif
48
	else
49
		FLASH_PORT ?= /dev/ttyAMiRo0
50
	endif
51 e545e620 Thomas Schöpping
endif
52
FLASH_BAUDRATE ?= 115200
53
54
# set the flashing tool, the command to call it, arguments, and file extensions
55
ifneq ($(wildcard $(BOOTLOADER_DIR)AMiRo-BLT/Host/Source/SerialBoot/build/SerialBoot),)
56
	# if AMiRo-BLT project is available, use SerialBoot
57
	FLASHTOOL = SerialBoot
58
	FLASHTOOL_CMD = $(BOOTLOADER_DIR)AMiRo-BLT/Host/Source/SerialBoot/build/SerialBoot
59
	FLASHTOOL_EXT = srec
60
	ifdef PROJECT
61
		FLASHTOOL_ARGS = -d$(FLASH_PORT) -b$(FLASH_BAUDRATE) $(foreach module,$(FLASH_MODULES),-T$($(module)_ID_HEX) build/$(module).$(FLASHTOOL_EXT))
62
	else
63
		FLASHTOOL_ARGS = -d$(FLASH_PORT) -b$(FLASH_BAUDRATE) $(foreach module,$(FLASH_MODULES),-T$($(module)_ID_HEX) $(FLASH_DIR)$(module)/build/$(module).$(FLASHTOOL_EXT))
64
	endif
65
else
66
	# the default tool to use is stm32flash
67
	ifneq ($(words $(FLASH_MODULES)),1)
68
		FLASH_MODULES := $(firstword $(FLASH_MODULES))
69
	endif
70
	FLASHTOOL = stm32flash
71
	FLASHTOOL_CMD = stm32flash
72
	FLASHTOOL_EXT = hex
73
	ifdef PROJECT
74
		FLASHTOOL_ARGS = $(FLASH_PORT) -i "rts,-dtr,-rts":"rts,dtr,-rts" -R -b $(FLASH_BAUDRATE) -w build/$(FLASH_MODULES).$(FLASHTOOL_EXT)
75
	else
76
		FLASHTOOL_ARGS = $(FLASH_PORT) -i "rts,-dtr,-rts":"rts,dtr,-rts" -R -b $(FLASH_BAUDRATE) -w $(FLASH_MODULES)/build/$(FLASH_MODULES).$(FLASHTOOL_EXT)
77
	endif
78
endif