Linux - Trae Code Linux 环境嵌入式开发指南

目录

  [1. Trae IDE 安装](#1. Trae IDE 安装)

  [2. 项目导入与后续开发](#2. 项目导入与后续开发)

  [3. 工程创建](#3. 工程创建)

  [4. 配置调试环境](#4. 配置调试环境)

1. Trae IDE 安装

Trae Code 是一款面向开发者的智能编程 IDE,深度集成 AI 编码能力,同时完全兼容 VS Code 的插件生态。在 Linux 平台上,它以原生 .deb 包的形式提供,安装过程简洁,支持 x86_64 和 ARM64 两种主流架构。

1.1 下载 Trae Code 安装包

Trae 下载官网

访问 Trae 官方下载页,根据你的系统架构选择对应 Linux 平台的.deb格式安装包:

架构 版本 适用场景
x86_64 / AMD64 支持 x64 版本 主流桌面、笔记本和工作站使用,覆盖绝大多数 Intel / AMD 处理器的 Linux 发行版
ARM64 / aarch64 支持 ARM64 版本 适用于树莓派 4/5、ARM 开发板、Apple Silicon 虚拟机等 ARM 架构设备

下载完成后,安装包通常位于 ~/Downloads 目录下,文件名形如 TraeCode_CN-linux-x64.deb

1.2 安装IDE

以 Debian / Ubuntu 系发行版为例,打开终端后按以下步骤操作:

bash 复制代码
# 1. 更新软件源索引
sudo apt update

# 若安装包不在 Downloads目录下,就进行如下移动操作
mv TraeCode_CN-linux-x64.deb ~/Downloads

# 2. 切换到安装包所在目录
cd ~/Downloads

# 3. 安装 Trae IDE(文件名以实际下载为准)
sudo apt install ./TraeCode_CN-linux-x64.deb

# 4. 若遇到依赖问题,执行以下命令自动修复
sudo apt install -f

验证安装 :安装完成后,在应用菜单中搜索 "Trae" 即可启动。也可以在终端输入 trae-cn 命令行启动。
如需卸载,执行以下命令:

bash 复制代码
sudo apt remove trae-cn    //  只卸载程序本体,保留用户配置文件

1.3 安装 VS Code 与推荐扩展

Trae Code 本身可独立使用,但嵌入式开发涉及的部分工具链插件(如 Cortex-Debug)在 VS Code 生态中更为成熟。建议两者配合使用,以获得最佳开发体验。

bash 复制代码
# Snap 方式安装(推荐 Ubuntu 用户)
sudo snap install --classic code

# 验证安装是否成功:
code --version    # 输出类似 1.9x.0 的版本号

# 启动 VS Code
code

⚠️ 非 Snap 发行版 :如果你使用的 Linux 发行版不支持 Snap,可以从 VS Code 官网 下载 .deb 包,用 sudo apt install 安装,步骤与 Trae IDE 一致。

必装扩展清单(VS Code 扩展市场搜英文名称):

扩展名称 用途说明
C/C++ Microsoft 官方扩展,提供 C/C++ 代码编辑、智能补全、语法高亮、代码格式化等核心功能
C/C++ Extension Pack C/C++ 开发工具合集,包含 CMake 集成、调试适配器等,一键安装全家桶
CMake Tools 支持 CMake 项目的一键配置、构建、调试,自动识别工具链和构建目标
Cortex-Debug ARM Cortex-M / Cortex-R 系列微控制器调试核心插件,支持 J-Link、OpenOCD 等多种调试器
Python Python 代码编辑与调试支持,嵌入式开发中常用于构建脚本和测试工具
DeviceTree Zephyr / NuttX / Linux 设备树语法高亮与补全,嵌入式 Linux 和 RTOS 开发必备
Makefile Tools 裸机 Makefile 项目的语法提示和构建支持,适合传统 SDK 工程
GitLens 增强 Git 集成能力,代码行级 blame 显示、提交历史追溯,团队协作利器

2. 项目导入与后续开发

第一次启动 Trae IDE 时,系统会引导你完成基础配置。整个过程只需几分钟,核心步骤如下:

步骤 1:选择主题与语言

根据个人偏好选择浅色 / 深色主题和界面语言。Trae Code 原生支持简体中文,无需额外安装语言包。

步骤 2:一键导入配置

支持从 VS Code、Cursor 等主流 IDE 导入已有配置,包括键位绑定、主题、已安装扩展等,平滑迁移开发习惯。

步骤 3:添加命令行工具

trae 命令添加到系统 PATH 中,之后即可在终端使用 trae . 快速打开当前目录。

步骤 4:账号登录

使用手机号完成登录认证,解锁 AI 编程助手、云端同步等高级功能。未登录状态下基础编码功能不受影响。

2.2 日常开发工作流

项目导入完成后,可以按以下节奏开展日常开发:

  • AI 辅助编码 --- 选中代码片段后可直接请求 AI 解释、重构或补全。在注释中描述需求即可生成对应代码,大幅提升编码效率。
  • 命令面板快速操作 --- 按 Ctrl+Shift+P 调出命令面板,输入关键词即可执行几乎所有操作,无需记忆复杂的菜单路径。
  • 工作区配置 --- 每个项目根目录下的 .vscode/ 文件夹存放工作区配置,包括 settings.jsontasks.jsonlaunch.json 等,支持团队共享。
  • 插件市场扩展 --- 左侧栏切换到扩展面板(Ctrl+Shift+X),搜索并安装所需插件。Trae Code 兼容绝大多数 VS Code 扩展。

💡 小技巧:同步配置 --- 在多台机器上使用 Trae Code 时(同一账号,多机共用),开启设置同步(Settings Sync)可以自动同步扩展、键位、主题等配置,保持开发环境一致。


3. 工程创建

Trae Code 支持多种嵌入式工程类型。以下介绍三种最常见的工程创建方式,可根据项目需求选择合适的方案。

前置条件: 在开始之前,请确保已安装以下工具:

bash 复制代码
# 1. ARM 工具链安装与验证
# Ubuntu / Debian
sudo apt install gcc-arm-none-eabi

# 验证安装
arm-none-eabi-gcc --version   # 预期输出 arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors ...)

# 2. 安装 CMake
sudo apt install cmake

# 验证
cmake --version

3.1 CMake 工程

CMake 是目前嵌入式领域最主流的构建系统之一,STM32CubeMX、Zephyr、ESP-IDF 等均支持 CMake 输出。配合 CMake Tools 扩展,可以实现一键配置和构建。

创建步骤

步骤 1:新建项目文件夹

在合适的位置创建项目目录,并用 Trae Code 打开:

bash 复制代码
mkdir my-embedded-project && cd my-embedded-project
trae .

步骤 2:创建独立的 CMake 工具链文件

在项目根目录创建 arm-none-eabi-gcc.cmake。交叉编译场景下建议使用独立的 toolchain file,而非直接在 CMakeLists.txt 中设置编译器,这样可以避免 CMake 在配置阶段尝试链接宿主系统库导致失败。

cmake 复制代码
# arm-none-eabi-gcc.cmake
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR ARM)

set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)

# 跳过编译器检测中的链接步骤
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

# 指定查找根路径模式
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

⚠️ 注意: CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) 这行是关键:没有它,CMake 会在配置阶段尝试编译并链接可执行文件,而交叉编译工具链无法链接宿主系统库,将导致配置失败

步骤 3:编写顶层 CMakeLists.txt

在项目根目录创建 CMakeLists.txt,以下是一个 ARM Cortex-M4 的最小模板:

cmake 复制代码
cmake_minimum_required(VERSION 3.20)
project(my_firmware C CXX ASM)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

# 芯片型号参数(以 STM32F407 为例,Cortex-M4F)
# 注意:请根据目标芯片的 FPU 类型调整以下参数
# - 无 FPU 的 Cortex-M4:去掉 -mfpu 和 -mfloat-abi
# - Cortex-M4F(单精度 FPU):-mfpu=fpv4-sp-d16 -mfloat-abi=hard
# - Cortex-M7F(双精度 FPU):-mfpu=fpv5-d16 -mfloat-abi=hard
add_compile_options(
    -mcpu=cortex-m4
    -mthumb
    -mfpu=fpv4-sp-d16
    -mfloat-abi=hard
    -Wall
    -g
)

add_link_options(
    -mcpu=cortex-m4
    -mthumb
    -mfpu=fpv4-sp-d16
    -mfloat-abi=hard
    -T ${CMAKE_SOURCE_DIR}/STM32F407VG_FLASH.ld
    -Wl,--gc-sections
    -Wl,-Map=${PROJECT_NAME}.map
)

# 源文件
add_executable(${PROJECT_NAME}.elf
    src/main.c
    src/system_stm32f4xx.c
    startup/startup_stm32f407xx.s
)

# 生成 .hex 和 .bin 文件,并输出大小信息
add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD
    COMMAND arm-none-eabi-objcopy -O ihex $<TARGET_FILE:${PROJECT_NAME}.elf> ${PROJECT_NAME}.hex
    COMMAND arm-none-eabi-objcopy -O binary $<TARGET_FILE:${PROJECT_NAME}.elf> ${PROJECT_NAME}.bin
    COMMAND arm-none-eabi-size ${PROJECT_NAME}.elf
)

