YB_TX_RX_APE_PRJ/Common/inc/log_interface.h

117 lines
4.5 KiB
C
Raw Normal View History

2025-03-02 13:41:38 +08:00
/******************************************************************
* @file log_interface.h
* @brief: [file description]
* @author: guicheng.liu
* @Date 202139
* COPYRIGHT NOTICE: (c) smartlogictech. All rights reserved.
* Change_date Owner Change_content
* 202139 guicheng.liu create file
*****************************************************************/
#ifndef LOG_INTERFACE_H
#define LOG_INTERFACE_H
#include <type_define.h>
#include "osp_interface.h"
#include "common.h"
//log 相关宏定义
//LOG_DD_HEADER_SIZE 由平台提供接口, 目前为12
#define OSP_MSG_HEAD_LEN (12)
#define LOG_DD_HEADER_SIZE (OSP_MSG_HEAD_LEN)
#define LOG_HEADER_SIZE sizeof(log_msg_header_t)
#define LOG_TOTAL_HDR_SIZE (LOG_DD_HEADER_SIZE + LOG_HEADER_SIZE)
#define LOG_MAX_LEN_BYTE (512)
#define LOG_MAX_LEN_WORD (LOG_MAX_LEN_BYTE >> 2)
#define LOG_MAX_CONTENT_SIZE (LOG_MAX_LEN_BYTE - LOG_TOTAL_HDR_SIZE)
#define LOG_DM_BUF_NUM (8)
#define LOG_DEFINE_BASE (0)
#define LOG_DEFINE_STEP (100)
//msg_type 各模块分配号码段
#define STRING_LOG (LOG_DEFINE_BASE + 0*LOG_DEFINE_STEP)
#define MAIN_LOG (LOG_DEFINE_BASE + 0*LOG_DEFINE_STEP + 1)
#define FAPI_LOG (LOG_DEFINE_BASE + 1*LOG_DEFINE_STEP)
#define SSB_LOG (LOG_DEFINE_BASE + 2*LOG_DEFINE_STEP)
#define PDCCH_LOG (LOG_DEFINE_BASE + 3*LOG_DEFINE_STEP)
#define PDSCH_LOG (LOG_DEFINE_BASE + 4*LOG_DEFINE_STEP)
#define DEOFDM_LOG (LOG_DEFINE_BASE + 5*LOG_DEFINE_STEP)
#define PUSCH_LOG (LOG_DEFINE_BASE + 6*LOG_DEFINE_STEP)
#define PUCCH_LOG (LOG_DEFINE_BASE + 7*LOG_DEFINE_STEP)
#define PRACH_LOG (LOG_DEFINE_BASE + 8*LOG_DEFINE_STEP)
/*buf_type: 0用户申请的静态DM空间1:用户自定义的DM空间
msgAddrbufType为0时bufType为1时DM空间地址 */
//void log_output(uint8_t level, uint8_t task_id, uint16_t msg_type,
// uint16_t sfn, uint16_t slot, uint16_t slot_offset, uint8_t msg_len, uint8_t buf_type, char* msg_addr);
//void set_log_level(log_level_e level);
//
//void log_sprintf(log_level_e level, const char *fmt, ...);
//#define LOG_INFO_S(level, fmt, ...) LOG_INFO_S(level, fmt, ## __VA_ARGS__)
//字符串log输出方式宏定义
#define LOG_CMD_S(fmt, ...) log_sprintf(CMD, "[CMD]"fmt, ## __VA_ARGS__)
#define LOG_ERROR_S(fmt, ...) log_sprintf(ERROR, "[ERR]"fmt, ## __VA_ARGS__)
#define LOG_WARN_S(fmt, ...) log_sprintf(WARN, "[WARN]"fmt, ## __VA_ARGS__)
#define LOG_INFO_S(fmt, ...) log_sprintf(INFO, "[INFO]"fmt, ## __VA_ARGS__)
#define LOG_DEBUG_S(fmt, ...) log_sprintf(DEBUG, "[DBG]"fmt, ## __VA_ARGS__)
//字节流log输出方式宏定义
#define LOG_CMD(task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr) \
log_output(CMD, task_id, msg_type, sfn, slot,slot_offset, buf_type, msg_len, msg_addr)
#define LOG_ERROR(task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr) \
log_output(ERROR, task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr)
#define LOG_WARN(task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr) \
log_output(WARN, task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr)
#define LOG_INFO(task_id, msg_type, sfn, slot, slot_offset,buf_type, msg_len, msg_addr) \
log_output(INFO, task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr)
#define LOG_DEBUG(task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr) \
log_output(DEBUG, task_id, msg_type, sfn, slot, slot_offset, buf_type, msg_len, msg_addr)
//串口log输出宏定义
#define LOG_PRINTF(fmt, ...) //osp_printf(fmt"\n\r", ## __VA_ARGS__)
//log 相关结构体定义
typedef enum
{
CMD,
ERROR,
WARN,
INFO,
DEBUG
} log_level_e;
typedef struct log_msg_header
{
uint32_t sync_flag : 9;// 0x13C
uint32_t msg_level : 3;
uint32_t msg_type : 12;//log msg type
uint32_t slot : 8;
uint32_t sfn : 10;//sfn + slot * 1024
uint32_t slot_offset : 10;
uint32_t msg_len : 9;//不包含log_header的长度
uint32_t msgNo : 3;//消息号
char buffer[];
}log_msg_header_t;
void set_log_level(log_level_e level);
void log_pool_init();
char *log_buf_alloc_static();
void log_output(uint8_t level, uint8_t task_id, uint16_t msg_type,
uint16_t sfn, uint16_t slot, uint16_t slot_offset, uint8_t buf_type, uint16_t msg_len, char* msg_addr);
void log_sprintf(log_level_e level, const char *fmt, ...);
#endif