zephyr/include/shell/shell_rtt.h
Krzysztof Chruscinski f78067e1f9 shell: Refactor RTT backend
Improved reception in the backend and replaced thread
with periodic timer as thread was used only to
periodically poll RTT data availability and using timer
is more RAM-wise efficient.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2018-12-04 16:24:44 -05:00

44 lines
968 B
C

/*
* Copyright (c) 2018 Makaio GmbH
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef SHELL_RTT_H__
#define SHELL_RTT_H__
#include <shell/shell.h>
#ifdef __cplusplus
extern "C" {
#endif
extern const struct shell_transport_api shell_rtt_transport_api;
struct shell_rtt {
shell_transport_handler_t handler;
struct k_timer timer;
void *context;
};
#define SHELL_RTT_DEFINE(_name) \
static struct shell_rtt _name##_shell_rtt; \
struct shell_transport _name = { \
.api = &shell_rtt_transport_api, \
.ctx = (struct shell_rtt *)&_name##_shell_rtt \
}
/**
* @brief Function provides pointer to shell rtt backend instance.
*
* Function returns pointer to the shell rtt instance. This instance can be
* next used with shell_execute_cmd function in order to test commands behavior.
*
* @returns Pointer to the shell instance.
*/
const struct shell *shell_backend_rtt_get_ptr(void);
#ifdef __cplusplus
}
#endif
#endif /* SHELL_RTT_H__ */