blockDetailsLookup.c File Reference

#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 Documentation

#define BLOCK_DETAILS_LOOKUP_C

Definition at line 24 of file blockDetailsLookup.c.


Function Documentation

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 }


Generated on Mon Dec 22 21:29:23 2008 for freeems by  doxygen 1.5.2