Makefile
3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
APPLICATION=field-test-device
.PHONY: all
all:
$(info $$DS75LX is ${DS75LX})
$(info $$GPS is ${GPS})
$(info $$DEVEUI is ${DEVEUI})
$(info $$DEVADDR is ${DEVADDR})
$(info $$OPERATOR is ${OPERATOR})
$(info $$OTAA is ${OTAA})
# -----------------------------
# Debug
# -----------------------------
# Set this to 1 to enable code in RIOT that does safety checking
# which is not needed in a production environment but helps in the
# development process:
DEVELHELP ?= 1
# Change this to 0 show compiler invocation lines by default:
QUIET ?= 1
#CFLAGS += -DENABLE_DEBUG=1
CFLAGS += -DDEBUG_ASSERT_VERBOSE=1
include ./Makefile.git
include ./Makefile.device
# Default region is Europe and default band is 868MHz
REGION ?= EU868
ifndef BOARD
BOARD ?= im880b
# Default radio driver is Semtech SX1272 (used by the IMST iM880ab boards)
DRIVER ?= sx1272
endif
ifeq ($(BOARD),im880b)
DS75LX ?= 1
GPS ?= 0
endif
ifeq ($(DS75LX),1)
USEMODULE += ds75lx
CFLAGS += -DDS75LX=1
endif
ifeq ($(GPS),1)
CFLAGS += -DGPS=1
# define the GNSS module baudrate
CFLAGS += -DSTD_BAUDRATE=9600
endif
FEATURES_REQUIRED += periph_rtc
FEATURES_REQUIRED += periph_wdt
USEMODULE += fmt
USEMODULE += xtimer
USEMODULE += stdin
LORA_DRIVER ?= $(DRIVER)
LORA_REGION ?= $(REGION)
USEPKG += semtech-loramac
USEMODULE += $(DRIVER)
USEMODULE += semtech_loramac_rx
#
# DRPWSZ_SEQUENCE contains the sequence of triplets <datarate,tx power,payload size>
# If datarate is 255, the ADR is set to TRUE
#
# By default (for all except LLCC68)
ifndef LORAMAC_JOIN_MIN_DATARATE
ifeq ($(DRIVER),llcc68)
LORAMAC_JOIN_MIN_DATARATE ?= 1
else
LORAMAC_JOIN_MIN_DATARATE ?= 0
endif
endif
# By default
ifndef DRPWSZ_SEQUENCE
ifeq ($(DRIVER),llcc68)
# For LLCC68 (DR1 to DR5 @ 14 dBm)
DRPWSZ_SEQUENCE ?= 1,14,8,1,14,32,1,14,16,2,14,16,3,14,16,4,14,16,5,14,16,5,11,16,5,8,16,5,5,16,5,2,16
else
DRPWSZ_SEQUENCE ?= 0,14,8,0,14,32,0,14,16,1,14,16,2,14,16,3,14,16,4,14,16,5,14,16,5,11,16,5,8,16,5,5,16,5,2,16
endif
endif
# By default
ifndef TXPERIOD
TXPERIOD ?= 30
endif
# By default
ifndef TXCNF
TXCNF ?= false
endif
# initial ADR
ADR_ON ?= false
MIN_PORT ?= 1
MAX_PORT ?= 170
DEVELHELP ?= 1
ifeq ($(OTAA),1)
CFLAGS += -DOTAA=1
else
CFLAGS += -DOTAA=0
endif
ifeq ($(OTAA),0)
CFLAGS += -DDEVADDR=\"$(DEVADDR)\"
CFLAGS += -DAPPSKEY=\"$(APPSKEY)\"
CFLAGS += -DNWKSKEY=\"$(NWKSKEY)\"
endif
ifdef LABEL
CFLAGS += -DLABEL=\"$(LABEL)\"
endif
ifndef SECRET
# SECRET should be changed and kept secret
SECRET ?= cafebabe02000001cafebabe02ffffff
endif
ifndef DEVEUI
USEMODULE += hashes
CFLAGS += -DFORGE_DEVEUI_APPEUI_APPKEY -DSECRET=\"$(SECRET)\"
else
CFLAGS += -DDEVEUI=\"$(DEVEUI)\" -DAPPEUI=\"$(APPEUI)\" -DAPPKEY=\"$(APPKEY)\"
endif
ifndef OPERATOR
OPERATOR ?= Undefined
endif
CFLAGS += -DREGION_$(REGION)
CFLAGS += -DLORAMAC_REGION_STR=\"$(REGION)\"
#CFLAGS += -DLORAMAC_ACTIVE_REGION=LORAMAC_REGION_$(REGION)
CFLAGS += -DLORAMAC_JOIN_MIN_DATARATE=$(LORAMAC_JOIN_MIN_DATARATE)
CFLAGS += -DDRPWSZ_SEQUENCE=$(DRPWSZ_SEQUENCE)
CFLAGS += -DTXPERIOD=$(TXPERIOD)
CFLAGS += -DTXCNF=$(TXCNF)
CFLAGS += -DADR_ON=$(ADR_ON)
CFLAGS += -DMIN_PORT=$(MIN_PORT) -DMAX_PORT=$(MAX_PORT)
CFLAGS += -DOPERATOR=\"$(OPERATOR)\"
# Send a APP_TIME_REQ every 100 messages
CFLAGS += -DAPP_TIME_REQ_PERIOD=100
#CFLAGS += -DVIRT_DEV=\"$(VIRT_DEV)\"
include $(RIOTBASE)/Makefile.include