mirror of https://github.com/ARMmbed/mbed-os.git
Use mbed_error_printf instead of debug for ISR friendly prints
Internally in sleep tracing `debug` was used for trace prints, but all sleep API's are ISR safe and used in interrupts. This resulted in hardfaults / errors. Solution is to use `mbed_error_printf` instead for printing on UARTpull/9260/head
parent
f83e1d29d7
commit
7e5e5361bf
|
@ -20,14 +20,13 @@
|
|||
#include "platform/mbed_critical.h"
|
||||
#include "sleep_api.h"
|
||||
#include "platform/mbed_error.h"
|
||||
#include "platform/mbed_debug.h"
|
||||
#include "platform/mbed_stats.h"
|
||||
#include "us_ticker_api.h"
|
||||
#include "lp_ticker_api.h"
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include "platform/mbed_stats.h"
|
||||
|
||||
#include "platform/mbed_interface.h"
|
||||
|
||||
#if DEVICE_SLEEP
|
||||
|
||||
|
@ -105,14 +104,14 @@ static sleep_statistic_t *sleep_tracker_add(const char *const filename)
|
|||
}
|
||||
}
|
||||
|
||||
debug("No free indexes left to use in mbed sleep tracker.\r\n");
|
||||
mbed_error_printf("No free indexes left to use in mbed sleep tracker.\r\n");
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void sleep_tracker_print_stats(void)
|
||||
{
|
||||
debug("Sleep locks held:\r\n");
|
||||
mbed_error_printf("Sleep locks held:\r\n");
|
||||
for (int i = 0; i < STATISTIC_COUNT; ++i) {
|
||||
if (sleep_stats[i].count == 0) {
|
||||
continue;
|
||||
|
@ -122,8 +121,8 @@ static void sleep_tracker_print_stats(void)
|
|||
return;
|
||||
}
|
||||
|
||||
debug("[id: %s, count: %u]\r\n", sleep_stats[i].identifier,
|
||||
sleep_stats[i].count);
|
||||
mbed_error_printf("[id: %s, count: %u]\r\n", sleep_stats[i].identifier,
|
||||
sleep_stats[i].count);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,7 +137,7 @@ void sleep_tracker_lock(const char *const filename, int line)
|
|||
|
||||
core_util_atomic_incr_u8(&stat->count, 1);
|
||||
|
||||
debug("LOCK: %s, ln: %i, lock count: %u\r\n", filename, line, deep_sleep_lock);
|
||||
mbed_error_printf("LOCK: %s, ln: %i, lock count: %u\r\n", filename, line, deep_sleep_lock);
|
||||
}
|
||||
|
||||
void sleep_tracker_unlock(const char *const filename, int line)
|
||||
|
@ -147,13 +146,13 @@ void sleep_tracker_unlock(const char *const filename, int line)
|
|||
|
||||
// Entry for this driver does not exist, something went wrong.
|
||||
if (stat == NULL) {
|
||||
debug("Unlocking sleep for driver that was not previously locked: %s, ln: %i\r\n", filename, line);
|
||||
mbed_error_printf("Unlocking sleep for driver that was not previously locked: %s, ln: %i\r\n", filename, line);
|
||||
return;
|
||||
}
|
||||
|
||||
core_util_atomic_decr_u8(&stat->count, 1);
|
||||
|
||||
debug("UNLOCK: %s, ln: %i, lock count: %u\r\n", filename, line, deep_sleep_lock);
|
||||
mbed_error_printf("UNLOCK: %s, ln: %i, lock count: %u\r\n", filename, line, deep_sleep_lock);
|
||||
}
|
||||
|
||||
#endif // MBED_SLEEP_TRACING_ENABLED
|
||||
|
|
Loading…
Reference in New Issue