目录

前言

RK-3506开发板开箱

串口连接

网口连接

配置WSL编译环境

TRAE环境构建

WSL连接

生成测试程序

​编辑

编译程序

部署并运行程序

最终生成的代码

C语言代码

任务文件

结束语


前言

新年伊始,飞凌嵌入式旗下的教育品牌ElfBoard一口气发布了4款新开发板,很开心有机会第一时间体验其新产品。正好自己最近在学习使用TRAE IDE进行AI编程,今天正好拿ELF-RK3506开发板练手,尝试构建其开发的AI环境。

RK-3506开发板开箱

ELF-RK3506 开发板核心板与底板通过邮票孔方式连接,其核心板搭载基于 ARM架构的低功耗高性能 处理器 RK3506 。该处理器集成 3 Cortex-A7 配备独立的 NEON协处理器可广泛适用于计算机、手机、个 人移动互联网以及数字多媒体设备。飞凌嵌入式推出这款板子显然是吸引单片机开发者进入Linux开发领域。

串口连接

ELF-RK3506 供电电源和调试串口功能共同使用一根 USB typeC 线。连接 PC 机的 USB
口和板卡的 typeC 口(丝印 DEBUG),就可以通过串口登录开发板,用户名是root,无密码。登录后,使用uname命令可以查看操作系统的版本。
root@elf3506-buildroot:~# uname -a
Linux elf3506-buildroot 6.1.99+ #1 SMP PREEMPT Fri Nov  7 10:16:11 HKT 2025 armv7l GNU/Linux

网口连接

 ELF-RK3506 开发板没有WiFi模块,提供了一个网口和一根网线,可以直接连接到家里的路由器上。默认该网口是固定IP,需要改成DHCP以获得路由器分配的IP地址。
root@elf3506-buildroot:~# udhcpc
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.1.122, server 192.168.1.1
udhcpc: lease of 192.168.1.122 obtained from 192.168.1.1, lease time 86400
deleting routers
adding dns 192.168.1.1
root@elf3506-buildroot:~#

配置WSL编译环境

厂商提供了用于编译的VMWare环境,不过我没有用,还是喜欢使用Windows自带的WSL2。下面介绍一下如何配置WSL编译环境。

首先从厂商的资料云盘上下载两个软件包:ELF-RK3506 Linux学习 | ElfBoard 官网-嵌入式Linux开发板/学习板-让嵌入式学习释放无限可能

将上述交叉编译工具拷贝到开发环境 /home/test/(这里假设用户是test) 目录下,并在该目录下解压。
test@Star:~$ tar -vxf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.bz2
test@Star:~$ tar -vxf 3506-toolchain.tar.bz2

解压后执行一下下面的命令测试是否正常:

gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc -v

TRAE环境构建

接下来就要进入AI编程工具TRAE的环境构建了。TRAE是豆包推出的一个AI编程工具,它提供完整的 IDE 核心能力,支持多种主流编程语言与热门开发框架,集成代码编辑、智能补全、调试运行、版本控制等一体化工具链。适用于独立开发者、学生及自由职业者,用于项目开发、技术学习与实践探索。国内用户可以从下面网站下载最新版本:TRAE - The Real AI Engineer | TRAE - The Real AI Engineerhttps://www.trae.cn/

WSL连接

TRAE 的远程开发功可以支持WSL,使你能够像连接远程服务器一样,直接在本地 WSL 环境中编写、调试和运行代码。在TRAE的官方文档中对这部分有详细的介绍,直接安装步骤进行即可:使用 WSL 开发 - 文档 - TRAE CN

连接成功之后,就可以打开一个WSL中目录,假定是simple。

生成测试程序

我们采用TRAE的默认配置,模型是Auto,采用Builder方式工作,输入如下提示词:

完成如下任务:
1. 创建一个基于Linux控制台的测试程序,验证编译工具链,简短有趣
2. 创建vscode中进行编译的任务文件,交叉编译命令为~/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc
3. 创建vscode中进行SSH连接的任务,服务器IP为192.168.1.122,拷贝编译得到的可执行文件到服务器上,并进行执行。

