mirror of https://github.com/rusefi/rusefi.git
auto-sync
This commit is contained in:
parent
ce3adc326f
commit
de3b9266f3
|
@ -220,6 +220,13 @@ static void printState(Engine *engine) {
|
||||||
#if EFI_SHAFT_POSITION_INPUT || defined(__DOXYGEN__)
|
#if EFI_SHAFT_POSITION_INPUT || defined(__DOXYGEN__)
|
||||||
printSensors(&logger, false, engine);
|
printSensors(&logger, false, engine);
|
||||||
|
|
||||||
|
// todo: make SWO work
|
||||||
|
// char *msg = "hello\r\n";
|
||||||
|
// for(int i=0;i<strlen(msg);i++) {
|
||||||
|
// ITM_SendChar(msg[i]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
|
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
|
||||||
|
|
||||||
int rpm = getRpmE(engine);
|
int rpm = getRpmE(engine);
|
||||||
|
@ -532,10 +539,11 @@ void updateTunerStudioState(Engine *engine, TunerStudioOutputChannels *tsOutputC
|
||||||
// engine state
|
// engine state
|
||||||
tsOutputChannels->rpm = rpm;
|
tsOutputChannels->rpm = rpm;
|
||||||
tsOutputChannels->coolant_temperature = coolant;
|
tsOutputChannels->coolant_temperature = coolant;
|
||||||
tsOutputChannels->intake_air_temperature = intake;
|
tsOutputChannels->intakeAirTemperature = intake;
|
||||||
tsOutputChannels->throttle_positon = tps;
|
tsOutputChannels->throttlePositon = tps;
|
||||||
tsOutputChannels->mass_air_flow = getMaf();
|
tsOutputChannels->massAirFlowVoltage = getMaf();
|
||||||
tsOutputChannels->air_fuel_ratio = getAfr();
|
tsOutputChannels->massAirFlowValue = getRealMaf();
|
||||||
|
tsOutputChannels->airFuelRatio = getAfr();
|
||||||
tsOutputChannels->v_batt = getVBatt(engineConfiguration);
|
tsOutputChannels->v_batt = getVBatt(engineConfiguration);
|
||||||
tsOutputChannels->tpsADC = getTPS10bitAdc(PASS_ENGINE_PARAMETER_F);
|
tsOutputChannels->tpsADC = getTPS10bitAdc(PASS_ENGINE_PARAMETER_F);
|
||||||
tsOutputChannels->atmospherePressure = getBaroPressure();
|
tsOutputChannels->atmospherePressure = getBaroPressure();
|
||||||
|
|
|
@ -32,10 +32,10 @@ typedef struct {
|
||||||
// primary instrument cluster gauges
|
// primary instrument cluster gauges
|
||||||
int rpm; // size 4, offset 0
|
int rpm; // size 4, offset 0
|
||||||
float coolant_temperature; // size 4, offset 4
|
float coolant_temperature; // size 4, offset 4
|
||||||
float intake_air_temperature; // size 4, offset 8
|
float intakeAirTemperature; // size 4, offset 8
|
||||||
float throttle_positon; // size 4, offset 12
|
float throttlePositon; // size 4, offset 12
|
||||||
float mass_air_flow; // size 4, offset 16
|
float massAirFlowVoltage; // size 4, offset 16
|
||||||
float air_fuel_ratio; // size 4, offset 20
|
float airFuelRatio; // size 4, offset 20
|
||||||
float engineLoad; // size 4, offset 24
|
float engineLoad; // size 4, offset 24
|
||||||
float v_batt; // size 4, offset 28
|
float v_batt; // size 4, offset 28
|
||||||
short int tpsADC; // size 2, offset 32
|
short int tpsADC; // size 2, offset 32
|
||||||
|
@ -81,7 +81,8 @@ typedef struct {
|
||||||
int tsConfigVersion;
|
int tsConfigVersion;
|
||||||
egt_values_s egtValues;
|
egt_values_s egtValues;
|
||||||
float rpmAcceleration;
|
float rpmAcceleration;
|
||||||
int unused3[2];
|
float massAirFlowValue;
|
||||||
|
int unused3[1];
|
||||||
} TunerStudioOutputChannels;
|
} TunerStudioOutputChannels;
|
||||||
|
|
||||||
#endif /* TUNERSTUDIO_CONFIGURATION_H_ */
|
#endif /* TUNERSTUDIO_CONFIGURATION_H_ */
|
||||||
|
|
|
@ -763,7 +763,7 @@ static void setSpiMode(int index, bool mode) {
|
||||||
scheduleMsg(&logger, "invalid spi index %d", index);
|
scheduleMsg(&logger, "invalid spi index %d", index);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
scheduleMsg(&logger, "spi %d mode: %s", index, boolToString(mode));
|
printSpiState(&logger, boardConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void enableOrDisable(const char *param, bool isEnabled) {
|
static void enableOrDisable(const char *param, bool isEnabled) {
|
||||||
|
|
|
@ -136,6 +136,24 @@ char *getFirmwareError(void) {
|
||||||
return (char*) errorMessageBuffer;
|
return (char*) errorMessageBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void swo_init()
|
||||||
|
{
|
||||||
|
// todo: make SWO work
|
||||||
|
// uint32_t SWOSpeed = 2000000; //2000kbps, default for ST-LINK
|
||||||
|
// // todo: use a macro to access clock speed
|
||||||
|
// uint32_t SWOPrescaler = (168000000 / SWOSpeed) - 1; // SWOSpeed in Hz, note that F_CPU is expected to be 96000000 in this case
|
||||||
|
// CoreDebug->DEMCR = CoreDebug_DEMCR_TRCENA_Msk;
|
||||||
|
// *((volatile unsigned *)(ITM_BASE + 0x400F0)) = 0x00000002; // "Selected PIN Protocol Register": Select which protocol to use for trace output (2: SWO)
|
||||||
|
// *((volatile unsigned *)(ITM_BASE + 0x40010)) = SWOPrescaler; // "Async Clock Prescaler Register". Scale the baud rate of the asynchronous output
|
||||||
|
// *((volatile unsigned *)(ITM_BASE + 0x00FB0)) = 0xC5ACCE55; // ITM Lock Access Register, C5ACCE55 enables more write access to Control Register 0xE00 :: 0xFFC
|
||||||
|
// ITM->TCR = ITM_TCR_TraceBusID_Msk | ITM_TCR_SWOENA_Msk | ITM_TCR_SYNCENA_Msk | ITM_TCR_ITMENA_Msk; // ITM Trace Control Register
|
||||||
|
// ITM->TPR = ITM_TPR_PRIVMASK_Msk; // ITM Trace Privilege Register
|
||||||
|
// ITM->TER = 0x00000001; // ITM Trace Enable Register. Enabled tracing on stimulus ports. One bit per stimulus port.
|
||||||
|
// *((volatile unsigned *)(ITM_BASE + 0x01000)) = 0x400003FE; // DWT_CTRL
|
||||||
|
// *((volatile unsigned *)(ITM_BASE + 0x40304)) = 0x00000100; // Formatter and Flush Control Register
|
||||||
|
}
|
||||||
|
|
||||||
void runRusEfi(void) {
|
void runRusEfi(void) {
|
||||||
msObjectInit(&firmwareErrorMessageStream, errorMessageBuffer, sizeof(errorMessageBuffer), 0);
|
msObjectInit(&firmwareErrorMessageStream, errorMessageBuffer, sizeof(errorMessageBuffer), 0);
|
||||||
|
|
||||||
|
@ -147,6 +165,8 @@ void runRusEfi(void) {
|
||||||
|
|
||||||
initErrorHandling();
|
initErrorHandling();
|
||||||
|
|
||||||
|
swo_init();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* First data structure keeps track of which hardware I/O pins are used by whom
|
* First data structure keeps track of which hardware I/O pins are used by whom
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue