CI instability: FATAL error: warn stream not initialized for 6039

also some refactoring
fix #798
This commit is contained in:
rusefi 2019-08-04 13:48:10 -04:00
parent ce37530844
commit 36a8cf8ad4
12 changed files with 21 additions and 13 deletions

View File

@ -181,8 +181,13 @@ void onUnlockHook(void) {
#endif /* EFI_CLOCK_LOCKS */
void initErrorHandling(void) {
/**
* This method should be invoked really early in firmware initialization cycle.
*
* Implementation can only do trivial things like changing memory state. No hardware or OS access allowed
* within this method.
*/
void initErrorHandlingDataStructures(void) {
#if EFI_SIMULATOR || EFI_PROD_CODE
msObjectInit(&warningStream, (uint8_t *) warningBuffer, WARNING_BUFFER_SIZE, 0);
msObjectInit(&firmwareErrorMessageStream, errorMessageBuffer, sizeof(errorMessageBuffer), 0);

View File

@ -38,7 +38,7 @@ EXTERNC void firmwareError(obd_code_e code, const char *fmt, ...);
// todo: rename to getFatalErrorMessage
char *getFirmwareError(void);
void initErrorHandling(void);
void initErrorHandlingDataStructures(void);
// todo: rename to getWarningMessage?
char *getWarning(void);

View File

@ -19,7 +19,7 @@
EXTERN_ENGINE;
void baseHardwareInit(void) {
void baseMCUInit(void) {
}
void _unhandled_exception(void) {

View File

@ -48,7 +48,7 @@ BOR_Result_t BOR_Set(BOR_Level_t BORValue);
#define SPI_CR1_24BIT_MODE 0
#define SPI_CR2_24BIT_MODE 0
void baseHardwareInit(void);
void baseMCUInit(void);
void turnOnSpi(spi_device_e device);
#ifdef __cplusplus

View File

@ -22,7 +22,7 @@ typedef enum {
BOR_Level_t BOR_Get(void);
BOR_Result_t BOR_Set(BOR_Level_t BORValue);
void baseHardwareInit(void);
void baseMCUInit(void);
void turnOnSpi(spi_device_e device);
void jump_to_bootloader();

View File

@ -11,6 +11,6 @@
#define EFI_CAN_RX_AF 9
#define EFI_CAN_TX_AF 9
#define baseHardwareInit() {}
#define baseMCUInit() {}
#endif /* MPU_UTIL_H_ */

View File

@ -10,7 +10,7 @@
#include "global.h"
#define baseHardwareInit() {}
#define baseMCUInit() {}
void initSpiCs(SPIConfig *spiConfig, brain_pin_e csPin);

View File

@ -78,7 +78,7 @@ EXTERNC int getRemainingStack(thread_t *otp) {
#endif /* GNU / IAR */
void baseHardwareInit(void) {
void baseMCUInit(void) {
// looks like this holds a random value on start? Let's set a nice clean zero
DWT->CYCCNT = 0;

View File

@ -76,7 +76,7 @@ EXTERNC int getRemainingStack(thread_t *otp) {
#endif /* GNU / IAR */
void baseHardwareInit(void) {
void baseMCUInit(void) {
// looks like this holds a random value on start? Let's set a nice clean zero
DWT->CYCCNT = 0;

View File

@ -19,7 +19,10 @@ int main(void) {
halInit();
chSysInit();
baseHardwareInit();
/**
* most basic MCU initialization - no configuration access, no external hardware access
*/
baseMCUInit();
runRusEfi();
return 0;

View File

@ -162,11 +162,11 @@ static void scheduleReboot(void) {
}
void runRusEfi(void) {
initErrorHandlingDataStructures();
efiAssertVoid(CUSTOM_RM_STACK_1, getCurrentRemainingStack() > 512, "init s");
assertEngineReference();
engine->setConfig(config);
initIntermediateLoggingBuffer();
initErrorHandling();
addConsoleAction(CMD_REBOOT, scheduleReboot);
addConsoleAction(CMD_REBOOT_DFU, jump_to_bootloader);

View File

@ -92,12 +92,12 @@ static void runChprintfTest() {
void rusEfiFunctionalTest(void) {
printToConsole("Running rusEfi simulator version:");
initErrorHandlingDataStructures();
static char versionBuffer[20];
itoa10(versionBuffer, (int)getRusEfiVersion());
printToConsole(versionBuffer);
initIntermediateLoggingBuffer();
initErrorHandling();
engine->setConfig(config);