硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2710|回复: 0
收起左侧

[SEGGER RTT] SEGGER RTT的通道0默认已经开启,无需用户再单独开启

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2018-4-5 02:08:29 | 显示全部楼层 |阅读模式
  1. /*********************************************************************
  2. *
  3. *       Static data
  4. *
  5. **********************************************************************
  6. */
  7. //
  8. // RTT Control Block and allocate buffers for channel 0
  9. //
  10. SEGGER_RTT_PUT_CB_SECTION(SEGGER_RTT_CB_ALIGN(SEGGER_RTT_CB _SEGGER_RTT));

  11. SEGGER_RTT_PUT_BUFFER_SECTION(SEGGER_RTT_BUFFER_ALIGN(static char _acUpBuffer  [BUFFER_SIZE_UP]));
  12. SEGGER_RTT_PUT_BUFFER_SECTION(SEGGER_RTT_BUFFER_ALIGN(static char _acDownBuffer[BUFFER_SIZE_DOWN]));

  13. static char _ActiveTerminal;

  14. /*********************************************************************
  15. *
  16. *       Static functions
  17. *
  18. **********************************************************************
  19. */

  20. /*********************************************************************
  21. *
  22. *       _DoInit()
  23. *
  24. *  Function description
  25. *    Initializes the control block an buffers.
  26. *    May only be called via INIT() to avoid overriding settings.
  27. *
  28. */
  29. #define INIT()  do {                                            \
  30.                   if (_SEGGER_RTT.acID[0] == '\0') { _DoInit(); }  \
  31.                 } while (0)
  32. static void _DoInit(void) {
  33.   SEGGER_RTT_CB* p;
  34.   //
  35.   // Initialize control block
  36.   //
  37.   p = &_SEGGER_RTT;
  38.   p->MaxNumUpBuffers    = SEGGER_RTT_MAX_NUM_UP_BUFFERS;
  39.   p->MaxNumDownBuffers  = SEGGER_RTT_MAX_NUM_DOWN_BUFFERS;
  40.   //
  41.   // Initialize up buffer 0
  42.   //
  43.   p->aUp[0].sName         = "Terminal";
  44.   p->aUp[0].pBuffer       = _acUpBuffer;
  45.   p->aUp[0].SizeOfBuffer  = sizeof(_acUpBuffer);
  46.   p->aUp[0].RdOff         = 0u;
  47.   p->aUp[0].WrOff         = 0u;
  48.   p->aUp[0].Flags         = SEGGER_RTT_MODE_DEFAULT;
  49.   //
  50.   // Initialize down buffer 0
  51.   //
  52.   p->aDown[0].sName         = "Terminal";
  53.   p->aDown[0].pBuffer       = _acDownBuffer;
  54.   p->aDown[0].SizeOfBuffer  = sizeof(_acDownBuffer);
  55.   p->aDown[0].RdOff         = 0u;
  56.   p->aDown[0].WrOff         = 0u;
  57.   p->aDown[0].Flags         = SEGGER_RTT_MODE_DEFAULT;
  58.   //
  59.   // Finish initialization of the control block.
  60.   // Copy Id string in three steps to make sure "SEGGER RTT" is not found
  61.   // in initializer memory (usually flash) by J-Link
  62.   //
  63.   strcpy(&p->acID[7], "RTT");
  64.   strcpy(&p->acID[0], "SEGGER");
  65.   p->acID[6] = ' ';
  66. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 18:25 , Processed in 0.148217 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表