HW_Lib/EX_Lib/RTT/Examples/README.md

3.2 KiB
Raw Blame History

脚本自动更新RTT地址并启动

param (
    [string]$projectRoot
    [string]$projectName
)

# 自动获取 OpenOCD 的路径
$openOcdPath = (Get-Command openocd).Source
if (-not $openOcdPath) {
    Write-Host "未找到 OpenOCD请确保已正确安装并在 PATH 中。"
    exit 1
}

# 获取 OpenOCD 的目录并构建 scriptsPath
$openOcdDir = Split-Path (Split-Path $openOcdPath)
$scriptsPath = Join-Path $openOcdDir "share/openocd/scripts"

# 定义文件路径
$mapFilePath = Join-Path $projectRoot "cmake-build-debug/$projectName.map"
$rttCfgPath = Join-Path $projectRoot "rtt.cfg"

# 读取 .map 文件内容
$content = Get-Content $mapFilePath

# 使用 Select-String 提取地址
$match = $content | Select-String -Pattern '^\s*0x([0-9a-fA-F]+)\s+.*_SEGGER_RTT'

# 获取地址
if ($match) {
    $address = $match.Matches.Groups[1].Value
    $newRttLine = "rtt setup 0x$address 1024 ""SEGGER RTT"""

    # 读取 rtt.cfg 内容
    $rttContent = Get-Content $rttCfgPath

    # 查找并替换旧的 rtt setup 行
    $updatedContent = $rttContent -replace 'rtt setup 0x[0-9a-fA-F]+ 1024 "SEGGER RTT"', $newRttLine

    # 将更新后的内容写回文件
    Set-Content $rttCfgPath $updatedContent

    Write-Host "已更新 rtt.cfg 中的 RTT 地址为: 0x$address"

    # 启动 OpenOCD
    Start-Process -FilePath $openOcdPath -ArgumentList "-s $scriptsPath -f $rttCfgPath" -WorkingDirectory $projectRoot
} else {
    Write-Host "未找到 SEGGER RTT 地址,未进行更新"
}

代码说明:

  1. 获取 OpenOCD 路径:使用 Get-Command openocd 获取 OpenOCD 的可执行文件路径。
  2. 构建 scriptsPath
    • 使用 Split-PathopenOcdPath 中提取目录。
    • 使用 Join-Path 构建 scriptsPath,假设脚本目录位于 OpenOCD 安装目录的 share/openocd/scripts 子目录下。
  3. 其他部分:保持不变,继续读取 .map 文件、更新 rtt.cfg 文件并启动 OpenOCD。

外部工具的配置

在 CLion 中配置外部工具以运行此脚本并传递项目根路径作为参数,步骤如下:

  1. 打开 CLion 设置

    • 点击菜单栏的 File -> Settings(在 macOS 上是 CLion -> Preferences)。
  2. 添加外部工具

    • 在设置窗口中,找到 Tools -> External Tools
    • 点击右侧的 + 按钮以添加新的外部工具。
  3. 配置外部工具

    • Name: Update RTT and Run OpenOCD
    • Program: powershell
    • Parameters:
      -ExecutionPolicy Bypass -File "C:\Users\lydxh\Documents\WindowsPowerShell\UpdateAndRunOpenOCD.ps1" -projectRoot "$ProjectFileDir$" -projectName "$ProjectName$"
      
    • Working directory: $ProjectFileDir$
  4. 保存配置

    • 点击 OK 保存配置。
    • 关闭设置窗口。

使用方法

  1. 将更新后的 PowerShell 脚本保存为 UpdateAndRunOpenOCD.ps1,并放在项目根目录下。
  2. 在 CLion 中,您可以通过 Tools 菜单找到您刚刚创建的 Update RTT and Run OpenOCD 工具。
  3. 点击它以执行脚本,更新 RTT 地址并启动 OpenOCD。
  4. 终端输入telnet 127.0.0.1 9000即可连接到日志输出