Dmitry Katsubo
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
5 additions and
8 deletions
-
Marlin/src/HAL/shared/backtrace/unwarm_arm.cpp
-
Marlin/src/HAL/shared/backtrace/unwarm_thumb.cpp
-
Marlin/src/lcd/dogm/u8g_dev_ssd1306_sh1106_128x64_I2C.cpp
|
|
@ -43,10 +43,9 @@ static bool isDataProc(uint32_t instr) { |
|
|
|
} |
|
|
|
|
|
|
|
UnwResult UnwStartArm(UnwState * const state) { |
|
|
|
bool found = false; |
|
|
|
uint16_t t = UNW_MAX_INSTR_COUNT; |
|
|
|
|
|
|
|
do { |
|
|
|
for (;;) { |
|
|
|
uint32_t instr; |
|
|
|
|
|
|
|
/* Attempt to read the instruction */ |
|
|
@ -527,7 +526,7 @@ UnwResult UnwStartArm(UnwState * const state) { |
|
|
|
|
|
|
|
if (--t == 0) return UNWIND_EXHAUSTED; |
|
|
|
|
|
|
|
} while (!found); |
|
|
|
} |
|
|
|
|
|
|
|
return UNWIND_UNSUPPORTED; |
|
|
|
} |
|
|
|
|
|
@ -30,12 +30,11 @@ static int32_t signExtend11(const uint16_t value) { |
|
|
|
} |
|
|
|
|
|
|
|
UnwResult UnwStartThumb(UnwState * const state) { |
|
|
|
bool found = false; |
|
|
|
uint16_t t = UNW_MAX_INSTR_COUNT; |
|
|
|
uint32_t lastJumpAddr = 0; // Last JUMP address, to try to detect infinite loops
|
|
|
|
bool loopDetected = false; // If a loop was detected
|
|
|
|
|
|
|
|
do { |
|
|
|
for (;;) { |
|
|
|
uint16_t instr; |
|
|
|
|
|
|
|
/* Attempt to read the instruction */ |
|
|
@ -1059,7 +1058,7 @@ UnwResult UnwStartThumb(UnwState * const state) { |
|
|
|
|
|
|
|
if (--t == 0) return UNWIND_EXHAUSTED; |
|
|
|
|
|
|
|
} while (!found); |
|
|
|
} |
|
|
|
|
|
|
|
return UNWIND_SUCCESS; |
|
|
|
} |
|
|
|
|
|
@ -245,9 +245,8 @@ u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c_2_wire = { u8g_dev_ssd1306_128x64_2x_2_w |
|
|
|
|
|
|
|
uint8_t u8g_WriteEscSeqP_2_wire(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq) { |
|
|
|
uint8_t is_escape = 0; |
|
|
|
uint8_t value; |
|
|
|
for (;;) { |
|
|
|
value = u8g_pgm_read(esc_seq); |
|
|
|
uint8_t value = u8g_pgm_read(esc_seq); |
|
|
|
if (is_escape == 0) { |
|
|
|
if (value != 255) { |
|
|
|
if (u8g_WriteByte(u8g, dev, value) == 0 ) |
|
|
|