【Telink TL322X 测评】第一章:开箱、环境搭建与首次烧录
# 【Telink TL322X 测评】第一章:开箱、环境搭建与首次烧录* **本章记录 ****Telink TL322X / TL3228XDK96D** 开发板的基础上手过程,包括开发板连接、VS Code 环境搭建、Telink 工具链安装、SDK 获取、USB 驱动安装、首次编译和首次烧录。
* **本章的重点不是复杂功能,而是先确认开发板是否可以稳定完成 ****识别、编译、烧录、读回校验和复位运行**。
## 1.0 当前自动化验证记录
**本章对应固件已经完成构建、烧录和读回校验:**
| **项目** | **结果** |
| ------------------------- | ------------------------------------------------------------------------ |
| **SDK target** | `feature_test` |
| **FEATURE\_TEST\_MODE** | `TEST_FEATURE_BACKUP` |
| **固件** | `firmware\eval00_feature_backup.bin` |
| **大小** | **137332 bytes** |
| **SHA256** | `08CCD4A811373A11B412CDB8794904F98F84829C43993F3AA970C0106C4DC6E3` |
| **烧录验证** | `verified`,读回 SHA256 与本地固件一致 |
| **日志** | `logs\flash_eval00_feature_backup.log` |
**本章已达到的效果:Windows 能识别 Telink CDC WinUSB 下载口,**`TC.exe all` 可以枚举 EVK,TL32 GCC/CMake 可以完成 TL322X target 构建,Flash 解锁、写入、读回和 SHA256 校验流程可复用到后续章节。
## 1.1 本章任务目标
**本章主要完成以下任务:**
```
1. 确认 TL322X 开发板可以被 Windows 正常识别;
2. 在 Windows 下搭建 VS Code + Telink 官方扩展开发环境;
3. 配置 TL32 GCC 12.2、CMake、Cygwin make、BDT 等工具;
4. 获取官方 tl_ble_sdk,并配置 TL322X 工程;
5. 编译 feature_test 示例;
6. 安装 Telink CDC WinUSB 驱动;
7. 使用 TC.exe 完成首次烧录、读回校验和复位运行;
8. 记录环境搭建过程中遇到的问题和解决方法。
```
**本次工程统一放在:**
```
D:\Project\Evaluation\Telink
```
**后续所有测评工程均放在 **`eval_projects` 目录下,避免直接修改官方 SDK 示例。
## 1.2 开发板与测试方式
**TL322X 是 Telink 面向低功耗无线连接应用的点点taptap安卓系列。本次使用的开发板属于 TL322X/TL3228XDK96D 方向,测评会从基础环境、基础外设、BLE、802.15.4/Zigbee/Thread/Matter、射频功耗和综合 Demo 逐步展开。**
**第一章选择从 ****环境和烧录链路** 开始,是因为后续所有测试都依赖这条链路:
```
Windows 识别开发板
↓
VS Code / Telink 扩展识别 SDK
↓
TL32 GCC 编译生成 bin
↓
Telink CDC / BDT 工具烧录
↓
读回 Flash 做校验
↓
复位后从 Flash 运行
```
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/105800q7x0p0emb0depem3.jpg)
* **外包装正面**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/110739wqwix9q5iwi25iwq.jpg)
* **所有物料一览**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/110100m0diiigc8thgzgzd.jpg)
* **开发板正面**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/110221x8a7430euofxq320.jpg)
* **开发板背面**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/110252d0x7d773gxhxv7gz.jpg)
* **开发板烧录接口特写**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/110937bcmo8399jzmo0s0z.jpg)
* **USB 接入电脑**
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/110957dwe93eewgr2uo2ro.png)
* **设备管理器中Telink CDC / WinUSB 设备识别**
## 1.3 独立工程与 SDK 基线
**本章记录目录为:**
```
D:\Project\Evaluation\Telink\eval_projects\00_board_environment_bringup
```
**官方 SDK 基线位于:**
```
D:\Project\Evaluation\Telink\tl_ble_sdk
```
**实际 SDK 工程目录为:**
```
D:\Project\Evaluation\Telink\tl_ble_sdk\tl_ble_sdk
```
**本次没有把官方 SDK 直接当作测评工程目录。这样做的好处是:SDK 可以保持相对干净,测评文章、日志、图片、视频和后续改动都放在 **`eval_projects` 下对应章节目录。
**本章的 **`src` 目录不是空工程,当前采用“SDK 引用 + 源码入口清单 + patch 记录”的方式管理源码:
```
src\build_config.json
src\sdk\
src\README.md
src\source_manifest.md
src\patches\feature_config_compile_time_override.patch
```
**实际参与构建的官方 SDK 源码入口见:**
```
src\source_manifest.md
```
## 1.4 VS Code 与 Telink 工具链安装
**本次使用 VS Code 配合 Telink 官方扩展进行开发。已安装的核心扩展包括:**
```
telink.tlk@1.3.1
telink.tlk-flash-tool@0.1.0
```
**Telink 工具统一安装在:**
```
C:\Users\陈治宇\.Telink_Tools
```
**主要工具路径如下:**
| **工具** | **路径或说明** |
| ----------------- | ----------------------------------------------------------------------- |
| **TL32 GCC** | `C:\Users\陈治宇\.Telink_Tools\toolchains\nds32le-elf-mculib-v5f` |
| **Cygwin make** | `C:\Users\陈治宇\.Telink_Tools\cygwin\bin\make.exe` |
| **CMake** | `D:\AppLication\STM32CubeCLT_1.19.0\CMake\bin\cmake.exe` |
| **BDT** | `C:\Users\陈治宇\.Telink_Tools\BDT\release_v5.9.2` |
| **ICEman** | `C:\Users\陈治宇\.Telink_Tools\ICEman\ICEman.exe` |
| **Jtag\_burn**| `C:\Users\陈治宇\.Telink_Tools\Jtag_burn\Jtag_burn.exe` |
**工具链版本验证结果:**
```
riscv32-elf-gcc 12.2.0
GNU gdb 12.0.50
GNU Make 4.3
GNU bash 4.4.12
```
## 1.5 环境搭建中遇到的问题
### 1.5.1 GitHub 克隆失败
**一开始尝试从 GitHub 克隆 SDK,但本机访问 GitHub 超时。后续改用 Telink 扩展 SDK Downloader 列表中的 Gitee 源:**
```
https://gitee.com/telink-semi/tl_ble_sdk.git
```
**最终克隆到的版本信息:**
```
release/V4.0.4.7
tag: V4.0.4.7_Patch_0001
```
### 1.5.2 工具链解压时出现 symlink 提示
**Windows **`tar` 解压 TL32 工具链时,对部分 symlink 或重复工具名提示 `Invalid argument`。实际检查后,关键编译器和 GDB 都可运行,因此没有影响后续构建。
### 1.5.3 GCC 找不到 Cygwin 运行时 DLL
`riscv32-elf-gcc.exe` 是依赖 Cygwin 运行时的程序。最初直接构建时出现:
```
error while loading shared libraries: ?: cannot open shared object file
```
**解决方法是把以下路径加入用户 PATH:**
```
C:\Users\陈治宇\.Telink_Tools\cygwin\bin
C:\Users\陈治宇\.Telink_Tools\toolchains\nds32le-elf-mculib-v5f\bin
```
### 1.5.4 驱动安装证书不受信任
**AICE/FTDI 驱动初次安装时,Windows 拒绝驱动包,提示证书链不受信任。后续将驱动包内的自签证书加入本机 **`Root` 和 `TrustedPublisher` 后,驱动包成功安装。
### 1.5.5 Telink CDC 初次识别为 Code 28
**开发板插入后出现:**
```
Telink CDC
USB\VID_248A&PID_3228\CDC_DEMO
Problem Code: 28
```
**这个设备虽然名字叫 CDC,但它不是普通 COM 口,而是 BDT 使用的 WinUSB 设备。解决方法是安装 BDT 自带的驱动:**
```
C:\Users\陈治宇\.Telink_Tools\BDT\release_v5.9.2\TGui\Apps\app1\cmd_tool\libusb_driver_install\InstallDriver.exe
```
**安装后设备状态变为:**
```
Class: USBDevice
FriendlyName: Telink CDC
Service: WinUSB
Driver: oem288.inf
Status: OK
```
## 1.6 TL322X 工程编译
**TL BLE SDK 中 TL322X 的 CMake 配置文件为:**
```
tl_ble_sdk\tl_ble_sdk\cmake_configs\TL_BLE_SDK_322X_cmake.json
```
**该配置包含以下 target:**
```
acl_central_demo
acl_connection_demo
acl_peripheral_demo
ble_controller
feature_test
```
**本章先选择 **`feature_test` 作为首次构建目标。构建完成后生成:
```
D:\Project\Evaluation\Telink\tl_ble_sdk\tl_ble_sdk\cmake_builds\TL_BLE_SDK_322X\feature_test.bin
```
**固件信息:**
```
file size: 137332 bytes
SHA256: 08CCD4A811373A11B412CDB8794904F98F84829C43993F3AA970C0106C4DC6E3
```
**构建过程中 SDK 内部有少量 **`-Waddress-of-packed-member` warning,位置在 TL322X 的 `can.c` 和 `lin.c`,不影响本次构建。
## 1.7 开发板识别与 Flash 信息读取
**Telink CDC 驱动安装完成后,使用 BDT TGui 目录中的 **`TC.exe` 枚举设备:
```
TC.exe all
```
**实际输出:**
```
Device 1: vid_248a&pid_3228&evk_id_0001&bus_003&addr_061
```
**虽然日志前缀显示 **`TL721X`,但后续命令可以通过 `--chip=TL322X` 指定当前目标点点taptap安卓。
**读取 Flash 信息:**
```
TC.exe fi -d 1 --chip=TL322X
```
**输出结果:**
```
Flash information:
flash mid = 0x00166085, flash status = 0x0038, lock area: 0x000000-0x1fffff
flash uid: 41 50 34 5a 39 39 38 03 00 20 76 4c 4c 01 45 78
```
**这里可以看到 Flash 初始处于写保护状态,烧录前需要先解锁。**
## 1.8 首次烧录与读回校验
**烧录前先备份 0 地址同等长度内容:**
```
TC.exe rf 0 137332 -o D:\Project\Evaluation\Telink\_device_backups\tl322x_flash0_backup_20260701_175929_137332.bin -d 1 --chip=TL322X
```
**解除 Flash 写保护:**
```
TC.exe ulf 0 0 -d 1 --chip=TL322X
```
**烧录 **`feature_test.bin`:
```
TC.exe wf 0 -i D:\Project\Evaluation\Telink\tl_ble_sdk\tl_ble_sdk\cmake_builds\TL_BLE_SDK_322X\feature_test.bin -d 1 --chip=TL322X
```
**烧录后读回同等长度数据:**
```
TC.exe rf 0 137332 -o D:\Project\Evaluation\Telink\_device_backups\tl322x_flash0_readback_20260701_175929_feature_test.bin -d 1 --chip=TL322X
```
**读回校验结果:**
```
Firmware SHA256:
08CCD4A811373A11B412CDB8794904F98F84829C43993F3AA970C0106C4DC6E3
Readback SHA256:
08CCD4A811373A11B412CDB8794904F98F84829C43993F3AA970C0106C4DC6E3
Readback verification: OK
```
**最后从 Flash 复位运行:**
```
TC.exe rst -f -d 1 --chip=TL322X
```
**输出:**
```
reset mcu ok.
```
## 1.9 实测现象
**本章实测现象如下:**
```
1. Windows 可以识别 Telink CDC,设备状态为 OK;
2. TC.exe 可以枚举到 evk_id_0001;
3. Flash 信息可以读取,说明 USB 下载链路正常;
4. feature_test 可以成功写入 Flash 0 地址;
5. 烧录后读回文件与本地 bin 的 SHA256 完全一致;
6. 执行 rst -f 后,开发板可以从 Flash 复位运行;
7. 复位后 Telink CDC 仍然在线,TC.exe all 仍能识别设备。
```
* `TC.exe all` 枚举到 `vid_248a&pid_3228&evk_id_0001` 的命令行截图
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/111123ke407cgfsz9b409e.png)
* `TC.exe fi -d 1 --chip=TL322X` 读取 Flash MID、UID、锁区信息的截图
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/111144thm0cmjjwkpj095h.png)
* **本地固件 SHA256 与 Flash 读回 SHA256 一致的校验截图**)
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/111203k9ckag7z3u15s0g7.png)
* `TC.exe` 完成写入、读回和 SHA256 校验的完整录屏
## 1.10 本章测试结论
**通过第一章测试,可以确认:**
```
1. TL322X 的 VS Code 开发环境已经搭建完成;
2. TL32 GCC、CMake、Cygwin make 和 Telink BDT 工具链可以正常工作;
3. Telink CDC WinUSB 驱动安装后,开发板可以被 TC.exe 正常访问;
4. TL BLE SDK 的 TL322X 工程可以成功构建 feature_test;
5. Flash 烧录、读回和 SHA256 校验链路已经打通;
6. 后续可以继续进行 GPIO、串口日志、BLE 和无线协议相关测评。
```
## 1.11 本章小结
**第一章完成了 TL322X 开发板最基础也最关键的 bring-up 工作。后续章节如果出现外设、协议栈或应用层问题,至少可以确认底层的编译、下载和 Flash 校验链路是可靠的。**
**本章遗留事项是 AICE/JTAG 调试器还没有作为独立设备枚举出来,后续会在烧录调试章节继续确认调试口、线缆和驱动绑定方式。**
页:
[1]