logging.c 733 B

1234567891011121314151617181920212223242526
  1. /*
  2. * SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include <stdio.h>
  7. #include <stdarg.h>
  8. #include <sdkconfig.h>
  9. #include "SEGGER_SYSVIEW_Int.h"
  10. #include "freertos/FreeRTOS.h"
  11. static portMUX_TYPE s_log_mutex = portMUX_INITIALIZER_UNLOCKED;
  12. int esp_sysview_vprintf(const char * format, va_list args)
  13. {
  14. static char log_buffer[SEGGER_SYSVIEW_MAX_STRING_LEN];
  15. portENTER_CRITICAL(&s_log_mutex);
  16. size_t len = vsnprintf(log_buffer, sizeof(log_buffer), format, args);
  17. if (len > sizeof(log_buffer) - 1) {
  18. log_buffer[sizeof(log_buffer - 1)] = 0;
  19. }
  20. SEGGER_SYSVIEW_Print(log_buffer);
  21. portEXIT_CRITICAL(&s_log_mutex);
  22. return len;
  23. }