trace.c 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /****************************************************************
  2. Copyright(C), 1999-2004 Raisecom, Inc.
  3. filename: trace.c,trace函数,可以向串口输出信息
  4. Author : qiaoqiangguo
  5. version : 1.0
  6. date : 2008/6/21
  7. Others :
  8. THIS DOCUMENT IS GENERATED BY TORNADO TOOLS refgen.exe
  9. EXAMPLE:
  10. ->torVars.bat
  11. ->refgen -mg -out doc trace.c
  12. ->cd doc
  13. ->htmllink
  14. *****************************************************************/
  15. #include "includes.h"
  16. #include "strfunc.h"
  17. #include "trace.h"
  18. #include "console.h"
  19. /*trace使用的发送函数*/
  20. trace_msg_send g_msg_msg_send = NULL;
  21. /*定义临时使用的字符数组*/
  22. u8 g_trace_buf[TRACE_BUF_LEN_MAX];
  23. /* 格式输出到trace的目的地
  24. 输入参数:
  25. fmt, 输出格式,printf相同的格式约定
  26. ..., 可选参数,printf相同的格式约定
  27. 返回值:
  28. 格式化后的字符串长度,与printf的返回值的约定相同
  29. */
  30. u32 trace_otp_trace(const char * fmt, ...)
  31. {
  32. u32 len = 0;
  33. va_list vaList;
  34. va_start (vaList, fmt);
  35. /*lint -save -e530*/
  36. len = otp_vsnprintf((char *)g_trace_buf, TRACE_BUF_LEN_MAX, fmt, vaList);
  37. /*lint -restore*/
  38. if(g_msg_msg_send)
  39. {
  40. if(g_msg_msg_send(Console_UID, (char *)g_trace_buf, len) != 0)
  41. {
  42. va_end (vaList);
  43. return 0;
  44. }
  45. }
  46. va_end (vaList);
  47. return len;
  48. }
  49. /* 格式输出到trace的目的地
  50. 输入参数:
  51. fmt, 输出格式,printf相同的格式约定
  52. ..., 可选参数,printf相同的格式约定
  53. 返回值:
  54. 格式化后的字符串长度,与printf的返回值的约定相同
  55. */
  56. u32 trace_otp_trace1(trace_msg_send msg_send_cb, u8 uartid, const char * fmt, ...)
  57. {
  58. u32 len = 0;
  59. va_list vaList;
  60. va_start (vaList, fmt);
  61. /*lint -save -e530*/
  62. len = otp_vsnprintf((char *)g_trace_buf, TRACE_BUF_LEN_MAX, fmt, vaList);
  63. /*lint -restore*/
  64. if(msg_send_cb)
  65. {
  66. if(msg_send_cb(uartid, (char *)g_trace_buf, len) != 0)
  67. {
  68. va_end (vaList);
  69. return 0;
  70. }
  71. }
  72. va_end (vaList);
  73. return len;
  74. }
  75. /*****************************************************************************
  76. *trace_init trace初始化函数
  77. *Input:
  78. * None
  79. *Output:
  80. * None
  81. *Return:
  82. * 0/-1
  83. */
  84. int trace_init(void)
  85. {
  86. memset(g_trace_buf, 0, sizeof(g_trace_buf));
  87. return 0;
  88. }