mcu_hi3321_watch/middleware/utils/dfx/diag/diag_debug.c
2025-05-26 20:15:20 +08:00

58 lines
1.8 KiB
C

/*
* Copyright (c) @CompanyNameMagicTag 2021-2023. All rights reserved.
* Description: diag debug
* This file should be changed only infrequently and with great care.
*/
#include "diag_debug.h"
#include "zdiag_adapt_layer.h"
#include "diag_common.h"
#include "soc_diag_util.h"
#include "diag_log.h"
uint32_t g_dfx_debug_level = DIAG_LOG_LEVEL_ERROR;
STATIC void printf_frame_header(const char *str, const diag_router_frame_t *frame)
{
diag_router_inner_frame_t *inner = (diag_router_inner_frame_t *)frame->inner;
if (get_frame_ctrl_extend_en(frame->ctrl) != 0) {
inner = (diag_router_inner_frame_t *)(frame->inner + DIAG_ROUTER_CTRL2_LEN);
}
dfx_log_debug("[%s][frame][sof=0x%02x][ctrl=0x%02x]", str, frame->sof, frame->ctrl);
if (get_frame_ctrl_extend_en(frame->ctrl) != 0) {
dfx_log_debug("[ctrl2=0x%02x]", frame->inner[0]);
}
dfx_log_debug("[len=0x%02x]\r\n", get_frame_len(inner->len_msb, inner->len_lsb));
unused(inner);
unused(str);
}
uint32_t diag_get_debug_level(void)
{
return g_dfx_debug_level;
}
void diag_set_debug_level(uint32_t level)
{
g_dfx_debug_level = level;
}
void zdiag_debug_print_pkt_info(const char *str, uint8_t *pkt)
{
diag_router_frame_t *frame = (diag_router_frame_t *)pkt;
printf_frame_header(str, frame);
}
void zdiag_pkt_printf(const char *str, diag_pkt_handle_t *pkt)
{
diag_router_frame_t *frame = diag_pkt_handle_get_frame(pkt);
dfx_log_debug("%s cnt=%u data_len[0]=%u data_len[1]=%u data_len[2]=%u\r\n",
str, pkt->data_cnt,
pkt->data_len[DIAG_PKT_DATA_ID_0],
pkt->data_len[DIAG_PKT_DATA_ID_1],
pkt->data_len[DIAG_PKT_DATA_ID_2]);
unused(frame);
unused(str);
}