1895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/*
2895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall $License:
3895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall   Copyright 2011 InvenSense, Inc.
4895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
5895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Licensed under the Apache License, Version 2.0 (the "License");
6895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall you may not use this file except in compliance with the License.
7895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall You may obtain a copy of the License at
8895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
9895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall http://www.apache.org/licenses/LICENSE-2.0
10895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
11895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Unless required by applicable law or agreed to in writing, software
12895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall distributed under the License is distributed on an "AS IS" BASIS,
13895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall See the License for the specific language governing permissions and
15895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall limitations under the License.
16895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall  $
17895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
18895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
19895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/* WARNING: autogenerated code, do not modify */
20895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/**
21895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * @defgroup DMPDEFAULT
22895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * @brief
23895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *
24895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * @{
25895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * @file     inv_setup_dmpMantis.c
26895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * @brief
27895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *
28895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *
29895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
30895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
31895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mltypes.h"
32895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "dmpDefault.h"
33895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "dmpKey.h"
34895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "dmpmap.h"
35895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mldl.h"
36895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
37895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_25  1786
38895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_24  1782
39895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_26  1790
40895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_21  1899
41895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_20  1728
42895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_23  1911
43895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP4  1905
44895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP5  1906
45895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP6  1907
46895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_1  1865
47895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP0  1899
48895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP1  1901
49895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP2  1902
50895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_SAVE_ACCB  1770
51895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_IRQ_1  1798
52895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_IRQ_2  1821
53895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_IRQ_3  1826
54895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_MAG_VAL  774
55895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_QUANTIZE  1730
56895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_3  936
57895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_1  891
58895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ACCEL_FILTER  1076
59895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_2  895
60895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3D  1629
61895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_7  902
62895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3C  1627
63895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_5  1030
64895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_4  880
65895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3B  1625
66895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_JERK  1722
67895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_6  954
68895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_12  1894
69895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP7  1908
70895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_14  1871
71895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_15  1876
72895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_16  1912
73895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_CLEAR_STICKY  1914
74895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_6  1920
75895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_7  1014
76895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_4  1634
77895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_5  1831
78895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3  1623
79895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_GYRO_SOURCE  1859
80895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP3  1903
81895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_EXTERNAL  1884
82895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_8  1854
83895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_9  1860
84895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_2  1816
85895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_1  1796
86895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_MOTION_BIAS  1023
87895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_MAG_MOV  791
88895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define TEMPLABEL  1491
89895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_ACCEL_INIT  847
90895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
91895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
92895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_22  (22+512)
93895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_24  (24+512)
94895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
95895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_36  (36)
96895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_52  (52)
97895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_96  (96)
98895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_104 (104)
99895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_108 (108)
100895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_163 (163)
101895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_188 (188)
102895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_192 (192)
103895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_224 (224)
104895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_228 (228)
105895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_232 (232)
106895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_236 (236)
107895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
108895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_2 (256 + 2)
109895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_4 (256 + 4)
110895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_8 (256 + 8)
111895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_10 (256 + 10)
112895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_24 (256 + 24)
113895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_28 (256 + 28)
114895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_92 (256 + 92)
115895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_96 (256 + 96)
116895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_98 (256 + 98)
117895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_106 (256 + 106)
118895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_108 (256 + 108)
119895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_112 (256 + 112)
120895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_128 (256 + 144)
121895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_152 (256 + 12)
122895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_168 (256 + 168)
123895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_175 (256 + 175)
124895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_178 (256 + 178)
125895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_236 (256 + 236)
126895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_244 (256 + 244)
127895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_2_12  (512+12)
128895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_2_96  (512+96)
129895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_2_108 (512+108)
130895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_2_244 (512+244)
131895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_2_248 (512+248)
132895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_2_252 (512+252)
133895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
134895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_BIAS_X (35*16+4)
135895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_BIAS_Y (35*16+8)
136895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_BIAS_Z (35*16+12)
137895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_00 (36*16)
138895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_01 (36*16+4)
139895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_02 (36*16+8)
140895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_10 (36*16+12)
141895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_11 (37*16)
142895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_12 (37*16+4)
143895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_20 (37*16+8)
144895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_21 (37*16+12)
145895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CPASS_MTX_22 (43*16+12)
146895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_ACT0    (40*16)
147895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_ACSX   (40*16+4)
148895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_ACSY   (40*16+8)
149895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_ACSZ   (40*16+12)
150895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
151895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic const tKeyLabel dmpTConfig[] = {
152895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_25, CFG_25},
153895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_24, CFG_24},
154895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_26, CFG_26},
155895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_21, CFG_21},
156895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_20, CFG_20},
157895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_23, CFG_23},
158895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP4, CFG_TAP4},
159895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP5, CFG_TAP5},
160895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP6, CFG_TAP6},
161895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_1, CFG_1},
162895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP0, CFG_TAP0},
163895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP1, CFG_TAP1},
164895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP2, CFG_TAP2},
165895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_SAVE_ACCB, CFG_TAP_SAVE_ACCB},
166895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_IRQ_1, CFG_ORIENT_IRQ_1},
167895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_IRQ_2, CFG_ORIENT_IRQ_2},
168895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_IRQ_3, CFG_ORIENT_IRQ_3},
169895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_MAG_VAL, FCFG_MAG_VAL},
170895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_QUANTIZE, CFG_TAP_QUANTIZE},
171895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_3, FCFG_3},
172895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_1, FCFG_1},
173895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall//    {KEY_CFG_ACCEL_FILTER, CFG_ACCEL_FILTER},
174895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_2, FCFG_2},
175895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3D, CFG_3D},
176895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_7, FCFG_7},
177895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3C, CFG_3C},
178895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_5, FCFG_5},
179895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_4, FCFG_4},
180895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3B, CFG_3B},
181895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_JERK, CFG_TAP_JERK},
182895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_6, FCFG_6},
183895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_12, CFG_12},
184895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP7, CFG_TAP7},
185895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_14, CFG_14},
186895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_15, CFG_15},
187895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_16, CFG_16},
188895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_CLEAR_STICKY, CFG_TAP_CLEAR_STICKY},
189895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_6, CFG_6},
190895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_7, CFG_7},
191895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_4, CFG_4},
192895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_5, CFG_5},
193895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3, CFG_3},
194895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_GYRO_SOURCE, CFG_GYRO_SOURCE},
195895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP3, CFG_TAP3},
196895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_EXTERNAL, CFG_EXTERNAL},
197895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_8, CFG_8},
198895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_9, CFG_9},
199895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_2, CFG_ORIENT_2},
200895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_1, CFG_ORIENT_1},
201895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_MOTION_BIAS, CFG_MOTION_BIAS},
202895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_MAG_MOV, FCFG_MAG_MOV},
203895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall//    {KEY_TEMPLABEL, TEMPLABEL},
204895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_ACCEL_INIT, FCFG_ACCEL_INIT},
205895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_22, D_0_22},
206895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_24, D_0_24},
207895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_36, D_0_36},
208895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_52, D_0_52},
209895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_96, D_0_96},
210895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_104, D_0_104},
211895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_108, D_0_108},
212895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_163, D_0_163},
213895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_188, D_0_188},
214895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_192, D_0_192},
215895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_224, D_0_224},
216895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_228, D_0_228},
217895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_232, D_0_232},
218895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_236, D_0_236},
219895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
220895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_PREVPTAT, DMP_PREVPTAT},
221895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_2, D_1_2},
222895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_4, D_1_4},
223895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_8, D_1_8},
224895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_10, D_1_10},
225895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_24, D_1_24},
226895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_28, D_1_28},
227895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_92, D_1_92},
228895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_96, D_1_96},
229895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_98, D_1_98},
230895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_106, D_1_106},
231895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_108, D_1_108},
232895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_112, D_1_112},
233895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_128, D_1_128},
234895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_152, D_1_152},
235895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_168, D_1_168},
236895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_175, D_1_175},
237895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_178, D_1_178},
238895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_236, D_1_236},
239895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_244, D_1_244},
240895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
241895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_2_12,  D_2_12},
242895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_2_96,  D_2_96},
243895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_2_108, D_2_108},
244895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_2_244, D_2_244},
245895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_2_248, D_2_248},
246895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_2_252, D_2_252},
247895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
248895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAPW_MIN, DMP_TAPW_MIN},
249895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAP_THR_X, DMP_TAP_THX},
250895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAP_THR_Y, DMP_TAP_THY},
251895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAP_THR_Z, DMP_TAP_THZ},
252895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_SH_TH_Y, DMP_SH_TH_Y},
253895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_SH_TH_X, DMP_SH_TH_X},
254895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_SH_TH_Z, DMP_SH_TH_Z},
255895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_ORIENT, DMP_ORIENT},
256895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
257895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_BIAS_X, CPASS_BIAS_X},
258895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_BIAS_Y, CPASS_BIAS_Y},
259895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_BIAS_Z, CPASS_BIAS_Z},
260895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_00, CPASS_MTX_00},
261895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_01, CPASS_MTX_01},
262895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_02, CPASS_MTX_02},
263895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_10, CPASS_MTX_10},
264895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_11, CPASS_MTX_11},
265895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_12, CPASS_MTX_12},
266895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_20, CPASS_MTX_20},
267895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_21, CPASS_MTX_21},
268895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CPASS_MTX_22, CPASS_MTX_22},
269895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_ACT0, D_ACT0},
270895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_ACSX, D_ACSX},
271895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_ACSY, D_ACSY},
272895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_ACSZ, D_ACSZ}
273895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall};
274895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define NUM_LOCAL_KEYS (sizeof(dmpTConfig)/sizeof(dmpTConfig[0]))
275895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
276895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define DMP_CODE_SIZE 1923
277895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
278895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic const unsigned char dmpMemory[DMP_CODE_SIZE] = {
279895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfb, 0x00, 0x00, 0x3e, 0x00, 0x0b, 0x00, 0x36, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00,
280895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0xfa, 0x80, 0x00, 0x0b, 0x12, 0x82, 0x00, 0x01,
281895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x45, 0x81, 0xff, 0xff, 0xfa, 0x72, 0x00, 0x00, 0x00, 0x00,
283895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x7f, 0xff, 0xff, 0xfe, 0x80, 0x01,
284895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
285895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x3e, 0x03, 0x30, 0x40, 0x00, 0x00, 0x00, 0x02, 0xca, 0xe3, 0x09, 0x3e, 0x80, 0x00, 0x00,
286895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
287895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x41, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x2a, 0x00, 0x00, 0x16, 0x55, 0x00, 0x00, 0x21, 0x82,
288895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfd, 0x87, 0x26, 0x50, 0xfd, 0x80, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x05, 0x80, 0x00,
289895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
290895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x6f, 0x00, 0x02, 0x65, 0x32, 0x00, 0x00, 0x5e, 0xc0,
291895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfb, 0x8c, 0x6f, 0x5d, 0xfd, 0x5d, 0x08, 0xd9, 0x00, 0x7c, 0x73, 0x3b, 0x00, 0x6c, 0x12, 0xcc,
293895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x32, 0x00, 0x13, 0x9d, 0x32, 0x00, 0xd0, 0xd6, 0x32, 0x00, 0x08, 0x00, 0x40, 0x00, 0x01, 0xf4,
294895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xff, 0xe6, 0x80, 0x79, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xd6, 0x00, 0x00, 0x27, 0x10,
295895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfb, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
297895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0xfa, 0x36, 0xff, 0xbc, 0x30, 0x8e, 0x00, 0x05, 0xfb, 0xf0, 0xff, 0xd9, 0x5b, 0xc8,
298895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xff, 0xd0, 0x9a, 0xbe, 0x00, 0x00, 0x10, 0xa9, 0xff, 0xf4, 0x1e, 0xb2, 0x00, 0xce, 0xbb, 0xf7,
299895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x0c,
300895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xff, 0xc2, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xcf, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00,
301895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x14,
302895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
303895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
304895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x68, 0xb6, 0x79, 0x35, 0x28, 0xbc, 0xc6, 0x7e, 0xd1, 0x6c,
306895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x6a, 0x00, 0x00, 0x00, 0x00,
307895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x30,
308895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
310895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x25, 0x4d, 0x00, 0x2f, 0x70, 0x6d, 0x00, 0x00, 0x05, 0xae, 0x00, 0x0c, 0x02, 0xd0,
311895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x54, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00,
313895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0xff, 0xef, 0x00, 0x00,
314895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
315895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
316895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
317895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
318895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
319895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
320895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
321895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
322895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
323895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
325895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
326895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
327895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
328895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0xdc, 0xba, 0xa2, 0xf1, 0xde, 0xb2, 0xb8, 0xb4, 0xa8, 0x81, 0x91, 0xf7, 0x4a, 0x90, 0x7f,
329895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x91, 0x6a, 0xf3, 0xf9, 0xdb, 0xa8, 0xf9, 0xb0, 0xba, 0xa0, 0x80, 0xf2, 0xce, 0x81, 0xf3, 0xc2,
330895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf1, 0xc1, 0xf2, 0xc3, 0xf3, 0xcc, 0xa2, 0xb2, 0x80, 0xf1, 0xc6, 0xd8, 0x80, 0xba, 0xa7, 0xdf,
331895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xdf, 0xdf, 0xf2, 0xa7, 0xc3, 0xcb, 0xc5, 0xb6, 0xf0, 0x87, 0xa2, 0x94, 0x24, 0x48, 0x70, 0x3c,
332895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x95, 0x40, 0x68, 0x34, 0x58, 0x9b, 0x78, 0xa2, 0xf1, 0x83, 0x92, 0x2d, 0x55, 0x7d, 0xd8, 0xb1,
333895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xb4, 0xb8, 0xa1, 0xd0, 0x91, 0x80, 0xf2, 0x70, 0xf3, 0x70, 0xf2, 0x7c, 0x80, 0xa8, 0xf1, 0x01,
334895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xb0, 0x98, 0x87, 0xd9, 0x43, 0xd8, 0x86, 0xc9, 0x88, 0xba, 0xa1, 0xf2, 0x0e, 0xb8, 0x97, 0x80,
335895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf1, 0xa9, 0xdf, 0xdf, 0xdf, 0xaa, 0xdf, 0xdf, 0xdf, 0xf2, 0xaa, 0xc5, 0xcd, 0xc7, 0xa9, 0xc1,
336895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xc9, 0xc3, 0x97, 0xf1, 0xa9, 0x89, 0x26, 0x46, 0x66, 0xb0, 0xb4, 0xba, 0x80, 0xac, 0xde, 0xf2,
337895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xca, 0xf1, 0xb2, 0x8c, 0x02, 0xa9, 0xb6, 0x98, 0x00, 0x89, 0x0e, 0x16, 0x1e, 0xb8, 0xa9, 0xb4,
338895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x99, 0x2c, 0x54, 0x7c, 0xb0, 0x8a, 0xa8, 0x96, 0x36, 0x56, 0x76, 0xf1, 0xb9, 0xaf, 0xb4, 0xb0,
339895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x83, 0xc0, 0xb8, 0xa8, 0x97, 0x11, 0xb1, 0x8f, 0x98, 0xb9, 0xaf, 0xf0, 0x24, 0x08, 0x44, 0x10,
340895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x64, 0x18, 0xf1, 0xa3, 0x29, 0x55, 0x7d, 0xaf, 0x83, 0xb5, 0x93, 0xaf, 0xf0, 0x00, 0x28, 0x50,
341895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf1, 0xa3, 0x86, 0x9f, 0x61, 0xa6, 0xda, 0xde, 0xdf, 0xd9, 0xfa, 0xa3, 0x86, 0x96, 0xdb, 0x31,
342895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa6, 0xd9, 0xf8, 0xdf, 0xba, 0xa6, 0x8f, 0xc2, 0xc5, 0xc7, 0xb2, 0x8c, 0xc1, 0xb8, 0xa2, 0xdf,
343895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xdf, 0xdf, 0xa3, 0xdf, 0xdf, 0xdf, 0xd8, 0xd8, 0xf1, 0xb8, 0xa8, 0xb2, 0x86, 0xb4, 0x98, 0x0d,
344895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x35, 0x5d, 0xb8, 0xaa, 0x98, 0xb0, 0x87, 0x2d, 0x35, 0x3d, 0xb2, 0xb6, 0xba, 0xaf, 0x8c, 0x96,
345895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x19, 0x8f, 0x9f, 0xa7, 0x0e, 0x16, 0x1e, 0xb4, 0x9a, 0xb8, 0xaa, 0x87, 0x2c, 0x54, 0x7c, 0xb9,
346895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0xde, 0xdf, 0xdf, 0xa3, 0xb1, 0x80, 0xf2, 0xc4, 0xcd, 0xc9, 0xf1, 0xb8, 0xa9, 0xb4, 0x99,
347895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x83, 0x0d, 0x35, 0x5d, 0x89, 0xb9, 0xa3, 0x2d, 0x55, 0x7d, 0xb5, 0x93, 0xa3, 0x0e, 0x16, 0x1e,
348895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa9, 0x2c, 0x54, 0x7c, 0xb8, 0xb4, 0xb0, 0xf1, 0x97, 0x83, 0xa8, 0x11, 0x84, 0xa5, 0x09, 0x98,
349895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0x83, 0xf0, 0xda, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xd8, 0xf1, 0xa5, 0x29, 0x55, 0x7d,
350895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa5, 0x85, 0x95, 0x02, 0x1a, 0x2e, 0x3a, 0x56, 0x5a, 0x40, 0x48, 0xf9, 0xf3, 0xa3, 0xd9, 0xf8,
351895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf0, 0x98, 0x83, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0x97, 0x82, 0xa8, 0xf1, 0x11, 0xf0, 0x98,
352895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa2, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xda, 0xf3, 0xde, 0xd8, 0x83, 0xa5, 0x94, 0x01, 0xd9,
353895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0x02, 0xf1, 0xa2, 0xc3, 0xc5, 0xc7, 0xd8, 0xf1, 0x84, 0x92, 0xa2, 0x4d, 0xda, 0x2a, 0xd8,
354895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x48, 0x69, 0xd9, 0x2a, 0xd8, 0x68, 0x55, 0xda, 0x32, 0xd8, 0x50, 0x71, 0xd9, 0x32, 0xd8, 0x70,
355895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x5d, 0xda, 0x3a, 0xd8, 0x58, 0x79, 0xd9, 0x3a, 0xd8, 0x78, 0x93, 0xa3, 0x4d, 0xda, 0x2a, 0xd8,
356895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x48, 0x69, 0xd9, 0x2a, 0xd8, 0x68, 0x55, 0xda, 0x32, 0xd8, 0x50, 0x71, 0xd9, 0x32, 0xd8, 0x70,
357895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x5d, 0xda, 0x3a, 0xd8, 0x58, 0x79, 0xd9, 0x3a, 0xd8, 0x78, 0xa8, 0x8a, 0x9a, 0xf0, 0x28, 0x50,
358895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x78, 0x9e, 0xf3, 0x88, 0x18, 0xf1, 0x9f, 0x1d, 0x98, 0xa8, 0xd9, 0x08, 0xd8, 0xc8, 0x9f, 0x12,
359895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x9e, 0xf3, 0x15, 0xa8, 0xda, 0x12, 0x10, 0xd8, 0xf1, 0xaf, 0xc8, 0x97, 0x87, 0x34, 0xb5, 0xb9,
360895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x94, 0xa4, 0x21, 0xf3, 0xd9, 0x22, 0xd8, 0xf2, 0x2d, 0xf3, 0xd9, 0x2a, 0xd8, 0xf2, 0x35, 0xf3,
361895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd9, 0x32, 0xd8, 0x81, 0xa4, 0x60, 0x60, 0x61, 0xd9, 0x61, 0xd8, 0x6c, 0x68, 0x69, 0xd9, 0x69,
362895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0x74, 0x70, 0x71, 0xd9, 0x71, 0xd8, 0xb1, 0xa3, 0x84, 0x19, 0x3d, 0x5d, 0xa3, 0x83, 0x1a,
363895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x3e, 0x5e, 0x93, 0x10, 0x30, 0x81, 0x10, 0x11, 0xb8, 0xb0, 0xaf, 0x8f, 0x94, 0xf2, 0xda, 0x3e,
364895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0xb4, 0x9a, 0xa8, 0x87, 0x29, 0xda, 0xf8, 0xd8, 0x87, 0x9a, 0x35, 0xda, 0xf8, 0xd8, 0x87,
365895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x9a, 0x3d, 0xda, 0xf8, 0xd8, 0xb1, 0xb9, 0xa4, 0x98, 0x85, 0x02, 0x2e, 0x56, 0xa5, 0x81, 0x00,
366895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x0c, 0x14, 0xa3, 0x97, 0xb0, 0x8a, 0xf1, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d,
367895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd9, 0x68, 0xd8, 0xb1, 0x84, 0x0d, 0xda, 0x0e, 0xd8, 0xa3, 0x29, 0x83, 0xda, 0x2c, 0x0e, 0xd8,
368895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0x84, 0x49, 0x83, 0xda, 0x2c, 0x4c, 0x0e, 0xd8, 0xb8, 0xb0, 0xa8, 0x8a, 0x9a, 0xf5, 0x20,
369895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xaa, 0xda, 0xdf, 0xd8, 0xa8, 0x40, 0xaa, 0xd0, 0xda, 0xde, 0xd8, 0xa8, 0x60, 0xaa, 0xda, 0xd0,
370895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xdf, 0xd8, 0xf1, 0x97, 0x86, 0xa8, 0x31, 0x9b, 0x06, 0x99, 0x07, 0xab, 0x97, 0x28, 0x88, 0x9b,
371895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf0, 0x0c, 0x20, 0x14, 0x40, 0xb8, 0xb0, 0xb4, 0xa8, 0x8c, 0x9c, 0xf0, 0x04, 0x28, 0x51, 0x79,
372895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x1d, 0x30, 0x14, 0x38, 0xb2, 0x82, 0xab, 0xd0, 0x98, 0x2c, 0x50, 0x50, 0x78, 0x78, 0x9b, 0xf1,
373895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x1a, 0xb0, 0xf0, 0x8a, 0x9c, 0xa8, 0x29, 0x51, 0x79, 0x8b, 0x29, 0x51, 0x79, 0x8a, 0x24, 0x70,
374895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x59, 0x8b, 0x20, 0x58, 0x71, 0x8a, 0x44, 0x69, 0x38, 0x8b, 0x39, 0x40, 0x68, 0x8a, 0x64, 0x48,
375895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x31, 0x8b, 0x30, 0x49, 0x60, 0xa5, 0x88, 0x20, 0x09, 0x71, 0x58, 0x44, 0x68, 0x11, 0x39, 0x64,
376895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x49, 0x30, 0x19, 0xf1, 0xac, 0x00, 0x2c, 0x54, 0x7c, 0xf0, 0x8c, 0xa8, 0x04, 0x28, 0x50, 0x78,
377895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf1, 0x88, 0x97, 0x26, 0xa8, 0x59, 0x98, 0xac, 0x8c, 0x02, 0x26, 0x46, 0x66, 0xf0, 0x89, 0x9c,
378895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa8, 0x29, 0x51, 0x79, 0x24, 0x70, 0x59, 0x44, 0x69, 0x38, 0x64, 0x48, 0x31, 0xa9, 0x88, 0x09,
379895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x20, 0x59, 0x70, 0xab, 0x11, 0x38, 0x40, 0x69, 0xa8, 0x19, 0x31, 0x48, 0x60, 0x8c, 0xa8, 0x3c,
380895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x41, 0x5c, 0x20, 0x7c, 0x00, 0xf1, 0x87, 0x98, 0x19, 0x86, 0xa8, 0x6e, 0x76, 0x7e, 0xa9, 0x99,
381895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x88, 0x2d, 0x55, 0x7d, 0x9e, 0xb9, 0xa3, 0x8a, 0x22, 0x8a, 0x6e, 0x8a, 0x56, 0x8a, 0x5e, 0x9f,
382895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xb1, 0x83, 0x06, 0x26, 0x46, 0x66, 0x0e, 0x2e, 0x4e, 0x6e, 0x9d, 0xb8, 0xad, 0x00, 0x2c, 0x54,
383895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x7c, 0xf2, 0xb1, 0x8c, 0xb4, 0x99, 0xb9, 0xa3, 0x2d, 0x55, 0x7d, 0x81, 0x91, 0xac, 0x38, 0xad,
384895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x3a, 0xb5, 0x83, 0x91, 0xac, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d, 0xd9, 0x68,
385895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0x8c, 0x9d, 0xae, 0x29, 0xd9, 0x04, 0xae, 0xd8, 0x51, 0xd9, 0x04, 0xae, 0xd8, 0x79, 0xd9,
386895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x04, 0xd8, 0x81, 0xf3, 0x9d, 0xad, 0x00, 0x8d, 0xae, 0x19, 0x81, 0xad, 0xd9, 0x01, 0xd8, 0xf2,
387895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xae, 0xda, 0x26, 0xd8, 0x8e, 0x91, 0x29, 0x83, 0xa7, 0xd9, 0xad, 0xad, 0xad, 0xad, 0xf3, 0x2a,
388895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0xd8, 0xf1, 0xb0, 0xac, 0x89, 0x91, 0x3e, 0x5e, 0x76, 0xf3, 0xac, 0x2e, 0x2e, 0xf1, 0xb1,
389895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x8c, 0x5a, 0x9c, 0xac, 0x2c, 0x28, 0x28, 0x28, 0x9c, 0xac, 0x30, 0x18, 0xa8, 0x98, 0x81, 0x28,
390895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x34, 0x3c, 0x97, 0x24, 0xa7, 0x28, 0x34, 0x3c, 0x9c, 0x24, 0xf2, 0xb0, 0x89, 0xac, 0x91, 0x2c,
391895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x4c, 0x6c, 0x8a, 0x9b, 0x2d, 0xd9, 0xd8, 0xd8, 0x51, 0xd9, 0xd8, 0xd8, 0x79, 0xd9, 0xd8, 0xd8,
392895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf1, 0x9e, 0x88, 0xa3, 0x31, 0xda, 0xd8, 0xd8, 0x91, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9, 0x48,
393895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0x6d, 0xd9, 0x68, 0xd8, 0xb1, 0x83, 0x93, 0x35, 0x3d, 0x80, 0x25, 0xda, 0xd8, 0xd8, 0x85,
394895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x69, 0xda, 0xd8, 0xd8, 0xb4, 0x93, 0x81, 0xa3, 0x28, 0x34, 0x3c, 0xf3, 0xab, 0x8b, 0xf8, 0xa3,
395895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x91, 0xb6, 0x09, 0xb4, 0xd9, 0xab, 0xde, 0xfa, 0xb0, 0x87, 0x9c, 0xb9, 0xa3, 0xdd, 0xf1, 0xa3,
396895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0xa3, 0xa3, 0x95, 0xf1, 0xa3, 0xa3, 0xa3, 0x9d, 0xf1, 0xa3, 0xa3, 0xa3, 0xa3, 0xf2, 0xa3,
397895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xb4, 0x90, 0x80, 0xf2, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xb2, 0xa3, 0xa3, 0xa3, 0xa3,
398895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0xa3, 0xb0, 0x87, 0xb5, 0x99, 0xf1, 0xa3, 0xa3, 0xa3, 0x98, 0xf1, 0xa3, 0xa3, 0xa3, 0xa3,
399895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x97, 0xa3, 0xa3, 0xa3, 0xa3, 0xf3, 0x9b, 0xa3, 0xa3, 0xdc, 0xb9, 0xa7, 0xf1, 0x26, 0x26, 0x26,
400895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0xd8, 0xff
401895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall};
402895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
403895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic unsigned short sStartAddress = 0x0300;
404895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
405895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
406895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic tKeyLabel keys[NUM_KEYS];
407895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
408895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic unsigned short inv_setup_dmpGetAddress( unsigned short key )
409895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall{
410895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    static int isSorted = 0;
411895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if ( !isSorted ) {
412895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        int kk;
413895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        for (kk=0; kk<NUM_KEYS; ++kk) {
414895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            keys[ kk ].addr = 0xffff;
415895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            keys[ kk ].key = kk;
416895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
417895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        for (kk=0; kk<NUM_LOCAL_KEYS; ++kk) {
418895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            keys[ dmpTConfig[kk].key ].addr = dmpTConfig[kk].addr;
419895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
420895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        isSorted = 1;
421895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
422895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if ( key >= NUM_KEYS )
423895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return 0xffff;
424895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    return keys[ key ].addr;
425895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall}
426895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
427895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/**
428895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @brief
429895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @return INV_SUCCESS or a non-zero error code.
430895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
431895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallinv_error_t inv_setup_dmp(void)
432895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
433895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall{
434895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    inv_error_t result;
435895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
436895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    inv_set_get_address(inv_setup_dmpGetAddress);
437895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_clock_source(MPU_CLK_SEL_PLLGYROZ);
438895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
439895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
440895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
441895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
442895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_dl_cfg_sampling(MPU_FILTER_42HZ, 4);
443895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
444895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
445895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
446895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
447895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_set_full_scale(2000.f);
448895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
449895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
450895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
451895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
452895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_load_dmp(dmpMemory, DMP_CODE_SIZE, sStartAddress);
453895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
454895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
455895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
456895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
457895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_set_external_sync(MPU_EXT_SYNC_TEMP);
458895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
459895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
460895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
461895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
462895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
463895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    return result;
464895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall}
465895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/**
466895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *@}
467895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
468