车载软件架构 — 如何使用 VSCode 作为 TRACE32 的前端调试界面

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。
生活中有两种人,一种人格外在意别人的眼光;另一种人无论别人如何,他们始终有自己的节奏。
过度关注别人的看法,会搅乱自己的步调,让自己更加慌乱。与其把情绪的开关交到别人手中,不如把有限的精力用在提升自己上,久而久之,你自然会更加优秀。

时间不知不觉中,来到新的一年。2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。

一、背景信息

Visual Studio Code(VSCode)是一款由微软开发的免费开源代码编辑器,自2015年首次发布以来,便以其卓越的性能、灵活的扩展性和跨平台兼容性,迅速成为全球开发者钟爱的开发工具。它支持Windows、macOS和Linux三大主流操作系统,无论是轻量级脚本编写还是大型项目开发,都能通过其丰富的功能与插件生态轻松应对。

核心优势与功能特性

智能编码体验:VSCode内置基于语言服务的智能提示系统(如IntelliSense),能根据上下文提供精准的代码补全建议,支持JavaScript、Python、C++等主流编程语言。其语法高亮、代码折叠、多光标编辑等功能显著提升代码可读性与编写效率。

无缝调试与版本控制:集成调试工具支持断点设置、变量监控及条件断点,覆盖Node.js、Python等运行环境。内置Git功能允许用户直接提交代码、解决冲突并可视化差异,无需切换工具即可完成版本管理。

极致扩展性:通过官方扩展市场,用户可安装超过3万款插件,涵盖语言支持(如Java、Go)、框架集成(如React、Vue)、工具链(如Docker、Kubernetes)等领域。例如,Live Server插件可实时预览前端页面,Jupyter扩展支持交互式数据分析,满足多样化开发需求。

跨平台与终端集成:VSCode在三大系统上提供一致体验,内置终端支持PowerShell、bash等命令行工具,开发者可直接在编辑器内执行脚本、管理依赖,减少窗口切换成本。

轻量与性能平衡:基于Electron框架构建,VSCode在保持快速启动的同时,通过延迟加载插件、智能资源管理等技术,确保流畅处理大型项目。例如,打开包含数万行代码的仓库时,仍能保持响应速度。

用户群体与场景覆盖

教育领域:学生可通过简洁界面快速上手Python、C++等语言学习,利用Markdown实时预览撰写技术文档,Git集成支持小组协作项目。

全栈开发:从前端HTML/CSS/JavaScript到后端Python/Java/Go,VSCode通过插件实现全链路工具链覆盖,配合终端集成简化部署流程。

数据科学:结合Jupyter Notebook扩展,可直接在编辑器内运行数据分析代码,支持LaTeX数学公式渲染,提升科研效率。

DevOps与云原生:通过Docker、Kubernetes插件管理容器化应用,SSH远程开发功能支持直接连接服务器编码,适应云原生开发趋势。

生态与社区支持

VSCode的成功离不开其活跃的社区生态:

开源基础:虽然VSCode本身基于MIT协议的Code – OSS开源版本构建,但微软通过持续迭代(每月发布更新)保持功能领先性。

主题与个性化:用户可通过Dracula暗黑主题、One Monokai配色等自定义界面,或调整快捷键布局(如Ctrl+P快速跳转文件)优化工作流。

学习资源:官方文档提供详细教程,社区贡献的教程、视频覆盖从入门到高级技巧(如Debug配置),加速新手成长。

二、VSCode 作为 TRACE32 的前端调试界面

为了进一步提升用户的开发和调试的便捷和效率,劳特巴赫实现了 Visual Studio Code (VSCode) 作为 TRACE32 的前端调试软件操作界面的扩展,主要原理是利用 Debug Adapter Protocol (DAP)。虽然 TRACE32 本身不直接支持 DAP,但通过设置一个代理,就实现 DAP 和 TRACE32 的远程控制语言(Remote Control Language,RCL)API之间的转换。这个代理使 VSCode 能够作为 TRACE32 的有效前端运行,从而提升开发和调试同步能力。

前提条件:需要 DVD R.2024.09 之后的TRACE32 软件版本

步骤一:

使能 API,并启动TRACE32 SW

方法1:启动TRACE32 SW 之前,修改配置文件(例如:config.t32)

RCL=NETTCP
PORT=20000

方法2:启动TRACE32 SW 同时配置相应参数:-–t32-api-rcl=TCP 20000

例如:t32marm.exe -–t32-api-rcl=TCP 20000 -c config.t32

方法3:启动TRACE32 SW 后,在软件界面中执行命令:

SETUP.API.RCL /Interface TCP /Port 20000.

步骤二:

启动 VSCode 软件界面

步骤三:

在VSCode 软件中,选择菜单:“Menu → Run → Add Configuration → select empty”, 添加如下配置脚本:

{
            
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            
            "type": "node",
            "request": "attach",
            "name": "dapserver attach",
            "debugServer": 58870,
            "cmm": "~~/demo/arm/compiler/arm/cppdemo.cmm", //optional cmm to be called
           // "trace32Node": localhost, //IP address
            "trace32Port": 20000 //API port
        }
    ]
}

步骤四:

在Host主机系统(Windows/Linux)命令窗口启动 “t32debugadapter.exe” 进程。

###(该程序可以从TRACE32 安装目录 ~~/demo/env/vscode 或者劳特巴赫官方网站 www.lauterbach.com 直接获取)

步骤五:

在 VSCode SW界面中, 选择“RUN AND DEBUG” 和启动“dapserver attach” (或直接按 F5健)

步骤六:

您可在VSCode 和TRACE32 SW 界面中同步单步,设置断点等多种调试操作。

这种集成不仅提升了调试过程的直观性和易用性,还方便了开发者的工作流,使得嵌入式开发变得更加高效。通过配置 VSCode 的调试扩展,开发者可以灵活切换代码视图和调试信息,实现无缝操作,极大地方便了软件的开发和故障排查。

Tips:

您可以使用 preLaunchTask 自动启动 debug adapter (步骤 4):

launch.json:

{
            
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            
            "type": "node",
            "request": "attach",
            "name": "start debug adapter and attach",
            "preLaunchTask": "start_debug_adapter",
            "debugServer": 58870,
            "cmm": "~~/demo/arm/compiler/arm/cppdemo.cmm",
            // "trace32Node": localhost, //IP address
            "trace32Port": 20000
        }
    ]
}

右滑查看完整内容

以及 tasks.json:

{
            
    "version": "2.0.0",
    "tasks": [{
            
        "label": "start_debug_adapter",
        "command": "start C:/T32/demo/env/vscode/bin/windows64/t32debugadapter.exe", // adjust path as needed
        "args": [],
        "type": "shell"
    }]
}

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者

PS:
Hello 同行:首先谢谢您的关注!
可提供如下服务:
1、车载诊断架构、协议、数据库编辑(CDD/ODX/DBC)培训;
2、AUTOSAR软件架构理论、实践培训;
3、电子电器架构车载诊断刷写方式、网关、企业标准培训;
4、测试项目(脚本培训);
5、Bootloader demo源码、刷写上位机…

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容