The following is the memory map for the efi332 computer: /*** Memory Map ***/ /* * FFFFFF +------------------------+ * | | * to | TPU, QSM, SIM | * | | * FFF000 +------------------------+ * * 0C0000 +------------------------+ * | Stack (4k) | * +------------------------+ * | | * | Inputs, constants, | * | tables, variables | * | (room for ~60k) | * | | * 0B0800 +------------------------+ * | vbr, exception | * | tables (need 1k, | * | allow 2k) | * 0B0000 +------------------------+ * | | * | EFI Code | * | (room for ~190k) | * | | * | | * | SRAM=080000 to | * | 0C0000 (256k) | * 080000 +------------------------+ * * 040000 +------------------------+ * | EEPROM (256k) | * | | * | | * | | * 000400 | Start ROM Pgm | * | (see note) | * | | * |Err & intrpt vectrs | * | | * 000004 | Reset PC(=000400) | * 000000 | Reset SP(=FFFFFF(tpu)) | * +------------------------+ * To load the above memory the following must be done: 1. Load ROM: a. Do gnumake on fmu.c (a program that is loaded on 332 SRAM and writes to ROM.) The make produces the s-record file FMU.SR, which is loaded into SRAM (see program comments as to where to load). b. Do gnumake on rom_start.c and get ROMLD120, which is an s-record program to set basic registers and then jump to the main program. The ROMLD120 is the first thing exe- cuted from ROM at reset. First it is loaded into SRAM and fmu is executed. The latter writes ROMLD120 into ROM. Follow the instruction comments in rom_start. It is set up for 120 ns SRAM; if faster SRAM is available you can improve speed by cutting back the wait states. 2. Load constants, tables into SRAM. There are 3 blocks of data to be loaded starting at $0B0800. These are: a. The tuning and car specifics data in EFINPUT.DAT. The file EFINPUT.DOC is a full documentation version of the .DAT file, strictly for information. The data in this category is all changeable through the pc interface, but is loaded once just so there is some data there the first time the program runs. b. A few constants and message data, which will rarely be changed. This is in the file EFCONSTS.DAT. c. Coolant and air temperature sensor lookup tables ( A/D counts vs engineering units values). These are for the GM/ Electromotive sensors and the tables are based on a curvefit program. All 3 sets of data are in srec format in EFINPUT.SR. Just load this file at $0B0800. 3. Do a gnumake and load the main program, efibank.c, at $080000. The s-rec file for this is efibank and is already set for this location so just load from bdm with no offset. 4. Load and compile the program mainpc.c on any pc. This is the user interface program that talks to the efi332 through the serial port. The first position dip switch must be set UP on the efi board for this to work. The executable file is mainpc.exe. Before you can compile mainpc.c you need the include file rs232.c. This was freeware that I can supply when anyone gets to the point where they have tested the interface and want to change it. 5. At this point reset the efi332, type mainpc on the pc, and you should see the interface come up. Select monitor engine from the menu and you should see the clock update in the upper left corner. At this point you need a synch signal to the ecu to do anything meaningful. The synch signal must represent a 48 + 1 added tooth crank trigger wheel.