rusEFI
The most advanced open source ECU
|
Typedefs | |
typedef struct port_intctx | intctx_t |
Functions | |
static void | reset_and_jump (void) |
void | jump_to_bootloader () |
void | jump_to_openblt () |
BOR_Level_t | BOR_Get (void) |
BOR_Result_t | BOR_Set (BOR_Level_t BORValue) |
void | startWatchdog (int timeoutMs) |
void | setWatchdogResetPeriod (int resetMs) |
void | tryResetWatchdog () |
uint32_t | getMcuSerial () |
void | baseMCUInit () |
int | getRemainingStack (thread_t *otp) |
bool | isStm32F42x () |
PUBLIC_API_WEAK void | boardPrepareForStop () |
void | boardPreparePA0ForStandby () |
PUBLIC_API_WEAK void | boardPrepareForStandby () |
Variables | |
static efitimems_t | watchdogResetPeriodMs = 0 |
static const efitimems_t | watchdogCounterResetDelay = 3000 |
uint32_t | __main_stack_base__ |
typedef struct port_intctx intctx_t |
Definition at line 203 of file stm32_common.cpp.
void baseMCUInit | ( | ) |
Definition at line 191 of file stm32_common.cpp.
PUBLIC_API_WEAK void boardPrepareForStandby | ( | ) |
Definition at line 270 of file stm32_common.cpp.
Referenced by stm32_standby().
PUBLIC_API_WEAK void boardPrepareForStop | ( | ) |
Definition at line 237 of file stm32_common.cpp.
void boardPreparePA0ForStandby | ( | ) |
Standby uses special low power hardware - it always wakes on rising edge
Definition at line 246 of file stm32_common.cpp.
Referenced by boardPrepareForStandby().
BOR_Level_t BOR_Get | ( | void | ) |
Definition at line 82 of file stm32_common.cpp.
Referenced by BOR_Set().
BOR_Result_t BOR_Set | ( | BOR_Level_t | BORValue | ) |
Definition at line 92 of file stm32_common.cpp.
Referenced by baseMCUInit().
uint32_t getMcuSerial | ( | ) |
Definition at line 186 of file stm32_common.cpp.
Referenced by baseMCUInit().
int getRemainingStack | ( | thread_t * | otp | ) |
Of note is that interrupts are NOT serviced on the stack of the thread that was running when the interrupt occurred. The only thing that happens on that thread's stack is that its registers are pushed (by hardware) when an interrupt occurs, just before swapping the stack pointer out for the main stack (currently 0x400=1024 bytes), where the ISR actually runs. see also main_stack_size see also process_stack_size
see also http://www.chibios.org/dokuwiki/doku.php?id=chibios:kb:stacks
In the firmware we are using 'extern *Engine' - in the firmware Engine is a singleton
On the other hand, in order to have a meaningful unit test we are passing Engine * engine as a parameter
Definition at line 205 of file stm32_common.cpp.
bool isStm32F42x | ( | void | ) |
Definition at line 228 of file stm32_common.cpp.
void jump_to_bootloader | ( | ) |
Definition at line 59 of file stm32_common.cpp.
void jump_to_openblt | ( | ) |
Definition at line 68 of file stm32_common.cpp.
|
static |
Definition at line 39 of file stm32_common.cpp.
Referenced by jump_to_bootloader(), and jump_to_openblt().
void setWatchdogResetPeriod | ( | int | resetMs | ) |
Definition at line 156 of file stm32_common.cpp.
void startWatchdog | ( | int | timeoutMs | ) |
Definition at line 118 of file stm32_common.cpp.
void tryResetWatchdog | ( | ) |
Definition at line 163 of file stm32_common.cpp.
|
extern |
Referenced by getRemainingStack().
|
static |
Definition at line 154 of file stm32_common.cpp.
Referenced by tryResetWatchdog().
|
static |
Definition at line 152 of file stm32_common.cpp.
Referenced by setWatchdogResetPeriod(), and tryResetWatchdog().