#runner #cargo #path #gdb #projects #target #open-ocd

bin+lib embedded-runner

Cargo 运行器,用于使用 OpenOCD 的嵌入式项目

9 个不稳定版本 (3 个破坏性版本)

0.4.0 2024 年 8 月 20 日
0.3.5 2024 年 7 月 3 日
0.3.1 2024 年 6 月 14 日
0.2.0 2024 年 6 月 13 日
0.1.0 2024 年 5 月 28 日

#344 in 嵌入式开发

Download history 112/week @ 2024-05-24 22/week @ 2024-05-31 98/week @ 2024-06-07 215/week @ 2024-06-14 3/week @ 2024-06-21 448/week @ 2024-06-28 130/week @ 2024-07-05 134/week @ 2024-08-16

每月 134 次下载

MIT 许可证

285KB
1K SLoC

包含 (ELF 可执行文件/lib, 1MB) test_binaries/emb-runner-test

embedded-runner

Cargo 运行器,用于使用 GDBOpenOCD 的嵌入式项目。

请确保 GDB 可执行文件是 arm-none-eabi-gdb 或通过环境变量 GDB 设置。OpenOCD 可执行文件 openocd 必须在路径中可用。

用法

  1. 使用 cargo install embedded-runner 安装包。

  2. .cargo/config.toml 中将 embedded-runner run 设置为 cargo 运行器

    [target(<your target configuration>)]
    runner = "embedded-runner run"
    
  3. 创建运行器配置

    默认情况下,embedded-runner 将在 .embedded/runner.toml 中查找运行器配置。可以通过在 run 命令之前使用 --runner-cfg 参数设置自定义路径。

    请确保为 mantra-rust-macros 启用 defmt 功能,以便在使用 mantra 时获取需求覆盖率日志。

    配置允许以下设置

    # Optional: Load section in the gdb script.
    # 
    # The load section gets resolved using the Tera templating language.
    # Variables `binary_path`, `binary_filepath`, and `binary_filepath_noextension` are passed as context.
    #
    # e.g. "load {{ binary_filepath }}"
    load = "load"
    
    # Optional: Path to a custom OpenOCD configuration
    openocd-cfg = ".embedded/openocd.cfg"
    
    # Optional: Connection to a GDB server to use instead of OpenOCD
    gdb-connection = ""
    
    # Optional: Path to write GDB logs to
    gdb-logfile = "<output directory>/gdb.log"
    
    # Optional: RTT port to use on the host
    rtt-port = 19021
    
    # Optional: Define a command to run before the runner executes the binary.
    # A 'post-runner' may also be set that is run after executing the binary.
    #
    # On windows, `pre-runner-windows` is available that takes precedence over `pre-runner`.
    # Same with `post-runner-windows`.
    [pre-runner]
    
    # Name of the command
    name = "powershell"
    
    # Arguments passed to the command.
    # The binary path is automatically added as last argument 
    args = ["echo"]
    
  4. 可选:添加您的 OpenOCD 配置

    如果 runner.toml 文件中没有设置 GDB 连接,则需要此配置文件。

    默认情况下,embedded-runner 将在 .embedded/openocd.cfg 中查找,但您可以在运行器配置中更改此路径。

  5. 创建和运行您的 defmt-test 测试

    有关如何使用 defmt 框架创建和管理测试的详细信息,请参阅 defmt-test 文档

  6. 可选:从多个测试运行中收集测试结果

    运行 嵌入式-runner collect <输出文件路径> 以将所有测试运行结果合并到一个文件中。内容将遵循 mantra CoverageSchema 的 JSON 格式。

许可证

MIT 许可

依赖项

~16–26MB
~394K SLoC