在上面的提示词,我使用的是vscode,而不是TRAE IDE,一是因为TRAE IDE本身就是基于VSCode,二是因为如果用TRAE IDE,则模型不能很好地处理。

TRAE开始勤奋的工作,开始生成C程序代码(test_program.c)和任务代码(task.json)。

在检查代码时,我发现自己刚才忘了提供服务器的用户名和密码,导致生成的task.json有点小问题,我告诉TRAE“忘了告诉你服务器的用户名是root,没有密码”。TRAE马上把这个问题帮我改过来了。

编译程序

现在使用TRAE IDE菜单上的“终端→运行生成任务”,就可以交叉编译生成可执行文件test_program了。

部署并运行程序

接下来使用TRAE IDE菜单上的“终端→运行任务..”,然后选择“Deploy and Run via SSH”就可以将文件拷贝到开发板上了。

在运行程序时遇到一个问题,就是chmod命令执行失败,导致整个任务失败。

把错误信息反馈给TRAE,它很快分析出来是对JSON中转义字符处理不当导致错误,并进行了修正。

再次运行修改之后的代码,就可以得到正确的结果了(带有彩色的文字输出)。

最终生成的代码

贴一下最终的代码供大家参考。

C语言代码

test_program.c代码如下:

#include <stdio.h>
#include <unistd.h>

int main() {
    // 彩色ASCII艺术:笑脸
    const char *colors[] = {
        "\033[31m",  // 红色
        "\033[33m",  // 黄色
        "\033[32m",  // 绿色
        "\033[34m",  // 蓝色
        "\033[35m",  // 紫色
        "\033[36m"   // 青色
    };
    const char *reset = "\033[0m";
    
    printf("\n");
    printf("%s  **************************  %s\n", colors[0], reset);
    printf("%s *                          * %s\n", colors[1], reset);
    printf("%s *    Hello from Console!   * %s\n", colors[2], reset);
    printf("%s *                          * %s\n", colors[3], reset);
    printf("%s *    \033[1m😊  ASCII Art! 😊\033[0m   * %s\n", colors[4], reset);
    printf("%s *                          * %s\n", colors[5], reset);
    printf("%s  **************************  %s\n", colors[0], reset);
    printf("\n");
    
    // 简单的动画效果
    printf("%sLoading", colors[2]);
    fflush(stdout);
    for (int i = 0; i < 3; i++) {
        usleep(500000); // 500ms
        printf(".");
        fflush(stdout);
    }
    printf("%s Done! %s\n\n", colors[3], reset);
    
    // 系统信息
    printf("%sSystem Info: %s\n", colors[1], reset);
    printf("- Architecture: ARM\n");
    printf("- OS: Linux\n");
    printf("- Compiler: GCC\n\n");
    
    printf("%sTest completed successfully! %s\n\n", colors[5], reset);
    
    return 0;
}

任务文件

vscode/task.json文件如下:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build (ARM Cross-Compile)",
      "type": "shell",
      "command": "~/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc",
      "args": [
        "-o",
        "test_program",
        "test_program.c"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared",
        "showReuseMessage": true,
        "clear": false
      },
      "problemMatcher": [
        "$gcc"
      ]
    },
    {
      "label": "Clean",
      "type": "shell",
      "command": "rm",
      "args": [
        "-f",
        "test_program"
      ],
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared",
        "showReuseMessage": true,
        "clear": false
      },
      "problemMatcher": []
    },
    {
      "label": "Deploy and Run via SSH",
      "type": "shell",
      "dependsOn": ["Build (ARM Cross-Compile)"],
      "command": "bash",
      "args": [
        "-c",
        "scp test_program root@192.168.1.122:/tmp/ && ssh root@192.168.1.122 \"chmod +x /tmp/test_program && /tmp/test_program\""
      ],
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": true,
        "panel": "shared",
        "showReuseMessage": true,
        "clear": false
      },
      "problemMatcher": []
    }
  ]
}

结束语

RK-3506开发板基于Linux,为嵌入式系统开发提供了很好的基础平台,而TRAE这样的AI编程工程的引入使得嵌入式开发变得非常简单而有趣。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