FreeEMS  0.2.0-SNAPSHOT-285-g028e24c
locationIDs.h
Go to the documentation of this file.
1 /* FreeEMS - the open source engine management system
2  *
3  * Copyright 2008-2013 Fred Cooke
4  *
5  * This file is part of the FreeEMS project.
6  *
7  * FreeEMS software is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * FreeEMS software is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with any FreeEMS software. If not, see http://www.gnu.org/licenses/
19  *
20  * We ask that if you make any changes to this file you email them upstream to
21  * us at admin(at)diyefi(dot)org or, even better, fork the code on github.com!
22  *
23  * Thank you for choosing FreeEMS to run your engine!
24  */
25 
26 
27 /** @file
28  *
29  * @ingroup allHeaders
30  */
31 
32 
33 /* Header file multiple inclusion protection courtesy eclipse Header Template */
34 /* and http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/ C pre processor manual */
35 #ifndef FILE_LOCATION_IDS_H_SEEN
36 #define FILE_LOCATION_IDS_H_SEEN
37 
38 
39 /* Big main tables */
40 /* Fueling tables */
41 #define VETableMainLocationID 0x0000
42 #define VETableMain2LocationID 0x0001
43 #define VETableSecondaryLocationID 0x0002
44 #define VETableSecondary2LocationID 0x0003
45 #define AirflowTableLocationID 0x0004
46 #define AirflowTable2LocationID 0x0005
47 #define LambdaTableLocationID 0x0006
48 #define LambdaTable2LocationID 0x0007
49 /* Timing tables */
50 #define IgnitionAdvanceTableMainLocationID 0x0008
51 #define IgnitionAdvanceTableMain2LocationID 0x0009
52 #define IgnitionAdvanceTableSecondaryLocationID 0x000A
53 #define IgnitionAdvanceTableSecondary2LocationID 0x000B
54 #define InjectionAdvanceTableMainLocationID 0x000C
55 #define InjectionAdvanceTableMain2LocationID 0x000D
56 #define InjectionAdvanceTableSecondaryLocationID 0x000E
57 #define InjectionAdvanceTableSecondary2LocationID 0x000F
58 
59 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
60 #define MainTable_TwoDTableUS_Border 0x0100
61 #endif
62 
63 /* twoDTableUS tables (TablesA) */
64 #define dwellDesiredVersusVoltageTableLocationID 0x0100
65 #define dwellDesiredVersusVoltageTable2LocationID 0x0101
66 #define injectorDeadTimeTableLocationID 0x0102
67 #define injectorDeadTimeTable2LocationID 0x0103
68 #define postStartEnrichmentTableLocationID 0x0104
69 #define postStartEnrichmentTable2LocationID 0x0105
70 #define engineTempEnrichmentTableFixedLocationID 0x0106
71 #define engineTempEnrichmentTableFixed2LocationID 0x0107
72 #define primingVolumeTableLocationID 0x0108
73 #define primingVolumeTable2LocationID 0x0109
74 #define engineTempEnrichmentTablePercentLocationID 0x010A
75 #define engineTempEnrichmentTablePercent2LocationID 0x010B
76 #define dwellVersusRPMTableLocationID 0x010C
77 #define dwellVersusRPMTable2LocationID 0x010D
78 #define blendVersusRPMTableLocationID 0x010E
79 #define blendVersusRPMTable2LocationID 0x010F
80 
81 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
82 #define TwoDTableUS_SmallTableFullBlocks_Border 0x3000
83 #endif
84 
85 /// TODO @todo Claim some RAM back for XGATE use?
86 /* TablesB */
87 /* TablesC */
88 /* TablesD */
89 
90 /* Tunable blocks */
91 #define SmallTablesALocationID 0x3000
92 #define SmallTablesA2LocationID 0x3001
93 #define SmallTablesBLocationID 0x3002
94 #define SmallTablesB2LocationID 0x3003
95 #define SmallTablesCLocationID 0x3004
96 #define SmallTablesC2LocationID 0x3005
97 #define SmallTablesDLocationID 0x3006
98 #define SmallTablesD2LocationID 0x3007
99 
100 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
101 #define SmallTableFullBlocks_SmallTableFillers_Border 0x4000
102 #endif
103 
104 /* Table block fillers */
105 #define fillerALocationID 0x4000
106 #define fillerA2LocationID 0x4001
107 #define fillerBLocationID 0x4002
108 #define fillerB2LocationID 0x4003
109 #define fillerCLocationID 0x4004
110 #define fillerC2LocationID 0x4005
111 #define fillerDLocationID 0x4006
112 #define fillerD2LocationID 0x4007
113 
114 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
115 #define SmallTableFillers_FlashLookupTables_Border 0x8000
116 #endif
117 
118 /* Flash ONLY lookup tables blocks */
119 #define IATTransferTableLocationID 0x8000 /* 2k */
120 #define CHTTransferTableLocationID 0x8001 /* 2k */
121 #define MAFTransferTableLocationID 0x8002 /* 2k */
122 #define TestTransferTableLocationID 0x8003 /* 2k */
123 
124 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
125 #define FlashLookupTables_SmallTableConfigs_Border 0x9000
126 #endif
127 
128 #define loggingSettingsLocationID 0x9000
129 #define loggingSettings2LocationID 0x9001
130 
131 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
132 #define SmallTableConfigs_FixedConfigBlocks_Border 0xA000
133 #endif
134 
135 /* Fixed configs whole */
136 #define FixedConfig1LocationID 0xA000
137 #define FixedConfig2LocationID 0xA001
138 
139 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
140 #define FixedConfigBlocks_FixedConfigSubBlocks_Border 0xC000
141 #endif
142 
143 /* Fixed config 1 sub sections */
144 #define engineSettingsLocationID 0xC000
145 #define serialSettingsLocationID 0xC001
146 #define coarseBBSettingsLocationID 0xC002
147 #define schedulingSettingsLocationID 0xC003
148 #define cutAndLimiterSettingsLocationID 0xC004
149 #define simpleGPIOSettingsLocationID 0xC005
150 #define userTextFieldLocationID 0xC100
151 
152 /* Fixed config 2 sub sections */
153 #define sensorSourcesLocationID 0xC020
154 #define sensorPresetsLocationID 0xC021
155 #define sensorRangesLocationID 0xC022
156 #define sensorSettingsLocationID 0xC023
157 #define algorithmSettingsLocationID 0xC024
158 #define inputOutputSettingsLocationID 0xC025
159 #define decoderSettingsLocationID 0xC026
160 #define userTextField2LocationID 0xC101
161 
162 #ifdef BLOCK_DETAILS_LOOKUP_C // only for here, external stuff should use the flags field for determining what to do/not do.
163 #define FixedConfigSubBlocks_Border_ReadOnlyVarBlocks 0xF000
164 #endif
165 
166 // Internal blocks of variables that are sometimes useful to read out
167 #define ADCRegistersLocationID 0xF000
168 #define coreVarsLocationID 0xF001
169 #define DerivedVarsLocationID 0xF002
170 #define KeyUserDebugLocationID 0xF003
171 #define CountersLocationID 0xF004
172 #define ClocksLocationID 0xF005
173 #define FlaggablesLocationID 0xF006
174 #define Flaggables2LocationID 0xF007
175 
176 
177 #else
178  /* let us know if we are being untidy with headers */
179  #warning "Header file LOCATION_IDS_H seen before, sort it out!"
180 /* end of the wrapper ifdef from the very top */
181 #endif