1 /*
2 $License:
3 Copyright 2011 InvenSense, Inc.
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16 $
17 */
18
19 /* WARNING: autogenerated code, do not modify */
20 /**
21 * @defgroup DMPDEFAULT
22 * @brief
23 *
24 * @{
25 * @file inv_setup_dmpMantis.c
26 * @brief
27 *
28 *
29 */
30
31 #include "mltypes.h"
32 #include "dmpDefault.h"
33 #include "dmpKey.h"
34 #include "dmpmap.h"
35 #include "mldl.h"
36
37 #define CFG_25 1786
38 #define CFG_24 1782
39 #define CFG_26 1790
40 #define CFG_21 1899
41 #define CFG_20 1728
42 #define CFG_23 1911
43 #define CFG_TAP4 1905
44 #define CFG_TAP5 1906
45 #define CFG_TAP6 1907
46 #define CFG_1 1865
47 #define CFG_TAP0 1899
48 #define CFG_TAP1 1901
49 #define CFG_TAP2 1902
50 #define CFG_TAP_SAVE_ACCB 1770
51 #define CFG_ORIENT_IRQ_1 1798
52 #define CFG_ORIENT_IRQ_2 1821
53 #define CFG_ORIENT_IRQ_3 1826
54 #define FCFG_MAG_VAL 774
55 #define CFG_TAP_QUANTIZE 1730
56 #define FCFG_3 936
57 #define FCFG_1 891
58 #define CFG_ACCEL_FILTER 1076
59 #define FCFG_2 895
60 #define CFG_3D 1629
61 #define FCFG_7 902
62 #define CFG_3C 1627
63 #define FCFG_5 1030
64 #define FCFG_4 880
65 #define CFG_3B 1625
66 #define CFG_TAP_JERK 1722
67 #define FCFG_6 954
68 #define CFG_12 1894
69 #define CFG_TAP7 1908
70 #define CFG_14 1871
71 #define CFG_15 1876
72 #define CFG_16 1912
73 #define CFG_TAP_CLEAR_STICKY 1914
74 #define CFG_6 1920
75 #define CFG_7 1014
76 #define CFG_4 1634
77 #define CFG_5 1831
78 #define CFG_3 1623
79 #define CFG_GYRO_SOURCE 1859
80 #define CFG_TAP3 1903
81 #define CFG_EXTERNAL 1884
82 #define CFG_8 1854
83 #define CFG_9 1860
84 #define CFG_ORIENT_2 1816
85 #define CFG_ORIENT_1 1796
86 #define CFG_MOTION_BIAS 1023
87 #define FCFG_MAG_MOV 791
88 #define TEMPLABEL 1491
89 #define FCFG_ACCEL_INIT 847
90
91
92 #define D_0_22 (22+512)
93 #define D_0_24 (24+512)
94
95 #define D_0_36 (36)
96 #define D_0_52 (52)
97 #define D_0_96 (96)
98 #define D_0_104 (104)
99 #define D_0_108 (108)
100 #define D_0_163 (163)
101 #define D_0_188 (188)
102 #define D_0_192 (192)
103 #define D_0_224 (224)
104 #define D_0_228 (228)
105 #define D_0_232 (232)
106 #define D_0_236 (236)
107
108 #define D_1_2 (256 + 2)
109 #define D_1_4 (256 + 4)
110 #define D_1_8 (256 + 8)
111 #define D_1_10 (256 + 10)
112 #define D_1_24 (256 + 24)
113 #define D_1_28 (256 + 28)
114 #define D_1_92 (256 + 92)
115 #define D_1_96 (256 + 96)
116 #define D_1_98 (256 + 98)
117 #define D_1_106 (256 + 106)
118 #define D_1_108 (256 + 108)
119 #define D_1_112 (256 + 112)
120 #define D_1_128 (256 + 144)
121 #define D_1_152 (256 + 12)
122 #define D_1_168 (256 + 168)
123 #define D_1_175 (256 + 175)
124 #define D_1_178 (256 + 178)
125 #define D_1_236 (256 + 236)
126 #define D_1_244 (256 + 244)
127 #define D_2_12 (512+12)
128 #define D_2_96 (512+96)
129 #define D_2_108 (512+108)
130 #define D_2_244 (512+244)
131 #define D_2_248 (512+248)
132 #define D_2_252 (512+252)
133
134 #define CPASS_BIAS_X (35*16+4)
135 #define CPASS_BIAS_Y (35*16+8)
136 #define CPASS_BIAS_Z (35*16+12)
137 #define CPASS_MTX_00 (36*16)
138 #define CPASS_MTX_01 (36*16+4)
139 #define CPASS_MTX_02 (36*16+8)
140 #define CPASS_MTX_10 (36*16+12)
141 #define CPASS_MTX_11 (37*16)
142 #define CPASS_MTX_12 (37*16+4)
143 #define CPASS_MTX_20 (37*16+8)
144 #define CPASS_MTX_21 (37*16+12)
145 #define CPASS_MTX_22 (43*16+12)
146 #define D_ACT0 (40*16)
147 #define D_ACSX (40*16+4)
148 #define D_ACSY (40*16+8)
149 #define D_ACSZ (40*16+12)
150
151 static const tKeyLabel dmpTConfig[] = {
152 {KEY_CFG_25, CFG_25},
153 {KEY_CFG_24, CFG_24},
154 {KEY_CFG_26, CFG_26},
155 {KEY_CFG_21, CFG_21},
156 {KEY_CFG_20, CFG_20},
157 {KEY_CFG_23, CFG_23},
158 {KEY_CFG_TAP4, CFG_TAP4},
159 {KEY_CFG_TAP5, CFG_TAP5},
160 {KEY_CFG_TAP6, CFG_TAP6},
161 {KEY_CFG_1, CFG_1},
162 {KEY_CFG_TAP0, CFG_TAP0},
163 {KEY_CFG_TAP1, CFG_TAP1},
164 {KEY_CFG_TAP2, CFG_TAP2},
165 {KEY_CFG_TAP_SAVE_ACCB, CFG_TAP_SAVE_ACCB},
166 {KEY_CFG_ORIENT_IRQ_1, CFG_ORIENT_IRQ_1},
167 {KEY_CFG_ORIENT_IRQ_2, CFG_ORIENT_IRQ_2},
168 {KEY_CFG_ORIENT_IRQ_3, CFG_ORIENT_IRQ_3},
169 {KEY_FCFG_MAG_VAL, FCFG_MAG_VAL},
170 {KEY_CFG_TAP_QUANTIZE, CFG_TAP_QUANTIZE},
171 {KEY_FCFG_3, FCFG_3},
172 {KEY_FCFG_1, FCFG_1},
173 // {KEY_CFG_ACCEL_FILTER, CFG_ACCEL_FILTER},
174 {KEY_FCFG_2, FCFG_2},
175 {KEY_CFG_3D, CFG_3D},
176 {KEY_FCFG_7, FCFG_7},
177 {KEY_CFG_3C, CFG_3C},
178 {KEY_FCFG_5, FCFG_5},
179 {KEY_FCFG_4, FCFG_4},
180 {KEY_CFG_3B, CFG_3B},
181 {KEY_CFG_TAP_JERK, CFG_TAP_JERK},
182 {KEY_FCFG_6, FCFG_6},
183 {KEY_CFG_12, CFG_12},
184 {KEY_CFG_TAP7, CFG_TAP7},
185 {KEY_CFG_14, CFG_14},
186 {KEY_CFG_15, CFG_15},
187 {KEY_CFG_16, CFG_16},
188 {KEY_CFG_TAP_CLEAR_STICKY, CFG_TAP_CLEAR_STICKY},
189 {KEY_CFG_6, CFG_6},
190 {KEY_CFG_7, CFG_7},
191 {KEY_CFG_4, CFG_4},
192 {KEY_CFG_5, CFG_5},
193 {KEY_CFG_3, CFG_3},
194 {KEY_CFG_GYRO_SOURCE, CFG_GYRO_SOURCE},
195 {KEY_CFG_TAP3, CFG_TAP3},
196 {KEY_CFG_EXTERNAL, CFG_EXTERNAL},
197 {KEY_CFG_8, CFG_8},
198 {KEY_CFG_9, CFG_9},
199 {KEY_CFG_ORIENT_2, CFG_ORIENT_2},
200 {KEY_CFG_ORIENT_1, CFG_ORIENT_1},
201 {KEY_CFG_MOTION_BIAS, CFG_MOTION_BIAS},
202 {KEY_FCFG_MAG_MOV, FCFG_MAG_MOV},
203 // {KEY_TEMPLABEL, TEMPLABEL},
204 {KEY_FCFG_ACCEL_INIT, FCFG_ACCEL_INIT},
205 {KEY_D_0_22, D_0_22},
206 {KEY_D_0_24, D_0_24},
207 {KEY_D_0_36, D_0_36},
208 {KEY_D_0_52, D_0_52},
209 {KEY_D_0_96, D_0_96},
210 {KEY_D_0_104, D_0_104},
211 {KEY_D_0_108, D_0_108},
212 {KEY_D_0_163, D_0_163},
213 {KEY_D_0_188, D_0_188},
214 {KEY_D_0_192, D_0_192},
215 {KEY_D_0_224, D_0_224},
216 {KEY_D_0_228, D_0_228},
217 {KEY_D_0_232, D_0_232},
218 {KEY_D_0_236, D_0_236},
219
220 {KEY_DMP_PREVPTAT, DMP_PREVPTAT},
221 {KEY_D_1_2, D_1_2},
222 {KEY_D_1_4, D_1_4},
223 {KEY_D_1_8, D_1_8},
224 {KEY_D_1_10, D_1_10},
225 {KEY_D_1_24, D_1_24},
226 {KEY_D_1_28, D_1_28},
227 {KEY_D_1_92, D_1_92},
228 {KEY_D_1_96, D_1_96},
229 {KEY_D_1_98, D_1_98},
230 {KEY_D_1_106, D_1_106},
231 {KEY_D_1_108, D_1_108},
232 {KEY_D_1_112, D_1_112},
233 {KEY_D_1_128, D_1_128},
234 {KEY_D_1_152, D_1_152},
235 {KEY_D_1_168, D_1_168},
236 {KEY_D_1_175, D_1_175},
237 {KEY_D_1_178, D_1_178},
238 {KEY_D_1_236, D_1_236},
239 {KEY_D_1_244, D_1_244},
240
241 {KEY_D_2_12, D_2_12},
242 {KEY_D_2_96, D_2_96},
243 {KEY_D_2_108, D_2_108},
244 {KEY_D_2_244, D_2_244},
245 {KEY_D_2_248, D_2_248},
246 {KEY_D_2_252, D_2_252},
247
248 {KEY_DMP_TAPW_MIN, DMP_TAPW_MIN},
249 {KEY_DMP_TAP_THR_X, DMP_TAP_THX},
250 {KEY_DMP_TAP_THR_Y, DMP_TAP_THY},
251 {KEY_DMP_TAP_THR_Z, DMP_TAP_THZ},
252 {KEY_DMP_SH_TH_Y, DMP_SH_TH_Y},
253 {KEY_DMP_SH_TH_X, DMP_SH_TH_X},
254 {KEY_DMP_SH_TH_Z, DMP_SH_TH_Z},
255 {KEY_DMP_ORIENT, DMP_ORIENT},
256
257 {KEY_CPASS_BIAS_X, CPASS_BIAS_X},
258 {KEY_CPASS_BIAS_Y, CPASS_BIAS_Y},
259 {KEY_CPASS_BIAS_Z, CPASS_BIAS_Z},
260 {KEY_CPASS_MTX_00, CPASS_MTX_00},
261 {KEY_CPASS_MTX_01, CPASS_MTX_01},
262 {KEY_CPASS_MTX_02, CPASS_MTX_02},
263 {KEY_CPASS_MTX_10, CPASS_MTX_10},
264 {KEY_CPASS_MTX_11, CPASS_MTX_11},
265 {KEY_CPASS_MTX_12, CPASS_MTX_12},
266 {KEY_CPASS_MTX_20, CPASS_MTX_20},
267 {KEY_CPASS_MTX_21, CPASS_MTX_21},
268 {KEY_CPASS_MTX_22, CPASS_MTX_22},
269 {KEY_D_ACT0, D_ACT0},
270 {KEY_D_ACSX, D_ACSX},
271 {KEY_D_ACSY, D_ACSY},
272 {KEY_D_ACSZ, D_ACSZ}
273 };
274 #define NUM_LOCAL_KEYS (sizeof(dmpTConfig)/sizeof(dmpTConfig[0]))
275
276 #define DMP_CODE_SIZE 1923
277
278 static const unsigned char dmpMemory[DMP_CODE_SIZE] = {
279 0xfb, 0x00, 0x00, 0x3e, 0x00, 0x0b, 0x00, 0x36, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00,
280 0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0xfa, 0x80, 0x00, 0x0b, 0x12, 0x82, 0x00, 0x01,
281 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282 0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x45, 0x81, 0xff, 0xff, 0xfa, 0x72, 0x00, 0x00, 0x00, 0x00,
283 0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x7f, 0xff, 0xff, 0xfe, 0x80, 0x01,
284 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
285 0x00, 0x3e, 0x03, 0x30, 0x40, 0x00, 0x00, 0x00, 0x02, 0xca, 0xe3, 0x09, 0x3e, 0x80, 0x00, 0x00,
286 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
287 0x41, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x2a, 0x00, 0x00, 0x16, 0x55, 0x00, 0x00, 0x21, 0x82,
288 0xfd, 0x87, 0x26, 0x50, 0xfd, 0x80, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x05, 0x80, 0x00,
289 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
290 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x6f, 0x00, 0x02, 0x65, 0x32, 0x00, 0x00, 0x5e, 0xc0,
291 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292 0xfb, 0x8c, 0x6f, 0x5d, 0xfd, 0x5d, 0x08, 0xd9, 0x00, 0x7c, 0x73, 0x3b, 0x00, 0x6c, 0x12, 0xcc,
293 0x32, 0x00, 0x13, 0x9d, 0x32, 0x00, 0xd0, 0xd6, 0x32, 0x00, 0x08, 0x00, 0x40, 0x00, 0x01, 0xf4,
294 0xff, 0xe6, 0x80, 0x79, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xd6, 0x00, 0x00, 0x27, 0x10,
295 0xfb, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
297 0x00, 0x00, 0xfa, 0x36, 0xff, 0xbc, 0x30, 0x8e, 0x00, 0x05, 0xfb, 0xf0, 0xff, 0xd9, 0x5b, 0xc8,
298 0xff, 0xd0, 0x9a, 0xbe, 0x00, 0x00, 0x10, 0xa9, 0xff, 0xf4, 0x1e, 0xb2, 0x00, 0xce, 0xbb, 0xf7,
299 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x0c,
300 0xff, 0xc2, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xcf, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00,
301 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x14,
302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x68, 0xb6, 0x79, 0x35, 0x28, 0xbc, 0xc6, 0x7e, 0xd1, 0x6c,
306 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x6a, 0x00, 0x00, 0x00, 0x00,
307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x30,
308 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
310 0x00, 0x00, 0x25, 0x4d, 0x00, 0x2f, 0x70, 0x6d, 0x00, 0x00, 0x05, 0xae, 0x00, 0x0c, 0x02, 0xd0,
311 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312 0x00, 0x00, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00,
313 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0xff, 0xef, 0x00, 0x00,
314 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
315 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
316 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
317 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
320 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
323 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
327
328 0xd8, 0xdc, 0xba, 0xa2, 0xf1, 0xde, 0xb2, 0xb8, 0xb4, 0xa8, 0x81, 0x91, 0xf7, 0x4a, 0x90, 0x7f,
329 0x91, 0x6a, 0xf3, 0xf9, 0xdb, 0xa8, 0xf9, 0xb0, 0xba, 0xa0, 0x80, 0xf2, 0xce, 0x81, 0xf3, 0xc2,
330 0xf1, 0xc1, 0xf2, 0xc3, 0xf3, 0xcc, 0xa2, 0xb2, 0x80, 0xf1, 0xc6, 0xd8, 0x80, 0xba, 0xa7, 0xdf,
331 0xdf, 0xdf, 0xf2, 0xa7, 0xc3, 0xcb, 0xc5, 0xb6, 0xf0, 0x87, 0xa2, 0x94, 0x24, 0x48, 0x70, 0x3c,
332 0x95, 0x40, 0x68, 0x34, 0x58, 0x9b, 0x78, 0xa2, 0xf1, 0x83, 0x92, 0x2d, 0x55, 0x7d, 0xd8, 0xb1,
333 0xb4, 0xb8, 0xa1, 0xd0, 0x91, 0x80, 0xf2, 0x70, 0xf3, 0x70, 0xf2, 0x7c, 0x80, 0xa8, 0xf1, 0x01,
334 0xb0, 0x98, 0x87, 0xd9, 0x43, 0xd8, 0x86, 0xc9, 0x88, 0xba, 0xa1, 0xf2, 0x0e, 0xb8, 0x97, 0x80,
335 0xf1, 0xa9, 0xdf, 0xdf, 0xdf, 0xaa, 0xdf, 0xdf, 0xdf, 0xf2, 0xaa, 0xc5, 0xcd, 0xc7, 0xa9, 0xc1,
336 0xc9, 0xc3, 0x97, 0xf1, 0xa9, 0x89, 0x26, 0x46, 0x66, 0xb0, 0xb4, 0xba, 0x80, 0xac, 0xde, 0xf2,
337 0xca, 0xf1, 0xb2, 0x8c, 0x02, 0xa9, 0xb6, 0x98, 0x00, 0x89, 0x0e, 0x16, 0x1e, 0xb8, 0xa9, 0xb4,
338 0x99, 0x2c, 0x54, 0x7c, 0xb0, 0x8a, 0xa8, 0x96, 0x36, 0x56, 0x76, 0xf1, 0xb9, 0xaf, 0xb4, 0xb0,
339 0x83, 0xc0, 0xb8, 0xa8, 0x97, 0x11, 0xb1, 0x8f, 0x98, 0xb9, 0xaf, 0xf0, 0x24, 0x08, 0x44, 0x10,
340 0x64, 0x18, 0xf1, 0xa3, 0x29, 0x55, 0x7d, 0xaf, 0x83, 0xb5, 0x93, 0xaf, 0xf0, 0x00, 0x28, 0x50,
341 0xf1, 0xa3, 0x86, 0x9f, 0x61, 0xa6, 0xda, 0xde, 0xdf, 0xd9, 0xfa, 0xa3, 0x86, 0x96, 0xdb, 0x31,
342 0xa6, 0xd9, 0xf8, 0xdf, 0xba, 0xa6, 0x8f, 0xc2, 0xc5, 0xc7, 0xb2, 0x8c, 0xc1, 0xb8, 0xa2, 0xdf,
343 0xdf, 0xdf, 0xa3, 0xdf, 0xdf, 0xdf, 0xd8, 0xd8, 0xf1, 0xb8, 0xa8, 0xb2, 0x86, 0xb4, 0x98, 0x0d,
344 0x35, 0x5d, 0xb8, 0xaa, 0x98, 0xb0, 0x87, 0x2d, 0x35, 0x3d, 0xb2, 0xb6, 0xba, 0xaf, 0x8c, 0x96,
345 0x19, 0x8f, 0x9f, 0xa7, 0x0e, 0x16, 0x1e, 0xb4, 0x9a, 0xb8, 0xaa, 0x87, 0x2c, 0x54, 0x7c, 0xb9,
346 0xa3, 0xde, 0xdf, 0xdf, 0xa3, 0xb1, 0x80, 0xf2, 0xc4, 0xcd, 0xc9, 0xf1, 0xb8, 0xa9, 0xb4, 0x99,
347 0x83, 0x0d, 0x35, 0x5d, 0x89, 0xb9, 0xa3, 0x2d, 0x55, 0x7d, 0xb5, 0x93, 0xa3, 0x0e, 0x16, 0x1e,
348 0xa9, 0x2c, 0x54, 0x7c, 0xb8, 0xb4, 0xb0, 0xf1, 0x97, 0x83, 0xa8, 0x11, 0x84, 0xa5, 0x09, 0x98,
349 0xa3, 0x83, 0xf0, 0xda, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xd8, 0xf1, 0xa5, 0x29, 0x55, 0x7d,
350 0xa5, 0x85, 0x95, 0x02, 0x1a, 0x2e, 0x3a, 0x56, 0x5a, 0x40, 0x48, 0xf9, 0xf3, 0xa3, 0xd9, 0xf8,
351 0xf0, 0x98, 0x83, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0x97, 0x82, 0xa8, 0xf1, 0x11, 0xf0, 0x98,
352 0xa2, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xda, 0xf3, 0xde, 0xd8, 0x83, 0xa5, 0x94, 0x01, 0xd9,
353 0xa3, 0x02, 0xf1, 0xa2, 0xc3, 0xc5, 0xc7, 0xd8, 0xf1, 0x84, 0x92, 0xa2, 0x4d, 0xda, 0x2a, 0xd8,
354 0x48, 0x69, 0xd9, 0x2a, 0xd8, 0x68, 0x55, 0xda, 0x32, 0xd8, 0x50, 0x71, 0xd9, 0x32, 0xd8, 0x70,
355 0x5d, 0xda, 0x3a, 0xd8, 0x58, 0x79, 0xd9, 0x3a, 0xd8, 0x78, 0x93, 0xa3, 0x4d, 0xda, 0x2a, 0xd8,
356 0x48, 0x69, 0xd9, 0x2a, 0xd8, 0x68, 0x55, 0xda, 0x32, 0xd8, 0x50, 0x71, 0xd9, 0x32, 0xd8, 0x70,
357 0x5d, 0xda, 0x3a, 0xd8, 0x58, 0x79, 0xd9, 0x3a, 0xd8, 0x78, 0xa8, 0x8a, 0x9a, 0xf0, 0x28, 0x50,
358 0x78, 0x9e, 0xf3, 0x88, 0x18, 0xf1, 0x9f, 0x1d, 0x98, 0xa8, 0xd9, 0x08, 0xd8, 0xc8, 0x9f, 0x12,
359 0x9e, 0xf3, 0x15, 0xa8, 0xda, 0x12, 0x10, 0xd8, 0xf1, 0xaf, 0xc8, 0x97, 0x87, 0x34, 0xb5, 0xb9,
360 0x94, 0xa4, 0x21, 0xf3, 0xd9, 0x22, 0xd8, 0xf2, 0x2d, 0xf3, 0xd9, 0x2a, 0xd8, 0xf2, 0x35, 0xf3,
361 0xd9, 0x32, 0xd8, 0x81, 0xa4, 0x60, 0x60, 0x61, 0xd9, 0x61, 0xd8, 0x6c, 0x68, 0x69, 0xd9, 0x69,
362 0xd8, 0x74, 0x70, 0x71, 0xd9, 0x71, 0xd8, 0xb1, 0xa3, 0x84, 0x19, 0x3d, 0x5d, 0xa3, 0x83, 0x1a,
363 0x3e, 0x5e, 0x93, 0x10, 0x30, 0x81, 0x10, 0x11, 0xb8, 0xb0, 0xaf, 0x8f, 0x94, 0xf2, 0xda, 0x3e,
364 0xd8, 0xb4, 0x9a, 0xa8, 0x87, 0x29, 0xda, 0xf8, 0xd8, 0x87, 0x9a, 0x35, 0xda, 0xf8, 0xd8, 0x87,
365 0x9a, 0x3d, 0xda, 0xf8, 0xd8, 0xb1, 0xb9, 0xa4, 0x98, 0x85, 0x02, 0x2e, 0x56, 0xa5, 0x81, 0x00,
366 0x0c, 0x14, 0xa3, 0x97, 0xb0, 0x8a, 0xf1, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d,
367 0xd9, 0x68, 0xd8, 0xb1, 0x84, 0x0d, 0xda, 0x0e, 0xd8, 0xa3, 0x29, 0x83, 0xda, 0x2c, 0x0e, 0xd8,
368 0xa3, 0x84, 0x49, 0x83, 0xda, 0x2c, 0x4c, 0x0e, 0xd8, 0xb8, 0xb0, 0xa8, 0x8a, 0x9a, 0xf5, 0x20,
369 0xaa, 0xda, 0xdf, 0xd8, 0xa8, 0x40, 0xaa, 0xd0, 0xda, 0xde, 0xd8, 0xa8, 0x60, 0xaa, 0xda, 0xd0,
370 0xdf, 0xd8, 0xf1, 0x97, 0x86, 0xa8, 0x31, 0x9b, 0x06, 0x99, 0x07, 0xab, 0x97, 0x28, 0x88, 0x9b,
371 0xf0, 0x0c, 0x20, 0x14, 0x40, 0xb8, 0xb0, 0xb4, 0xa8, 0x8c, 0x9c, 0xf0, 0x04, 0x28, 0x51, 0x79,
372 0x1d, 0x30, 0x14, 0x38, 0xb2, 0x82, 0xab, 0xd0, 0x98, 0x2c, 0x50, 0x50, 0x78, 0x78, 0x9b, 0xf1,
373 0x1a, 0xb0, 0xf0, 0x8a, 0x9c, 0xa8, 0x29, 0x51, 0x79, 0x8b, 0x29, 0x51, 0x79, 0x8a, 0x24, 0x70,
374 0x59, 0x8b, 0x20, 0x58, 0x71, 0x8a, 0x44, 0x69, 0x38, 0x8b, 0x39, 0x40, 0x68, 0x8a, 0x64, 0x48,
375 0x31, 0x8b, 0x30, 0x49, 0x60, 0xa5, 0x88, 0x20, 0x09, 0x71, 0x58, 0x44, 0x68, 0x11, 0x39, 0x64,
376 0x49, 0x30, 0x19, 0xf1, 0xac, 0x00, 0x2c, 0x54, 0x7c, 0xf0, 0x8c, 0xa8, 0x04, 0x28, 0x50, 0x78,
377 0xf1, 0x88, 0x97, 0x26, 0xa8, 0x59, 0x98, 0xac, 0x8c, 0x02, 0x26, 0x46, 0x66, 0xf0, 0x89, 0x9c,
378 0xa8, 0x29, 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xa9, 0x88, 0x09,
379 0x20, 0x59, 0x70, 0xab, 0x11, 0x38, 0x40, 0x69, 0xa8, 0x19, 0x31, 0x48, 0x60, 0x8c, 0xa8, 0x3c,
380 0x41, 0x5c, 0x20, 0x7c, 0x00, 0xf1, 0x87, 0x98, 0x19, 0x86, 0xa8, 0x6e, 0x76, 0x7e, 0xa9, 0x99,
381 0x88, 0x2d, 0x55, 0x7d, 0x9e, 0xb9, 0xa3, 0x8a, 0x22, 0x8a, 0x6e, 0x8a, 0x56, 0x8a, 0x5e, 0x9f,
382 0xb1, 0x83, 0x06, 0x26, 0x46, 0x66, 0x0e, 0x2e, 0x4e, 0x6e, 0x9d, 0xb8, 0xad, 0x00, 0x2c, 0x54,
383 0x7c, 0xf2, 0xb1, 0x8c, 0xb4, 0x99, 0xb9, 0xa3, 0x2d, 0x55, 0x7d, 0x81, 0x91, 0xac, 0x38, 0xad,
384 0x3a, 0xb5, 0x83, 0x91, 0xac, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d, 0xd9, 0x68,
385 0xd8, 0x8c, 0x9d, 0xae, 0x29, 0xd9, 0x04, 0xae, 0xd8, 0x51, 0xd9, 0x04, 0xae, 0xd8, 0x79, 0xd9,
386 0x04, 0xd8, 0x81, 0xf3, 0x9d, 0xad, 0x00, 0x8d, 0xae, 0x19, 0x81, 0xad, 0xd9, 0x01, 0xd8, 0xf2,
387 0xae, 0xda, 0x26, 0xd8, 0x8e, 0x91, 0x29, 0x83, 0xa7, 0xd9, 0xad, 0xad, 0xad, 0xad, 0xf3, 0x2a,
388 0xd8, 0xd8, 0xf1, 0xb0, 0xac, 0x89, 0x91, 0x3e, 0x5e, 0x76, 0xf3, 0xac, 0x2e, 0x2e, 0xf1, 0xb1,
389 0x8c, 0x5a, 0x9c, 0xac, 0x2c, 0x28, 0x28, 0x28, 0x9c, 0xac, 0x30, 0x18, 0xa8, 0x98, 0x81, 0x28,
390 0x34, 0x3c, 0x97, 0x24, 0xa7, 0x28, 0x34, 0x3c, 0x9c, 0x24, 0xf2, 0xb0, 0x89, 0xac, 0x91, 0x2c,
391 0x4c, 0x6c, 0x8a, 0x9b, 0x2d, 0xd9, 0xd8, 0xd8, 0x51, 0xd9, 0xd8, 0xd8, 0x79, 0xd9, 0xd8, 0xd8,
392 0xf1, 0x9e, 0x88, 0xa3, 0x31, 0xda, 0xd8, 0xd8, 0x91, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48,
393 0xd8, 0x6d, 0xd9, 0x68, 0xd8, 0xb1, 0x83, 0x93, 0x35, 0x3d, 0x80, 0x25, 0xda, 0xd8, 0xd8, 0x85,
394 0x69, 0xda, 0xd8, 0xd8, 0xb4, 0x93, 0x81, 0xa3, 0x28, 0x34, 0x3c, 0xf3, 0xab, 0x8b, 0xf8, 0xa3,
395 0x91, 0xb6, 0x09, 0xb4, 0xd9, 0xab, 0xde, 0xfa, 0xb0, 0x87, 0x9c, 0xb9, 0xa3, 0xdd, 0xf1, 0xa3,
396 0xa3, 0xa3, 0xa3, 0x95, 0xf1, 0xa3, 0xa3, 0xa3, 0x9d, 0xf1, 0xa3, 0xa3, 0xa3, 0xa3, 0xf2, 0xa3,
397 0xb4, 0x90, 0x80, 0xf2, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xb2, 0xa3, 0xa3, 0xa3, 0xa3,
398 0xa3, 0xa3, 0xb0, 0x87, 0xb5, 0x99, 0xf1, 0xa3, 0xa3, 0xa3, 0x98, 0xf1, 0xa3, 0xa3, 0xa3, 0xa3,
399 0x97, 0xa3, 0xa3, 0xa3, 0xa3, 0xf3, 0x9b, 0xa3, 0xa3, 0xdc, 0xb9, 0xa7, 0xf1, 0x26, 0x26, 0x26,
400 0xd8, 0xd8, 0xff
401 };
402
403 static unsigned short sStartAddress = 0x0300;
404
405
406 static tKeyLabel keys[NUM_KEYS];
407
inv_setup_dmpGetAddress(unsigned short key)408 static unsigned short inv_setup_dmpGetAddress( unsigned short key )
409 {
410 static int isSorted = 0;
411 if ( !isSorted ) {
412 int kk;
413 for (kk=0; kk<NUM_KEYS; ++kk) {
414 keys[ kk ].addr = 0xffff;
415 keys[ kk ].key = kk;
416 }
417 for (kk=0; kk<NUM_LOCAL_KEYS; ++kk) {
418 keys[ dmpTConfig[kk].key ].addr = dmpTConfig[kk].addr;
419 }
420 isSorted = 1;
421 }
422 if ( key >= NUM_KEYS )
423 return 0xffff;
424 return keys[ key ].addr;
425 }
426
427 /**
428 * @brief
429 * @return INV_SUCCESS or a non-zero error code.
430 */
inv_setup_dmp(void)431 inv_error_t inv_setup_dmp(void)
432
433 {
434 inv_error_t result;
435
436 inv_set_get_address(inv_setup_dmpGetAddress);
437 result = inv_clock_source(MPU_CLK_SEL_PLLGYROZ);
438 if (result) {
439 LOG_RESULT_LOCATION(result);
440 return result;
441 }
442 result = inv_dl_cfg_sampling(MPU_FILTER_42HZ, 4);
443 if (result) {
444 LOG_RESULT_LOCATION(result);
445 return result;
446 }
447 result = inv_set_full_scale(2000.f);
448 if (result) {
449 LOG_RESULT_LOCATION(result);
450 return result;
451 }
452 result = inv_load_dmp(dmpMemory, DMP_CODE_SIZE, sStartAddress);
453 if (result) {
454 LOG_RESULT_LOCATION(result);
455 return result;
456 }
457 result = inv_set_external_sync(MPU_EXT_SYNC_TEMP);
458 if (result) {
459 LOG_RESULT_LOCATION(result);
460 return result;
461 }
462
463 return result;
464 }
465 /**
466 *@}
467 */
468