工具链下载
之前的很多教程都因为自己学习的也不够深入写的很不规范,最近在开发汇顶的GR5525又遇到了不少新的问题,但这次有另外一位同事和我一起研究,所以现在也在不断完善中。
初学者请先按照这篇笔记配置C语言开发环境:
GCC+Clangd+CMake+Ninja环境搭建最新教程_windows 上搭建 c++ ninja + clang-CSDN博客
我们除了要改用arm-gnu编译单片机代码之外,其他完全是相通的。
arm-gnu下载地址:
Arm GNU Toolchain Downloads -- Arm Developer
进入页面后,Windows用户下载下面这个版本,不要忘记把路径添加到环境变量之中后重启电脑。

最后在终端里面检查所有组件的版本,arm_gnu检查:
bash
arm-none-eabi-gcc --version
正确结果展示:

cmake构建工具检查:
bash
cmake --version
正确结果展示:

ninja构建工具检查:
bash
ninja --version
正确结果展示:

clangd语法检查工具:
bash
clangd --version
正确结果展示:

Vscode插件安装与全局配置
直接倒入下面这个仓库里的ARM分支存储着的配置文件就OK了:

传送门:
bash
git clone https://gitee.com/jumayusi/vscode-config-file.git
插件大致浏览展示:

clangd需要点击插件设置小齿轮修改绝对路径:

同理cortex-debug里面也需要更改,帮助VScode找到arm-none-eabi-gdb调试器:

调试操作
调试配置文件分享(.vscode/launch.json):
bash
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceFolder}",
"executable": "${workspaceFolder}/build/GRX_APP.elf",
"name": "Debug",
"gdbPath" : "D:/VSCode/ToolChain/Arm_Gnu/bin/arm-none-eabi-gdb.exe",
"request": "attach",
"type": "cortex-debug",
"servertype" : "external",
"gdbTarget": "127.0.0.1:3331",
"rtos": "FreeRTOS",
"showDevDebugOutput": "parsed",
"liveWatch": {
"enabled": true,
"refreshRate": 250
},
"overrideResetCommands": [
/* RCURST1: reset core system */
"monitor reset halt",
"load",
"monitor reset init",
],
"overrideRestartCommands": [
"monitor reset 1",
]
}
]
}
powershell命令:
bash
JLinkGDBServerCL.exe ^
-select USB ^
-device GR5525 ^
-endian little ^
-if SWD ^
-speed 4000 ^
-noir ^
-noLocalhostOnly ^
-nologtofile ^
-port 3331 ^
-SWOPort 3332 ^
-TelnetPort 3333 ^
-rtos GDBServer\RTOSPlugin_FreeRTOS
注意命令需要黏贴为1行输入,设备名称和使用的RTOS名称还请自行调整。
调试操作流程:
①插上Jlink;
②PowerShell输入上面的命令;
③点击Debug按钮开始烧录调试。

如果遇到cortex-debug解决不了的问题,也可以考虑试试segger-rtt与Ozone。
SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace