|
楼主 |
发表于 2016-3-19 16:58:27
|
显示全部楼层
RTT代码中SEGGER_RTT_CB结构体和SEGGER_RTT_RING_BUFFER结构体定义处有详细解释
- typedef struct {
- const char* sName; // Optional name. Standard names so far are: "Terminal", "SysView", "J-Scope_t4i4"
- char* pBuffer; // Pointer to start of buffer
- unsigned SizeOfBuffer; // Buffer size in bytes. Note that one byte is lost, as this implementation does not fill up the buffer in order to avoid the problem of being unable to distinguish between full and empty.
- volatile unsigned WrOff; // Position of next item to be written by either host (down-buffer) or target (up-buffer). Must be volatile since it may be modified by host (down-buffer)
- volatile unsigned RdOff; // Position of next item to be read by target (down-buffer) or host (up-buffer). Must be volatile since it may be modified by host (up-buffer)
- unsigned Flags; // Contains configuration flags
- } SEGGER_RTT_RING_BUFFER;
- //
- // RTT control block which describes the number of buffers available
- // as well as the configuration for each buffer
- //
- //
- typedef struct {
- char acID[16]; // Initialized to "SEGGER RTT"
- int MaxNumUpBuffers; // Initialized to SEGGER_RTT_MAX_NUM_UP_BUFFERS (type. 2)
- int MaxNumDownBuffers; // Initialized to SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (type. 2)
- SEGGER_RTT_RING_BUFFER aUp[SEGGER_RTT_MAX_NUM_UP_BUFFERS]; // Up buffers, transferring information up from target via debug probe to host
- SEGGER_RTT_RING_BUFFER aDown[SEGGER_RTT_MAX_NUM_DOWN_BUFFERS]; // Down buffers, transferring information down from host via debug probe to target
- } SEGGER_RTT_CB;
复制代码
MaxNumUpBuffers是从单片机向电脑传数据的Buffer的个数,默认是2
下面定义了2个向电脑传数据的环形缓冲区和两个电脑向单片机传数据的环形缓冲区,,
缓冲区的名字是可选的,Terminal、Log其实没啥太大用处,,
缓冲区的关键参数有4个,分别是指向缓冲数组的指针、数组的大小和读、写指针
比如Up环形缓冲区,其实就是单面机网里面装数据,J-Link RTT Viewer通过Jlink把里面的数据读出来显示,,就这么简单
|
|