623
|
1 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
2 ; ============================================================================
|
|
3 ;
|
640
|
4 ; File configuration.inc * combined next generation V3.12.3
|
623
|
5 ;
|
|
6 ; OSTC hwOS Configuration
|
|
7 ;
|
|
8 ; Copyright (c) 2019, HeinrichsWeikamp, all rights reserved.
|
|
9 ; ============================================================================
|
|
10 #endif
|
|
11
|
|
12
|
|
13 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
14 ;
|
|
15 ; Firmware Version
|
|
16 ; ----------------
|
|
17 ;
|
631
|
18 ; fw_version_major firmware version, major (1 - 9)
|
|
19 ; fw_version_minor firmware version, minor (0 - 99)
|
|
20 ; fw_version_beta 0= Release, 1= Beta 1, 2= Beta 2, ... (0 - 99)
|
623
|
21 ;
|
|
22 ; NOTE: all values need to be defined in hex!
|
|
23 ;
|
|
24 #endif
|
|
25
|
631
|
26 #define fw_version_major 0x03
|
650
|
27 #define fw_version_minor 0x13
|
634
|
28 #define fw_version_beta 0x00
|
623
|
29
|
|
30
|
|
31 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
32 ;
|
|
33 ; Firmware Creation and Expiration Date
|
|
34 ; -------------------------------------
|
|
35 ;
|
|
36 ; firmware_creation_year/month/day will be used to initialize the RTC on reboot
|
|
37 ;
|
|
38 ; firmware_expire_year/month/day will be used to show firmware version in
|
|
39 ; "update Firmware" style after expiry date
|
|
40 ;
|
|
41 ; NOTE: all values need to be defined in hex!
|
|
42 ;
|
|
43 #endif
|
|
44
|
648
|
45 #define firmware_creation_year 0x16
|
650
|
46 #define firmware_creation_month 0x08
|
|
47 #define firmware_creation_day 0x1C
|
623
|
48
|
648
|
49 #define firmware_expire_year 0x18
|
650
|
50 #define firmware_expire_month 0x08
|
|
51 #define firmware_expire_day 0x1C
|
623
|
52
|
|
53
|
|
54 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
55 ;
|
|
56 ; global Version Selection
|
|
57 ; ------------------------
|
|
58 ;
|
634
|
59 ; _hwos_tech_2_TR compile Tech version for OSTC 2, Plus and TR en memory: 118.656 used, 4.224 free
|
|
60 ; _hwos_tech_2_TR_cave compile Tech version for OSTC 2, Plus and TR en memory: 120.883 used, 1.997 free
|
|
61 ; _hwos_tech_3_cR compile Tech version for OSTC 3 and cR en+de memory: 119.496 used, 3.384 free
|
|
62 ; _hwos_tech_3_cR_cave compile Tech version for OSTC 3 and cR en+de memory: 122.079 used, 801 free *
|
|
63 ; _hwos_sport compile Sport version for all models en+de memory: 116.365 used, 6.515 free
|
|
64 ; 122.880 max. available
|
623
|
65 #endif
|
|
66
|
640
|
67 #define _hwos_tech_3_cR
|
623
|
68
|
|
69
|
|
70 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
71 ;
|
|
72 ; Language Selection
|
|
73 ; ------------------
|
|
74 ;
|
|
75 ; _language_1 first or single language,
|
|
76 ; set to 'en', 'de', 'fr', or 'it', defaults to 'en'
|
|
77 ;
|
634
|
78 ; _language_2 second language, coding as above or 'none' mem: approx. 4.0 kB in Sport, 4.3 kB in Tech
|
623
|
79 ;
|
|
80 #endif
|
|
81
|
641
|
82 #define _language_1 en
|
650
|
83 #define _language_2 none
|
623
|
84
|
|
85
|
|
86 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
87 ;
|
634
|
88 ; Features Selection CODE SIZES ARE OUTDATED
|
623
|
89 ; ------------------
|
634
|
90 ; base code without any features, 1 language (en) mem: 93.964 byte
|
|
91 ; _compass compass function mem: + 10.404 byte
|
|
92 ; _helium helium (trimix) gases and diluents mem: + 2.113 byte || both together
|
|
93 ; _ccr_pscr CCR & pSCR modes, basic functionality mem: + 4.117 byte || + 6.250 byte
|
|
94 ; _external_sensor CCR & pSCR modes, external sensor support mem: + 3.343 byte
|
|
95 ; _gauge_mode gauge mode mem: - 28 byte (less)
|
|
96 ; _high_ppO2_max raised ppO2 max limit (2.0 bar) mem: 0 byte (neutral)
|
|
97 ; _rx_functions RX function (OSTC TR) mem: + 4.497 byte
|
|
98 ; _rx_update RX firmware update (OSTC TR) mem: + 2.282 byte (dependent on RX firmware size)
|
|
99 ; _gas_contingency auto-switch to alternative tanks on depleption mem: + 804 byte
|
|
100 ; _cave_mode cave mode return calculation mem: + 3.035 byte
|
640
|
101 ; _big_divemenu big font dive menu -- UNDER DEVELOPMENT YET
|
634
|
102 ; _firmware_recovery means for backing up and restoring 2nd firmware mem: + 472 byte
|
|
103 ; _min_depth_option resettable min. and max. depth mem: + 4 byte ## special user group only ##
|
|
104 ; _screendump screen dump function mem: + 348 byte ## special user group only ##
|
623
|
105 ;
|
|
106 ;
|
634
|
107 ; NOTES: - exclude features by prepending NOT_INCLUDED to the label,
|
|
108 ; - sizes may be incorrect by a couple of bytes,
|
|
109 ; - not all features will fit concurrently at the same time or if two languages are slected,
|
|
110 ; - feature sizes are based on single language (english)
|
|
111 ; - feature sizes will increase with 2nd language and will differ slightly between languages,
|
|
112 ; - combinations of features will yield code sizes that differ
|
|
113 ; slightly from the simple sum of the individual sizes.
|
|
114 #endif
|
|
115
|
|
116
|
|
117 #ifdef _base_code
|
|
118
|
|
119 #define NOT_INCLUDED_compass
|
|
120 #define NOT_INCLUDED_helium
|
|
121 #define NOT_INCLUDED_ccr_pscr
|
|
122 #define NOT_INCLUDED_rx_functions
|
|
123 #define NOT_INCLUDED_rx_update
|
|
124 #define NOT_INCLUDED_gauge_mode
|
|
125 #define NOT_INCLUDED_high_ppO2_max
|
|
126 #define NOT_INCLUDED_gas_contingency
|
|
127 #define NOT_INCLUDED_external_sensor
|
|
128 #define NOT_INCLUDED_cave_mode
|
640
|
129 #define NOT_INCLUDED_big_divemenu
|
634
|
130 #define NOT_INCLUDED_firmware_recovery
|
|
131 #define NOT_INCLUDED_min_depth_option
|
|
132 #define NOT_INCLUDED_screendump
|
|
133
|
623
|
134 #endif
|
|
135
|
|
136
|
|
137 #ifdef _hwos_tech_2_TR
|
|
138
|
|
139 #define _compass
|
|
140 #define _helium
|
|
141 #define _ccr_pscr
|
631
|
142 #define _rx_functions
|
|
143 #define _rx_update
|
628
|
144 #define _gauge_mode
|
|
145 #define _high_ppO2_max
|
634
|
146 #define _gas_contingency
|
623
|
147 #define NOT_INCLUDED_external_sensor
|
|
148 #define NOT_INCLUDED_cave_mode
|
643
|
149 #define _big_divemenu
|
634
|
150 #define _firmware_recovery
|
|
151 #define NOT_INCLUDED_min_depth_option
|
|
152 #define NOT_INCLUDED_screendump
|
|
153
|
|
154 #endif
|
|
155
|
|
156
|
|
157 #ifdef _hwos_tech_2_TR_cave
|
|
158
|
|
159 #define _compass
|
|
160 #define _helium
|
|
161 #define _ccr_pscr
|
|
162 #define _rx_functions
|
|
163 #define _rx_update
|
|
164 #define _gauge_mode
|
|
165 #define _high_ppO2_max
|
|
166 #define _gas_contingency
|
|
167 #define NOT_INCLUDED_external_sensor
|
|
168 #define _cave_mode
|
643
|
169 #define _big_divemenu
|
634
|
170 #define _firmware_recovery
|
623
|
171 #define NOT_INCLUDED_min_depth_option
|
631
|
172 #define NOT_INCLUDED_screendump
|
623
|
173
|
|
174 #endif
|
|
175
|
|
176
|
|
177 #ifdef _hwos_tech_3_cR
|
|
178
|
|
179 #define _compass
|
|
180 #define _helium
|
|
181 #define _ccr_pscr
|
628
|
182 #define _gauge_mode
|
|
183 #define _high_ppO2_max
|
623
|
184 #define NOT_INCLUDED_rx_functions
|
628
|
185 #define NOT_INCLUDED_rx_update
|
631
|
186 #define _external_sensor
|
|
187 #define _gas_contingency
|
634
|
188 #define NOT_INCLUDED_cave_mode
|
643
|
189 #define _big_divemenu
|
634
|
190 #define _firmware_recovery
|
|
191 #define NOT_INCLUDED_min_depth_option
|
640
|
192 #define _screendump
|
634
|
193
|
|
194 #endif
|
|
195
|
|
196
|
|
197 #ifdef _hwos_tech_3_cR_cave
|
|
198
|
|
199 #define _compass
|
|
200 #define _helium
|
|
201 #define _ccr_pscr
|
|
202 #define _gauge_mode
|
|
203 #define _high_ppO2_max
|
|
204 #define NOT_INCLUDED_rx_functions
|
|
205 #define NOT_INCLUDED_rx_update
|
|
206 #define _external_sensor
|
|
207 #define _gas_contingency
|
|
208 #define _cave_mode
|
643
|
209 #define _big_divemenu
|
634
|
210 #define _firmware_recovery
|
623
|
211 #define NOT_INCLUDED_min_depth_option
|
631
|
212 #define NOT_INCLUDED_screendump
|
623
|
213
|
|
214 #endif
|
|
215
|
|
216
|
|
217 #ifdef _hwos_sport
|
|
218
|
|
219 #define _compass
|
631
|
220 #define _gas_contingency
|
623
|
221 #define NOT_INCLUDED_helium
|
|
222 #define NOT_INCLUDED_ccr_pscr
|
628
|
223 #define NOT_INCLUDED_gauge_mode
|
|
224 #define NOT_INCLUDED_high_ppO2_max
|
631
|
225 #define _rx_functions
|
|
226 #define _rx_update
|
|
227 #define NOT_INCLUDED_external_sensor
|
623
|
228 #define NOT_INCLUDED_cave_mode
|
643
|
229 #define _big_divemenu
|
634
|
230 #define _firmware_recovery
|
623
|
231 #define NOT_INCLUDED_min_depth_option
|
631
|
232 #define NOT_INCLUDED_screendump
|
623
|
233
|
|
234 #endif
|
|
235
|
|
236
|
|
237 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
238 ;
|
|
239 ; Debug Modes
|
|
240 ; -----------
|
|
241 ;
|
634
|
242 ; _DEBUG put firmware in a global debug mode default: not included
|
|
243 ; _profiling deco engine performance measurements default: not included
|
|
244 ; _debug_output performance outputs (for _profiling) default: not included
|
|
245 ; _comm_debug add run-time adjustable RX timeout default: not included
|
|
246 ; _rx_functions_debug switch to transmitter debug custom view default: not included
|
623
|
247 ;
|
631
|
248 ; NOTE: - Exclude options by prepending NOT_INCLUDED to the label
|
623
|
249 ;
|
|
250 #endif
|
|
251
|
|
252 #define NOT_INCLUDED_DEBUG
|
631
|
253 #define NOT_INCLUDED_profiling
|
623
|
254 #define NOT_INCLUDED_debug_output
|
634
|
255 #define NOT_INCLUDED_comm_debug
|
|
256 #define NOT_INCLUDED_rx_functions_debug
|
628
|
257
|
|
258
|
631
|
259 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
260 ;
|
|
261 ; Auto-Includes (serve functional dependencies)
|
|
262 ;
|
|
263 #endif
|
628
|
264
|
631
|
265 #ifdef _cave_mode
|
|
266 #ifndef _gas_contingency
|
|
267 #define _gas_contingency
|
|
268 #endif
|
|
269 #endif
|
|
270
|
|
271 #ifdef _rx_update
|
|
272 #ifndef _rx_functions
|
|
273 #define _rx_functions
|
|
274 #endif
|
|
275 #endif
|
|
276
|
|
277 #ifdef _external_sensor
|
|
278 #ifndef _ccr_pscr
|
|
279 #define _ccr_pscr
|
|
280 #endif
|
|
281 #endif
|
628
|
282
|
|
283
|
|
284 #ifdef xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
285 ;
|
|
286 ; Software Configuration
|
|
287 ;
|
|
288 #endif
|
|
289
|
|
290 #ifdef _screendump
|
634
|
291 #define FW_CONF_1 0x01
|
628
|
292 #else
|
634
|
293 #define FW_CONF_1 0x00
|
628
|
294 #endif
|
|
295
|
|
296 #ifdef _compass
|
634
|
297 #define FW_CONF_2 0x02
|
628
|
298 #else
|
634
|
299 #define FW_CONF_2 0x00
|
628
|
300 #endif
|
|
301
|
|
302 #ifdef _rx_functions
|
634
|
303 #define FW_CONF_3 0x04
|
628
|
304 #else
|
634
|
305 #define FW_CONF_3 0x00
|
628
|
306 #endif
|
|
307
|
|
308 #ifdef _rx_update
|
634
|
309 #define FW_CONF_4 0x08
|
628
|
310 #else
|
634
|
311 #define FW_CONF_4 0x00
|
628
|
312 #endif
|
|
313
|
|
314 #ifdef _helium
|
634
|
315 #define FW_CONF_5 0x10
|
628
|
316 #else
|
634
|
317 #define FW_CONF_5 0x00
|
628
|
318 #endif
|
|
319
|
|
320 #ifdef _ccr_pscr
|
634
|
321 #define FW_CONF_6 0x20
|
628
|
322 #else
|
634
|
323 #define FW_CONF_6 0x00
|
628
|
324 #endif
|
|
325
|
|
326 #ifdef _external_sensor
|
634
|
327 #define FW_CONF_7 0x40
|
628
|
328 #else
|
634
|
329 #define FW_CONF_7 0x00
|
628
|
330 #endif
|
|
331
|
|
332 #ifdef _cave_mode
|
634
|
333 #define FW_CONF_8 0x80
|
628
|
334 #else
|
634
|
335 #define FW_CONF_8 0x00
|
628
|
336 #endif
|
|
337
|
634
|
338 #define FW_CONF FW_CONF_1 + FW_CONF_2 + FW_CONF_3 + FW_CONF_4 + FW_CONF_5 + FW_CONF_6 + FW_CONF_7 + FW_CONF_8
|
|
339
|
|
340 #define FW_ID LOW( fw_version_major + fw_version_minor + fw_version_beta )
|