HW_Lib/EX_Lib/RTT/Examples/README.md

91 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 脚本自动更新RTT地址并启动
```powershell
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-Path``openOcdPath` 中提取目录。
- 使用 `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**:
```plaintext
-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即可连接到日志输出