|
||
---|---|---|
.. | ||
Main_RTT_InputEchoApp.c | ||
Main_RTT_MenuApp.c | ||
Main_RTT_PrintfTest.c | ||
Main_RTT_SpeedTestApp.c | ||
README.md | ||
UpdateAndRunOpenOCD.ps1 | ||
rtt.cfg |
README.md
脚本自动更新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 地址,未进行更新"
}
代码说明:
- 获取 OpenOCD 路径:使用
Get-Command openocd
获取 OpenOCD 的可执行文件路径。 - 构建
scriptsPath
:- 使用
Split-Path
从openOcdPath
中提取目录。 - 使用
Join-Path
构建scriptsPath
,假设脚本目录位于 OpenOCD 安装目录的share/openocd/scripts
子目录下。
- 使用
- 其他部分:保持不变,继续读取
.map
文件、更新rtt.cfg
文件并启动 OpenOCD。
外部工具的配置
在 CLion 中配置外部工具以运行此脚本并传递项目根路径作为参数,步骤如下:
-
打开 CLion 设置:
- 点击菜单栏的
File
->Settings
(在 macOS 上是CLion
->Preferences
)。
- 点击菜单栏的
-
添加外部工具:
- 在设置窗口中,找到
Tools
->External Tools
。 - 点击右侧的
+
按钮以添加新的外部工具。
- 在设置窗口中,找到
-
配置外部工具:
- 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$
- Name:
-
保存配置:
- 点击
OK
保存配置。 - 关闭设置窗口。
- 点击
使用方法
- 将更新后的 PowerShell 脚本保存为
UpdateAndRunOpenOCD.ps1
,并放在项目根目录下。 - 在 CLion 中,您可以通过
Tools
菜单找到您刚刚创建的Update RTT and Run OpenOCD
工具。 - 点击它以执行脚本,更新 RTT 地址并启动 OpenOCD。
- 终端输入telnet 127.0.0.1 9000即可连接到日志输出