2 个版本
0.1.3 | 2022年8月18日 |
---|---|
0.1.2 | 2022年7月11日 |
0.1.1 |
|
0.1.0 |
|
1639 在 嵌入式开发 中
128 每月下载量
在 3 crate 中使用
14KB
231 代码行
rtos-trace
用于跟踪RTOS内部的一组特质。
特性
trace_impl
: 激活跟踪函数(默认开启)。RTOS可以使用它来关闭跟踪。
实现
后端需要实现 RtosTrace
。
现有实现
使用方法
RTOS
RTOS可以实现 RtosTraceOSCallbacks
来在跟踪软件请求时提供额外的信息。例如
rtos_trace::global_os_callbacks!{Scheduler}
impl rtos_trace::RtosTraceOSCallbacks for Scheduler {
fn task_list() {
/*..*/
for task in tasks.iter() {
trace::task_send_info(task.id(), task.info());
}
}
/*..*/
}
对于RTOS维护者的使用很简单
use rtos_trace::{RtosTrace, trace}
pub fn spawn_task(/*..*/) {
/*..*/
trace::task_new(task_id);
}
应用
类似于全局日志记录器,用户必须提供一个跟踪后端,即
use systemview_target::SystemView;
rtos_trace::global_trace!{SystemView}
用户可以实现 RtosTraceApplicationCallbacks
以在跟踪软件请求时提供额外的信息。例如
struct Application;
rtos_trace::global_application_callbacks!{Application}
impl rtos_trace::RtosTraceApplicationCallbacks for Application {
fn system_description() {
systemview_target::send_system_desc_app_name!("Espresso Machine");
systemview_target::send_system_desc_device!("STM32F769NI");
systemview_target::send_system_desc_core!("Cortex-M7");
systemview_target::send_system_desc_os!("Bern RTOS");
systemview_target::send_system_desc_interrupt!(15, "SysTick");
}
/*..*/
}