步骤 4:使用 CMakePresets.json 管理配置

在项目根目录创建 CMakePresets.json,可避免每次手动指定工具链文件,并便于管理 Debug/Release 构建类型:

json 复制代码
{
  "version": 3,
  "configurePresets": [
    {
      "name": "arm-debug",
      "displayName": "ARM Debug",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/debug",
      "toolchainFile": "${sourceDir}/arm-none-eabi-gcc.cmake",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "arm-release",
      "displayName": "ARM Release",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/release",
      "toolchainFile": "${sourceDir}/arm-none-eabi-gcc.cmake",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "arm-debug",
      "configurePreset": "arm-debug"
    },
    {
      "name": "arm-release",
      "configurePreset": "arm-release"
    }
  ]
}

配置和构建命令:

bash 复制代码
cmake --preset arm-debug   
cmake --build --preset arm-debug

步骤 5:配置 CMake Tools

安装 CMake Tools 扩展后,按 Ctrl+Shift+P 输入 "CMake: Configure",选择对应的工具链变体(即 Preset 中定义的 arm-debug 或 arm-release)即可自动完成配置。点击底部状态栏的 Build 按钮即可一键构建。

3.2 STM32 裸机工程

如果你使用 STM32 芯片,推荐通过 STM32CubeMX 生成初始化代码,再导入 Trae Code 进行开发。

