⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hi_dbg.h

📁 华为 HI3510 BOOTLOADER HIBOOT 源码包
💻 H
字号:
/******************************************************************************  Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd. ******************************************************************************  File Name     : hi_dbg.h  Version       : Initial Draft  Author        : Hisilicon multimedia software group  Created       : 2005/4/20  Last Modified :  Description   : 本文件是用来定义关于调试信息相关的宏定义, 以及函数声明等,                  例如打印输出, 写log, assert等的定义  Function List :  History       :  1.Date        : 2005/4/20    Author      : T41030    Modification: Created file******************************************************************************/#ifndef __HI_DBG_H__#define __HI_DBG_H__#ifdef __cplusplus#if __cplusplusextern "C"{#endif#endif /* __cplusplus */#include <stdio.h>#ifdef LOGQUEUE#include "hi_message.h"USE_GLOBALVAR LOG_QUEUE gLogQueue;#endif#if defined(DEBUG)    /* TODO: 打印出文件名, 行号, 和expression , 并break*/    #define  DBG_ASSERT(expression) assert(expression)    #define  DBG_ASSERT_STR(expression, str)     \                do                               \                {                                \                    if (!(expression))           \                    {                            \                        WRITE_LOG_FATAL(str);    \                        assert(expression);      \                    }                            \                }while(0);                                                                       /* TODO: 打印出文件名, 行号, 和出错信息 */    #define  DBG_LOG  WRITE_LOG_DEBUG     #define  DBG_LOG1 WRITE_LOG_DEBUG1     #define  DBG_LOG2 WRITE_LOG_DEBUG2     #else    #define DBG_ASSERT(expression)   ((void)0)    #define DBG_LOG(args...)      #define  DBG_LOG1 WRITE_LOG_DEBUG1     #define  DBG_LOG2 WRITE_LOG_DEBUG2     #endif#define LOG_LEVEL_NORMAL    0#define LOG_LEVEL_FATAL     1#define LOG_LEVEL_ERROR     2#define LOG_LEVEL_WARN      3#define LOG_LEVEL_INFO      4#define LOG_LEVEL_DEBUG     5#define LOG_LEVEL_DEBUG1    6#define LOG_LEVEL_DEBUG2    7#define LOG_LEVEL_ALL       10#define LOG_LEVEL_DEFAULT   LOG_LEVEL_INFO#define LOG_LEVEL_MINI      LOG_LEVEL_ERROR#define LOG_LEVEL_MAX       LOG_LEVEL_ALL/* LOG *//**调用方法*WRITE_LOG_FATAL("Memory is too much , total: %u M, it's waste, please save people's money , 1024");*WRITE_LOG ( LOG_LEVEL_WARN, "after VIU device analyse: you are a handsome pig." );*//*gLogQueue is a Global Var, now defined at hi_global.c and   declare at hi_global.h, it you use this log functions outside,   you can declare your owner "gLogQueue"*//*Call this first , and only call it once*//*level = LOG_LEVEL_ERROR .....*/#ifdef LOGQUEUE#define LOG_CREATE(level, msglen)    Log_Create(&gLogQueue, level, msglen)#define LOG_SETLEVEL(level)  (gLogQueue.ucMinLevel = level)#define LOG_DESTROY()   Log_Destroy(&gLogQueue)#define WRITE_LOG_NORMAL(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_NORMAL, psz_format, ##args )#define WRITE_LOG_INFO(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_INFO, psz_format, ##args )            #define WRITE_LOG_FATAL(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_FATAL, psz_format, ##args )#define WRITE_LOG_ERROR(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_ERROR, psz_format, ##args )#define WRITE_LOG_WARN(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_WARN, psz_format, ##args )            #define WRITE_LOG_DEBUG(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG, "{%s:%i}:"psz_format, \            __FILE__, __LINE__ ,##args)#define WRITE_LOG_DEBUG1(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG1, "{%s:%i}:"psz_format, \            __FILE__, __LINE__ ,##args)#define WRITE_LOG_DEBUG2(psz_format, args... ) \            Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG2, "{%s:%i}:"psz_format, \            __FILE__, __LINE__ ,##args)#define WRITE_LOG(iLevel, psz_format, args... ) \            Log_Msg(&gLogQueue, iLevel, psz_format, ##args )            #else#define LOG_CREATE(level, msglen)#define LOG_SETLEVEL(level)#define LOG_DESTROY() #define WRITE_LOG_NORMAL(args...)#define WRITE_LOG_INFO(args...)                        #define WRITE_LOG_FATAL(args...)#define WRITE_LOG_ERROR(args...)#define WRITE_LOG_WARN(args...)            #define WRITE_LOG_DEBUG(args...)#define WRITE_LOG_DEBUG1(args...)#define WRITE_LOG_DEBUG2(args...)#define WRITE_LOG(args...)#endif#if defined(OS_LINUX) && defined(USE_BTRACE) && defined(DEBUG)    #if !defined(BTRACE_ENABLE)    #define BTRACE_ENABLE    #endif#else    #if defined(BTRACE_ENABLE)    #undef BTRACE_ENABLE    #endif#endif#if defined(BTRACE_ENABLE)    #define BTRACE_INIT() btrace()    #define BTRACE_PRINT btrace_print    #define BTRACE_PRINT_FUNC() btrace_print_str(__func__)    #define BTRACE_PRINT_STR(str) btrace_print_str(str)#else    #define BTRACE_INIT()    #define BTRACE_PRINT     #define BTRACE_PRINT_FUNC()     #define BTRACE_PRINT_STR(str)#endifEXTERNFUNC HI_RET hi_md(IN VOID* pStart,IN  U32 ulLen,IN FD fd);/*Memory Dump 2 file*/EXTERNFUNC HI_RET hi_md2file(IN VOID* pStart,IN  U32 ulLen,                            IN char* strLabel,                             IN char* fn);EXTERNFUNC void hi_hexdump(OUT FILE *stream,                         IN const void *src, IN size_t len,                         IN size_t width);EXTERNFUNC VOID hi_hexdump_log(IN const void *src, IN size_t len,                         IN size_t width);EXTERNFUNC int hi_shexdump(IN const void *src, IN size_t len,                          IN size_t width, IN char *dlim,                         OUT char *dst);/*Memory Dump function, Please use MEM_DUMP2FILE to dump memory*/#if defined(DEBUG)#define MEM_DUMP      hi_md#define MEM_DUMP2FILE hi_md2file#else#define MEM_DUMP      #define MEM_DUMP2FILE #endif#ifdef __cplusplus#if __cplusplus}#endif#endif /* __cplusplus */#endif /* __HI_DBG_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -