00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef FILE_COMMS_CORE_H_SEEN
00027 #define FILE_COMMS_CORE_H_SEEN
00028
00029 #ifdef COMMSCORE_C
00030 #define EXTERN
00031 #else
00032 #define EXTERN extern
00033 #endif
00034
00035
00036 extern void hardReset(void);
00037
00038
00039 EXTERN unsigned short TXPacketLengthToSendCAN0;
00040 EXTERN unsigned short TXPacketLengthToSendSCI0;
00041 EXTERN unsigned char* TXBufferCurrentPositionHandler;
00042 EXTERN unsigned char* TXBufferCurrentPositionCAN0;
00043 EXTERN unsigned char* TXBufferCurrentPositionSCI0;
00044
00045
00046
00047 EXTERN unsigned char TXBufferInUseFlags;
00048 EXTERN unsigned char RXBufferContentSourceID;
00049
00050 #define COM_SET_SCI0_INTERFACE_ID BIT0
00051 #define COM_SET_CAN0_INTERFACE_ID BIT1
00052 #define COM_SET_SPARE2_INTERFACE_ID BIT2
00053 #define COM_SET_SPARE3_INTERFACE_ID BIT3
00054 #define COM_SET_SPARE4_INTERFACE_ID BIT4
00055 #define COM_SET_SPARE5_INTERFACE_ID BIT5
00056 #define COM_SET_SPARE6_INTERFACE_ID BIT6
00057 #define COM_SET_SPARE7_INTERFACE_ID BIT7
00058 #define COM_CLEAR_SCI0_INTERFACE_ID NBIT0
00059 #define COM_CLEAR_CAN0_INTERFACE_ID NBIT1
00060 #define COM_CLEAR_SPARE2_INTERFACE_ID NBIT2
00061 #define COM_CLEAR_SPARE3_INTERFACE_ID NBIT3
00062 #define COM_CLEAR_SPARE4_INTERFACE_ID NBIT4
00063 #define COM_CLEAR_SPARE5_INTERFACE_ID NBIT5
00064 #define COM_CLEAR_SPARE6_INTERFACE_ID NBIT6
00065 #define COM_CLEAR_SPARE7_INTERFACE_ID NBIT7
00066 #define CLEAR_ALL_SOURCE_ID_FLAGS ZEROS
00067
00068
00069
00070 EXTERN unsigned char RXStateFlags;
00071 EXTERN unsigned char* RXBufferCurrentPosition;
00072 EXTERN unsigned short RXPacketLengthReceived;
00073 EXTERN unsigned short RXCalculatedPayloadLength;
00074
00075
00076 #define RX_READY_TO_PROCESS BIT1
00077 #define RX_SCI_ESCAPED_NEXT BIT2
00078
00079
00080 #define RX_CLEAR_READY_TO_PROCESS NBIT1
00081 #define RX_SCI_NOT_ESCAPED_NEXT NBIT2
00082
00083
00084
00085
00086
00087
00088
00089
00090 #define SCICR2_RX_ENABLE BIT2
00091 #define SCICR2_TX_ENABLE BIT3
00092 #define SCICR2_RX_ISR_ENABLE BIT5
00093 #define SCICR2_TX_ISR_ENABLE BIT7
00094 #define SCICR2_RX_DISABLE NBIT2
00095 #define SCICR2_TX_DISABLE NBIT3
00096 #define SCICR2_RX_ISR_DISABLE NBIT5
00097 #define SCICR2_TX_ISR_DISABLE NBIT7
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110 EXTERN void decodePacketAndBuildResponse(void);
00111
00112
00113 EXTERN void resetReceiveState(unsigned char);
00114 EXTERN void lookupBlockDetails(unsigned short, blockDetails*);
00115
00116
00117
00118 EXTERN unsigned char RXHeaderFlags;
00119 EXTERN unsigned short RXHeaderPayloadID;
00120 EXTERN unsigned char RXHeaderSourceAddress;
00121 EXTERN unsigned short RXHeaderPayloadLength;
00122
00123
00124
00125
00126
00127
00128 #define HEADER_IS_PROTO BIT0
00129 #define HEADER_HAS_ACK BIT1
00130 #define HEADER_IS_NACK BIT2
00131 #define HEADER_HAS_ADDRS BIT3
00132 #define HEADER_HAS_LENGTH BIT4
00133 #define HEADER_USER_BIT_A BIT5
00134 #define HEADER_USER_BIT_B BIT6
00135 #define HEADER_USER_BIT_C BIT7
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149 #define requestInterfaceVersion 0
00150 #define requestFirmwareVersion 2
00151 #define requestMaxPacketSize 4
00152 #define requestEchoPacketReturn 6
00153 #define requestSoftSystemReset 8
00154
00155 #define requestHardSystemReset 10
00156
00157
00158
00159
00160 #define asyncErrorCodePacket 13
00161
00162 #define asyncDebugInfoPacket 15
00163
00164
00165
00166
00167
00168 #define replaceBlockInRAM 0
00169 #define replaceBlockInFlash 2
00170 #define retrieveBlockFromRAM 4
00171 #define retrieveBlockFromFlash 6
00172 #define burnBlockFromRamToFlash 8
00173
00174
00175 #define adjustMainTableCell 100
00176 #define adjustMainTableRPMAxis 102
00177 #define adjustMainTableLoadAxis 104
00178
00179
00180 #define adjust2dTableAxis 200
00181 #define adjust2dTableCell 202
00182 #define replace2dTableInRAM 204
00183
00184
00185 #define requestBasicDatalog 300
00186 #define requestAdjustableDatalog 302
00187
00188
00189 #define forwardPacketOverCAN 400
00190 #define forwardPacketOverUART 402
00191 #define invalidRAMLocationID 404
00192 #define invalidFlashLocationID 406
00193
00194
00195
00196 #define VETableMainFlashLocationID 0
00197 #define VETableMainFlash2LocationID 1
00198 #define VETableSecondaryFlashLocationID 2
00199 #define VETableSecondaryFlash2LocationID 3
00200 #define VETableTertiaryFlashLocationID 4
00201 #define VETableTertiaryFlash2LocationID 5
00202 #define LambdaTableFlashLocationID 6
00203 #define LambdaTableFlash2LocationID 7
00204
00205 #define IgnitionAdvanceTableMainFlashLocationID 8
00206 #define IgnitionAdvanceTableMainFlash2LocationID 9
00207 #define IgnitionAdvanceTableSecondaryFlashLocationID 10
00208 #define IgnitionAdvanceTableSecondaryFlash2LocationID 11
00209 #define InjectionAdvanceTableMainFlashLocationID 12
00210 #define InjectionAdvanceTableMainFlash2LocationID 13
00211 #define InjectionAdvanceTableSecondaryFlashLocationID 14
00212 #define InjectionAdvanceTableSecondaryFlash2LocationID 15
00213
00214 #define SmallTablesAFlashLocationID 16
00215 #define SmallTablesAFlash2LocationID 17
00216 #define SmallTablesBFlashLocationID 18
00217 #define SmallTablesBFlash2LocationID 19
00218 #define SmallTablesCFlashLocationID 20
00219 #define SmallTablesCFlash2LocationID 21
00220 #define SmallTablesDFlashLocationID 22
00221 #define SmallTablesDFlash2LocationID 23
00222
00223 #define FixedConfigLocationID 24
00224 #define FixedConfig2LocationID 25
00225 #define IATTransferTableLocationID 26
00226 #define CHTTransferTableLocationID 27
00227 #define MAFTransferTableLocationID 28
00228
00229
00230
00231
00232 #undef EXTERN
00233
00234 #else
00235
00236 #warning "Header file COMMS_CORE_H seen before, sort it out!"
00237
00238 #endif