创建流程
  1. 打开 STM32CubeMX,选择目标芯片型号(如 STM32F407VG)
  2. 配置引脚、时钟树、外设参数(GPIO、UART、SPI 等)
  3. 在 Project Manager 中,Toolchain / IDE 选择 Makefile
  4. 点击 GENERATE CODE 生成工程代码
  5. 用 Trae Code 打开生成的工程文件夹

ℹ️ Makefile 工程构建 :在终端执行 make -j$(nproc) 即可编译。也可以配置 tasks.json,将构建命令绑定到快捷键。
配置 tasks.json 绑定快捷键

在 .vscode/tasks.json 中添加:

json 复制代码
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build STM32 (Makefile)",
      "type": "shell",
      "command": "make",
      "args": ["-j"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "problemMatcher": ["$gcc"]
    }
  ]
}

3.3 Zephyr RTOS 工程

Zephyr 是 Linux 基金会主导的开源实时操作系统,原生支持 CMake + West 构建体系,在 Trae Code 中体验良好。

前置条件: 确保已安装 Zephyr SDK 和 West 工具,此处不讲解Zephyr环境的安装和配置过程。

创建应用工程
bash 复制代码
# 在 zephyrproject 下创建应用目录
mkdir -p ~/zephyrproject/my_app/src
cd ~/zephyrproject/my_app

# 创建 CMakeLists.txt
cat > CMakeLists.txt << 'EOF'
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(my_app)
target_sources(app PRIVATE src/main.c)
EOF

# 创建示例源码
cat > src/main.c << 'EOF'
#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>

int main(void)
{
    while (1) {
        printk("Hello from Zephyr!\n");
        k_msleep(1000);
    }
    return 0;
}
EOF


# 构建(以 STM32F407 开发板为例)
west build -b stm32f4_disco .

💡 开发板适配:Zephyr 支持数百款开发板,使用 west boards 查看完整列表,将 -b 参数替换为你的开发板名称即可。首次使用某款开发板时,建议先运行 west build -b samples/hello_world 验证 board 支持是否正常。


4. 配置调试环境

嵌入式开发的调试体验直接影响开发效率。Cortex-Debug 插件为 ARM Cortex-M 系列芯片提供了完整的图形化调试能力,支持断点、单步、寄存器查看、变量监视等功能。

4.1 Cortex-Debug 插件

Cortex-Debug 是 VS Code / Trae Code 生态中最成熟的 ARM 调试扩展,支持多种调试后端:

表 4-1 支持的调试服务器类型

调试器类型 说明 servertype 值
J-Link SEGGER 官方调试器,速度快、稳定性高,支持绝大多数 ARM 芯片 jlink
OpenOCD 开源调试服务器,支持 ST-Link、J-Link、CMSIS-DAP 等多种硬件 openocd
ST-Link (GDB) ST 官方调试工具,配合 ST-Link 硬件使用 stutil
pyOCD Python 实现的开源调试器,支持 CMSIS-DAP 和多种 Arm Cortex-M 芯片 pyocd
Black Magic Probe 一体式调试器固件,直接提供 GDB 串口 bmp

4.2 launch.json 配置详解

在项目根目录的 .vscode/ 文件夹下创建 launch.json 文件,该文件定义了调试启动的所有参数,告诉VsCode如何连接调试器、加载哪个固件文件(.elf)以及使用什么调试服务器。以下是 STM32 + J-Link 的典型配置:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Microcontroller",
            "cwd": "${workspaceFolder}",
            "executable": "build/your-project.elf",
            "request": "launch",
            "type": "cortex-debug",
            "runToEntryPoint": "main",
            "servertype": "jlink",
            "interface": "swd",
            "device": "STM32F407VG",
            "svdFile": ".pack/STM32F407VG.svd"
        }
    ]
}

表 4-2 launch.json 逐项解释关键配置项的含义:

字段 说明
name 调试配置名称,会显示在调试面板的下拉菜单中,方便识别不同的调试目标
executable 固件 ELF 文件路径,包含调试符号信息。通常是构建产物,路径相对于 cwd
request 启动方式:launch 为从头启动,attach 为附加到已运行的目标
type 调试器类型,固定为 cortex-debug,由 Cortex-Debug 扩展提供
runToEntryPoint 启动后自动运行到指定函数入口,通常设为 main,跳过启动汇编代码
servertype 调试服务器类型,如 jlinkopenocdpyocd
interface 调试接口协议,常用 swd(Serial Wire Debug,引脚少)或 jtag
device 目标芯片型号,J-Link 需要用此参数确定 Flash 烧录算法和内核类型
svdFile SVD(System View Description)文件路径,用于在调试时查看外设寄存器的值

💡 SVD 文件哪里找 :SVD 文件通常可以在芯片厂商的 SDK 或 CMSIS Pack 中找到。STM32 用户可在 STM32CubeMX 生成的工程中找到 .ioc 同级目录下的 SVD 文件,或从 Keil CMSIS Pack 下载对应芯片的 Pack 包后解压提取。


相关推荐
曦夜日长1 小时前
Linux系统篇,进程概念(三):进程状态详解、僵尸进程与孤儿进程的深度解析、Slab机制的了解
linux·运维·服务器
FlightYe1 小时前
音视频修炼之编码器(一):AVC、HEVC编码器内部
android·linux·c++·音视频
云栖梦泽1 小时前
网络设备驱动(1)
linux·arm开发·嵌入式硬件
Jia ming2 小时前
从打补丁到一行配置:PREEMPT_RT 主线化之后,实时内核到底该怎么配?
linux
杨云龙UP2 小时前
MySQL Host is blocked because of many connection errors 导致 JDBC 连接失败排查与解决
linux·运维·网络·数据库·sql·mysql·登录失败
企鹅的蚂蚁3 小时前
LubanCat RK3588 实时 Linux 开发(九):从 U-Boot 到 initramfs 的串口启动故障分析
linux·rk3588·u-boot·串口调试·initramfs·linux启动
kkkkkkkkkk_Z3 小时前
学嵌入式和Linux应用编程|学习日记:UDP协议与Wireshark抓包学习笔记
linux·笔记·学习
Lzh编程小栈3 小时前
STM32 DMA深度解析|原理、完整工作流程、寄存器、中断联动,嵌入式面试高频考点(F1系列)
c语言·stm32·单片机·mcu·面试
嵌入式小能手3 小时前
飞凌嵌入式ElfBoard-Shell编程应用实例-提取字符并设置rtc时间
linux