2 个版本

0.1.3 2022年8月18日
0.1.2 2022年7月11日
0.1.1 2022年7月11日
0.1.0 2022年7月11日

1639嵌入式开发

Download history 15/week @ 2024-04-12 20/week @ 2024-04-19 31/week @ 2024-04-26 25/week @ 2024-05-03 31/week @ 2024-05-10 17/week @ 2024-05-17 26/week @ 2024-05-24 29/week @ 2024-05-31 19/week @ 2024-06-07 21/week @ 2024-06-14 28/week @ 2024-06-21 19/week @ 2024-06-28 35/week @ 2024-07-05 26/week @ 2024-07-12 28/week @ 2024-07-19 38/week @ 2024-07-26

128 每月下载量
3 crate 中使用

MIT 许可证

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");
    }
    /*..*/
}

无运行时依赖

特性