#include "inc/freeEMS.h"
#include "inc/interrupts.h"
#include "inc/blockDetailsLookup.h"
Include dependency graph for blockDetailsLookup.c:
Go to the source code of this file.
Defines | |
#define | BLOCK_DETAILS_LOOKUP_C |
Functions | |
void | lookupBlockDetails (unsigned short locationID, blockDetails *details) |
#define BLOCK_DETAILS_LOOKUP_C |
Definition at line 24 of file blockDetailsLookup.c.
void lookupBlockDetails | ( | unsigned short | locationID, | |
blockDetails * | details | |||
) |
Definition at line 33 of file blockDetailsLookup.c.
References CHTTransferTableLocation, CHTTransferTableLocationID, dwellDesiredVersusVoltageTable2LocationID, dwellDesiredVersusVoltageTableLocationID, dwellMaxVersusRPMTable2LocationID, dwellMaxVersusRPMTableLocationID, engineTempEnrichmentTableFixed2LocationID, engineTempEnrichmentTableFixedLocationID, engineTempEnrichmentTablePercent2LocationID, engineTempEnrichmentTablePercentLocationID, fillerA2LocationID, fillerALocationID, fillerB2LocationID, fillerBLocationID, fillerC2LocationID, fillerCLocationID, fillerD2LocationID, fillerDLocationID, FixedConfig1LocationID, FixedConfig2LocationID, fixedConfigs1, fixedConfigs2, blockDetails::FlashAddress, blockDetails::FlashPage, FUELTABLES_PPAGE, IATTransferTableLocation, IATTransferTableLocationID, IgnitionAdvanceTableMain2LocationID, IgnitionAdvanceTableMainFlash2Location, IgnitionAdvanceTableMainFlashLocation, IgnitionAdvanceTableMainLocationID, IgnitionAdvanceTableSecondary2LocationID, IgnitionAdvanceTableSecondaryFlash2Location, IgnitionAdvanceTableSecondaryFlashLocation, IgnitionAdvanceTableSecondaryLocationID, InjectionAdvanceTableMain2LocationID, InjectionAdvanceTableMainFlash2Location, InjectionAdvanceTableMainFlashLocation, InjectionAdvanceTableMainLocationID, InjectionAdvanceTableSecondary2LocationID, InjectionAdvanceTableSecondaryFlash2Location, InjectionAdvanceTableSecondaryFlashLocation, InjectionAdvanceTableSecondaryLocationID, injectorDeadTimeTable2LocationID, injectorDeadTimeTableLocationID, LambdaTable2LocationID, LambdaTableFlash2Location, LambdaTableFlashLocation, LambdaTableLocationID, LOOKUP_PPAGE, MAFTransferTableLocation, MAFTransferTableLocationID, MAINTABLE_SIZE, perCylinderFuelTrims2LocationID, perCylinderFuelTrimsLocationID, postStartEnrichmentTable2LocationID, postStartEnrichmentTableLocationID, PPAGE, primingVolumeTable2LocationID, primingVolumeTableLocationID, blockDetails::RAMAddress, blockDetails::RAMPage, RPAGE_FUEL_ONE, RPAGE_FUEL_TWO, RPAGE_TIME_ONE, RPAGE_TIME_TWO, RPAGE_TUNE_ONE, RPAGE_TUNE_TWO, blockDetails::size, SmallTablesA2LocationID, SmallTablesAFlash2Location, SmallTablesAFlashLocation, SmallTablesALocationID, SmallTablesB2LocationID, SmallTablesBFlash2Location, SmallTablesBFlashLocation, SmallTablesBLocationID, SmallTablesC2LocationID, SmallTablesCFlash2Location, SmallTablesCFlashLocation, SmallTablesCLocationID, SmallTablesD2LocationID, SmallTablesDFlash2Location, SmallTablesDFlashLocation, SmallTablesDLocationID, TestTransferTableLocation, TestTransferTableLocationID, TIMETABLES_PPAGE, TransferTableSize, TUNETABLES_PPAGE, TWODTABLEUS_SIZE, VETableMain2LocationID, VETableMainFlash2Location, VETableMainFlashLocation, VETableMainLocationID, VETableSecondary2LocationID, VETableSecondaryFlash2Location, VETableSecondaryFlashLocation, VETableSecondaryLocationID, VETableTertiary2LocationID, VETableTertiaryFlash2Location, VETableTertiaryFlashLocation, and VETableTertiaryLocationID.
Referenced by decodePacketAndRespond().
00033 { 00034 /* Initialise the four values needed for operations on memory at 0 for error checking */ 00035 details->RAMPage = 0; 00036 details->FlashPage = 0; 00037 details->RAMAddress = 0; 00038 details->FlashAddress = 0; 00039 00040 /* Initialise the block size to 1024 to save code space and increase readability */ 00041 details->size = MAINTABLE_SIZE; 00042 00043 /* Look up the locations and set non default sizes */ 00044 switch (locationID) { 00045 /* flash only fixed conf full blocks */ 00046 case FixedConfig1LocationID: 00047 details->FlashPage = PPAGE; 00048 details->FlashAddress = (void*)&fixedConfigs1; 00049 break; 00050 case FixedConfig2LocationID: 00051 details->FlashPage = PPAGE; 00052 details->FlashAddress = (void*)&fixedConfigs2; 00053 break; 00054 00055 /* lookup tables */ 00056 case IATTransferTableLocationID: 00057 details->size = TransferTableSize; 00058 details->FlashPage = LOOKUP_PPAGE; 00059 details->FlashAddress = IATTransferTableLocation; 00060 break; 00061 case CHTTransferTableLocationID: 00062 details->size = TransferTableSize; 00063 details->FlashPage = LOOKUP_PPAGE; 00064 details->FlashAddress = CHTTransferTableLocation; 00065 break; 00066 case MAFTransferTableLocationID: 00067 details->size = TransferTableSize; 00068 details->FlashPage = LOOKUP_PPAGE; 00069 details->FlashAddress = MAFTransferTableLocation; 00070 break; 00071 case TestTransferTableLocationID: 00072 details->size = TransferTableSize; 00073 details->FlashPage = LOOKUP_PPAGE; 00074 details->FlashAddress = TestTransferTableLocation; 00075 break; 00076 00077 /* fuel tables */ 00078 case VETableMainLocationID: 00079 details->RAMPage = RPAGE_FUEL_ONE; 00080 details->FlashPage = FUELTABLES_PPAGE; 00081 details->RAMAddress = (void*)&TablesA; 00082 details->FlashAddress = VETableMainFlashLocation; 00083 break; 00084 case VETableMain2LocationID: 00085 details->RAMPage = RPAGE_FUEL_TWO; 00086 details->FlashPage = FUELTABLES_PPAGE; 00087 details->RAMAddress = (void*)&TablesA; 00088 details->FlashAddress = VETableMainFlash2Location; 00089 break; 00090 case VETableSecondaryLocationID: 00091 details->RAMPage = RPAGE_FUEL_ONE; 00092 details->FlashPage = FUELTABLES_PPAGE; 00093 details->RAMAddress = (void*)&TablesB; 00094 details->FlashAddress = VETableSecondaryFlashLocation; 00095 break; 00096 case VETableSecondary2LocationID: 00097 details->RAMPage = RPAGE_FUEL_TWO; 00098 details->FlashPage = FUELTABLES_PPAGE; 00099 details->RAMAddress = (void*)&TablesB; 00100 details->FlashAddress = VETableSecondaryFlash2Location; 00101 break; 00102 case VETableTertiaryLocationID: 00103 details->RAMPage = RPAGE_FUEL_ONE; 00104 details->FlashPage = FUELTABLES_PPAGE; 00105 details->RAMAddress = (void*)&TablesC; 00106 details->FlashAddress = VETableTertiaryFlashLocation; 00107 break; 00108 case VETableTertiary2LocationID: 00109 details->RAMPage = RPAGE_FUEL_TWO; 00110 details->FlashPage = FUELTABLES_PPAGE; 00111 details->RAMAddress = (void*)&TablesC; 00112 details->FlashAddress = VETableTertiaryFlash2Location; 00113 break; 00114 case LambdaTableLocationID: 00115 details->RAMPage = RPAGE_FUEL_ONE; 00116 details->FlashPage = FUELTABLES_PPAGE; 00117 details->RAMAddress = (void*)&TablesD; 00118 details->FlashAddress = LambdaTableFlashLocation; 00119 break; 00120 case LambdaTable2LocationID: 00121 details->RAMPage = RPAGE_FUEL_TWO; 00122 details->FlashPage = FUELTABLES_PPAGE; 00123 details->RAMAddress = (void*)&TablesD; 00124 details->FlashAddress = LambdaTableFlash2Location; 00125 break; 00126 00127 /* timing tables */ 00128 case IgnitionAdvanceTableMainLocationID: 00129 details->RAMPage = RPAGE_TIME_ONE; 00130 details->FlashPage = TIMETABLES_PPAGE; 00131 details->RAMAddress = (void*)&TablesA; 00132 details->FlashAddress = IgnitionAdvanceTableMainFlashLocation; 00133 break; 00134 case IgnitionAdvanceTableMain2LocationID: 00135 details->RAMPage = RPAGE_TIME_TWO; 00136 details->FlashPage = TIMETABLES_PPAGE; 00137 details->RAMAddress = (void*)&TablesA; 00138 details->FlashAddress = IgnitionAdvanceTableMainFlash2Location; 00139 break; 00140 case IgnitionAdvanceTableSecondaryLocationID: 00141 details->RAMPage = RPAGE_TIME_ONE; 00142 details->FlashPage = TIMETABLES_PPAGE; 00143 details->RAMAddress = (void*)&TablesB; 00144 details->FlashAddress = IgnitionAdvanceTableSecondaryFlashLocation; 00145 break; 00146 case IgnitionAdvanceTableSecondary2LocationID: 00147 details->RAMPage = RPAGE_TIME_TWO; 00148 details->FlashPage = TIMETABLES_PPAGE; 00149 details->RAMAddress = (void*)&TablesB; 00150 details->FlashAddress = IgnitionAdvanceTableSecondaryFlash2Location; 00151 break; 00152 case InjectionAdvanceTableMainLocationID: 00153 details->RAMPage = RPAGE_TIME_ONE; 00154 details->FlashPage = TIMETABLES_PPAGE; 00155 details->RAMAddress = (void*)&TablesC; 00156 details->FlashAddress = InjectionAdvanceTableMainFlashLocation; 00157 break; 00158 case InjectionAdvanceTableMain2LocationID: 00159 details->RAMPage = RPAGE_TIME_TWO; 00160 details->FlashPage = TIMETABLES_PPAGE; 00161 details->RAMAddress = (void*)&TablesC; 00162 details->FlashAddress = InjectionAdvanceTableMainFlash2Location; 00163 break; 00164 case InjectionAdvanceTableSecondaryLocationID: 00165 details->RAMPage = RPAGE_TIME_ONE; 00166 details->FlashPage = TIMETABLES_PPAGE; 00167 details->RAMAddress = (void*)&TablesD; 00168 details->FlashAddress = InjectionAdvanceTableSecondaryFlashLocation; 00169 break; 00170 case InjectionAdvanceTableSecondary2LocationID: 00171 details->RAMPage = RPAGE_TIME_TWO; 00172 details->FlashPage = TIMETABLES_PPAGE; 00173 details->RAMAddress = (void*)&TablesD; 00174 details->FlashAddress = InjectionAdvanceTableSecondaryFlash2Location; 00175 break; 00176 00177 /* small table full blocks */ 00178 case SmallTablesALocationID: 00179 details->RAMPage = RPAGE_TUNE_ONE; 00180 details->FlashPage = TUNETABLES_PPAGE; 00181 details->RAMAddress = (void*)&TablesA; 00182 details->FlashAddress = SmallTablesAFlashLocation; 00183 break; 00184 case SmallTablesA2LocationID: 00185 details->RAMPage = RPAGE_TUNE_TWO; 00186 details->FlashPage = TUNETABLES_PPAGE; 00187 details->RAMAddress = (void*)&TablesA; 00188 details->FlashAddress = SmallTablesAFlash2Location; 00189 break; 00190 case SmallTablesBLocationID: 00191 details->RAMPage = RPAGE_TUNE_ONE; 00192 details->FlashPage = TUNETABLES_PPAGE; 00193 details->RAMAddress = (void*)&TablesB; 00194 details->FlashAddress = SmallTablesBFlashLocation; 00195 break; 00196 case SmallTablesB2LocationID: 00197 details->RAMPage = RPAGE_TUNE_TWO; 00198 details->FlashPage = TUNETABLES_PPAGE; 00199 details->RAMAddress = (void*)&TablesB; 00200 details->FlashAddress = SmallTablesBFlash2Location; 00201 break; 00202 case SmallTablesCLocationID: 00203 details->RAMPage = RPAGE_TUNE_ONE; 00204 details->FlashPage = TUNETABLES_PPAGE; 00205 details->RAMAddress = (void*)&TablesC; 00206 details->FlashAddress = SmallTablesCFlashLocation; 00207 break; 00208 case SmallTablesC2LocationID: 00209 details->RAMPage = RPAGE_TUNE_TWO; 00210 details->FlashPage = TUNETABLES_PPAGE; 00211 details->RAMAddress = (void*)&TablesC; 00212 details->FlashAddress = SmallTablesCFlash2Location; 00213 break; 00214 case SmallTablesDLocationID: 00215 details->RAMPage = RPAGE_TUNE_ONE; 00216 details->FlashPage = TUNETABLES_PPAGE; 00217 details->RAMAddress = (void*)&TablesD; 00218 details->FlashAddress = SmallTablesDFlashLocation; 00219 break; 00220 case SmallTablesD2LocationID: 00221 details->RAMPage = RPAGE_TUNE_TWO; 00222 details->FlashPage = TUNETABLES_PPAGE; 00223 details->RAMAddress = (void*)&TablesD; 00224 details->FlashAddress = SmallTablesDFlash2Location; 00225 break; 00226 00227 /* TablesA small tables */ 00228 case dwellDesiredVersusVoltageTableLocationID: 00229 details->size = TWODTABLEUS_SIZE; 00230 details->RAMPage = RPAGE_TUNE_ONE; 00231 details->FlashPage = TUNETABLES_PPAGE; 00232 details->RAMAddress = (void*)&TablesA.SmallTablesA.dwellDesiredVersusVoltageTable; 00233 //details->FlashAddress = FlashLocation; 00234 break; 00235 case dwellDesiredVersusVoltageTable2LocationID: 00236 details->size = TWODTABLEUS_SIZE; 00237 details->RAMPage = RPAGE_TUNE_TWO; 00238 details->FlashPage = TUNETABLES_PPAGE; 00239 details->RAMAddress = (void*)&TablesA.SmallTablesA.dwellDesiredVersusVoltageTable; 00240 //details->FlashAddress = FlashLocation; 00241 break; 00242 case injectorDeadTimeTableLocationID: 00243 details->size = TWODTABLEUS_SIZE; 00244 details->RAMPage = RPAGE_TUNE_ONE; 00245 details->FlashPage = TUNETABLES_PPAGE; 00246 details->RAMAddress = (void*)&TablesA.SmallTablesA.injectorDeadTimeTable; 00247 //details->FlashAddress = FlashLocation; 00248 break; 00249 case injectorDeadTimeTable2LocationID: 00250 details->size = TWODTABLEUS_SIZE; 00251 details->RAMPage = RPAGE_TUNE_TWO; 00252 details->FlashPage = TUNETABLES_PPAGE; 00253 details->RAMAddress = (void*)&TablesA.SmallTablesA.injectorDeadTimeTable; 00254 //details->FlashAddress = FlashLocation; 00255 break; 00256 case postStartEnrichmentTableLocationID: 00257 details->size = TWODTABLEUS_SIZE; 00258 details->RAMPage = RPAGE_TUNE_ONE; 00259 details->FlashPage = TUNETABLES_PPAGE; 00260 details->RAMAddress = (void*)&TablesA.SmallTablesA.postStartEnrichmentTable; 00261 //details->FlashAddress = FlashLocation; 00262 break; 00263 case postStartEnrichmentTable2LocationID: 00264 details->size = TWODTABLEUS_SIZE; 00265 details->RAMPage = RPAGE_TUNE_TWO; 00266 details->FlashPage = TUNETABLES_PPAGE; 00267 details->RAMAddress = (void*)&TablesA.SmallTablesA.postStartEnrichmentTable; 00268 //details->FlashAddress = FlashLocation; 00269 break; 00270 case engineTempEnrichmentTableFixedLocationID: 00271 details->size = TWODTABLEUS_SIZE; 00272 details->RAMPage = RPAGE_TUNE_ONE; 00273 details->FlashPage = TUNETABLES_PPAGE; 00274 details->RAMAddress = (void*)&TablesA.SmallTablesA.engineTempEnrichmentTableFixed; 00275 //details->FlashAddress = FlashLocation; 00276 break; 00277 case engineTempEnrichmentTableFixed2LocationID: 00278 details->size = TWODTABLEUS_SIZE; 00279 details->RAMPage = RPAGE_TUNE_TWO; 00280 details->FlashPage = TUNETABLES_PPAGE; 00281 details->RAMAddress = (void*)&TablesA.SmallTablesA.engineTempEnrichmentTableFixed; 00282 //details->FlashAddress = FlashLocation; 00283 break; 00284 case primingVolumeTableLocationID: 00285 details->size = TWODTABLEUS_SIZE; 00286 details->RAMPage = RPAGE_TUNE_ONE; 00287 details->FlashPage = TUNETABLES_PPAGE; 00288 details->RAMAddress = (void*)&TablesA.SmallTablesA.primingVolumeTable; 00289 //details->FlashAddress = FlashLocation; 00290 break; 00291 case primingVolumeTable2LocationID: 00292 details->size = TWODTABLEUS_SIZE; 00293 details->RAMPage = RPAGE_TUNE_TWO; 00294 details->FlashPage = TUNETABLES_PPAGE; 00295 details->RAMAddress = (void*)&TablesA.SmallTablesA.primingVolumeTable; 00296 //details->FlashAddress = FlashLocation; 00297 break; 00298 case engineTempEnrichmentTablePercentLocationID: 00299 details->size = TWODTABLEUS_SIZE; 00300 details->RAMPage = RPAGE_TUNE_ONE; 00301 details->FlashPage = TUNETABLES_PPAGE; 00302 details->RAMAddress = (void*)&TablesA.SmallTablesA.engineTempEnrichmentTablePercent; 00303 //details->FlashAddress = FlashLocation; 00304 break; 00305 case engineTempEnrichmentTablePercent2LocationID: 00306 details->size = TWODTABLEUS_SIZE; 00307 details->RAMPage = RPAGE_TUNE_TWO; 00308 details->FlashPage = TUNETABLES_PPAGE; 00309 details->RAMAddress = (void*)&TablesA.SmallTablesA.engineTempEnrichmentTablePercent; 00310 //details->FlashAddress = FlashLocation; 00311 break; 00312 case dwellMaxVersusRPMTableLocationID: 00313 details->size = TWODTABLEUS_SIZE; 00314 details->RAMPage = RPAGE_TUNE_ONE; 00315 details->FlashPage = TUNETABLES_PPAGE; 00316 details->RAMAddress = (void*)&TablesA.SmallTablesA.dwellMaxVersusRPMTable; 00317 //details->FlashAddress = FlashLocation; 00318 break; 00319 case dwellMaxVersusRPMTable2LocationID: 00320 details->size = TWODTABLEUS_SIZE; 00321 details->RAMPage = RPAGE_TUNE_TWO; 00322 details->FlashPage = TUNETABLES_PPAGE; 00323 details->RAMAddress = (void*)&TablesA.SmallTablesA.dwellMaxVersusRPMTable; 00324 //details->FlashAddress = FlashLocation; 00325 break; 00326 00327 /* TablesB small tables */ 00328 case perCylinderFuelTrimsLocationID: 00329 details->size = 12; 00330 details->RAMPage = RPAGE_TUNE_ONE; 00331 details->FlashPage = TUNETABLES_PPAGE; 00332 details->RAMAddress = (void*)&TablesB.SmallTablesB.perCylinderFuelTrims; 00333 //details->FlashAddress = FlashLocation; 00334 break; 00335 case perCylinderFuelTrims2LocationID: 00336 details->size = 12; 00337 details->RAMPage = RPAGE_TUNE_TWO; 00338 details->FlashPage = TUNETABLES_PPAGE; 00339 details->RAMAddress = (void*)&TablesB.SmallTablesB.perCylinderFuelTrims; 00340 //details->FlashAddress = FlashLocation; 00341 break; 00342 00343 /* TablesC small tables */ 00344 // TODO 00345 00346 /* TablesD small tables */ 00347 // TODO 00348 00349 /* filler block entries */ 00350 case fillerALocationID: 00351 details->size = 576; 00352 details->RAMPage = RPAGE_TUNE_ONE; 00353 details->FlashPage = TUNETABLES_PPAGE; 00354 details->RAMAddress = (void*)&TablesA.SmallTablesA.filler; 00355 //details->FlashAddress = FlashLocation; 00356 break; 00357 case fillerA2LocationID: 00358 details->size = 576; 00359 details->RAMPage = RPAGE_TUNE_TWO; 00360 details->FlashPage = TUNETABLES_PPAGE; 00361 details->RAMAddress = (void*)&TablesA.SmallTablesA.filler; 00362 //details->FlashAddress = FlashLocation; 00363 break; 00364 case fillerBLocationID: 00365 details->size = 1012; 00366 details->RAMPage = RPAGE_TUNE_ONE; 00367 details->FlashPage = TUNETABLES_PPAGE; 00368 details->RAMAddress = (void*)&TablesB.SmallTablesB.filler; 00369 //details->FlashAddress = FlashLocation; 00370 break; 00371 case fillerB2LocationID: 00372 details->size = 1012; 00373 details->RAMPage = RPAGE_TUNE_TWO; 00374 details->FlashPage = TUNETABLES_PPAGE; 00375 details->RAMAddress = (void*)&TablesB.SmallTablesB.filler; 00376 //details->FlashAddress = FlashLocation; 00377 break; 00378 case fillerCLocationID: 00379 details->size = 1024; 00380 details->RAMPage = RPAGE_TUNE_ONE; 00381 details->FlashPage = TUNETABLES_PPAGE; 00382 details->RAMAddress = (void*)&TablesC.SmallTablesC.filler; 00383 //details->FlashAddress = FlashLocation; 00384 break; 00385 case fillerC2LocationID: 00386 details->size = 1024; 00387 details->RAMPage = RPAGE_TUNE_TWO; 00388 details->FlashPage = TUNETABLES_PPAGE; 00389 details->RAMAddress = (void*)&TablesC.SmallTablesC.filler; 00390 //details->FlashAddress = FlashLocation; 00391 break; 00392 case fillerDLocationID: 00393 details->size = 1024; 00394 details->RAMPage = RPAGE_TUNE_ONE; 00395 details->FlashPage = TUNETABLES_PPAGE; 00396 details->RAMAddress = (void*)&TablesD.SmallTablesD.filler; 00397 //details->FlashAddress = FlashLocation; 00398 break; 00399 00400 case fillerD2LocationID: 00401 details->size = 1024; 00402 details->RAMPage = RPAGE_TUNE_TWO; 00403 details->FlashPage = TUNETABLES_PPAGE; 00404 details->RAMAddress = (void*)&TablesD.SmallTablesD.filler; 00405 //details->FlashAddress = FlashLocation; 00406 break; 00407 } 00408 }