跳转至

Telink VS Code Extension User Guide


Telink Extension 可以将 TelinkIoTStudio 的工程转换为可在 VS Code 使用的 CMake 工程,并支持在 VS Code 中开发 Telink TL32 和 TC32 系列芯片的 SDK。

转换TelinkIoTStudio工程为CMake Project

如果你的仓库第一次使用,需要运行转换功能。

VS Code工作空间打开一个SDK目录,将TelinkIoTStudio工程转换为CMake工程,选择需要转换的工程。

开始转换

转换完成后,可以在PROJECT OUTLINE查看project - target - source。

转换完成

可以转换多个工程,重复运行上述命令,选择其他工程即可。

CMake 配置、构建

插件在运行构建命令的时候,会默认自动运行配置。

构建

电脑环境需要安装CMakeMakeToolchain安装方法请参考章节构建环境软件安装

点击target旁边的小火箭按钮可以开始构建。

开始构建

构建完成后, 可以看到构建产物和构建Log。

构建完成

Clean

在target右键菜单,选择Clean Target,或者下方clean按钮。

Clean

CMake工程构成

(1) CMakeLists.txt: CMake工程函数,TL和TC系列有区别。

(2) cmake_configs: SDK配置文件(*_cmake.json)。CMakeLists.txt会去读取配置生成工程,目前不要手动去修改,否则可能会导致功能异常。

(3) cmake_builds: 工程编译中间文件。

CMake Output

烧录

在 Telink Extension 中,有两种烧录方式可供用户选择:

(1) 使用 BDT 工具进行烧录,使用方法请参照章节 BDT工具使用

(2) 使用 Jtag 接口进行烧录:

编译完成后,点击 Development Tools -> Jtag_burn

Jtag Burn

Telink Jtag Burn With ICEman 页面中,用户可以选择配置 ICEmanJtag_Burn 的路径,芯片类型和烧录起始地址:

Jtag Burn Config 1

用户也可以选择配置 ICEman 的连接方式及端口:

Jtag Burn Config 2

然后点击 Start ICEman 按钮启动 ICEman,点击后,用户需要选择启动方式:

  • Default 模式,Jtag 为默认的四线连接方式。
  • SDP 2-wire 模式,ICEman 启动时添加 -I aice_sdp.cfg,Jtag 使用两线的连接方式,需要确保硬件支持。
  • -H 模式,ICEman 启动时添加 -H 选项,连接成功后,对芯片执行 reset-and-hold 操作。

一般情况下,若没有后两种的需求,建议选择 Default 模式。

Start ICEman

ICEman 的 log 中,若出现 ICEman is ready to use 的字样,则表示连接成功:

ICEman Log

然后用户可以配置 Jtag_Burn 执行时的参数,并点击 Burn 按钮开始烧录:

Start Burning

并通过 log 判断是否烧录成功:

Jtag Burn Log

使用 Jtag 调试

在程序烧录完成后,用户可以通过 Jtag 接口和 GDB 工具进行调试,包括单步调试、断点调试、查看变量、查看堆栈、查看寄存器、查看内存、查看汇编等等。

在编译完成后,将鼠标悬停在生成的 elf 文件上,此时会出现一个调试按钮,点击即可打开调试配置界面:

Debug Button

Telink Extension 支持单核或者双核调试,同时支持 ICEman 或者 J-Link 两种 Server,用户可以在此配置。需要注意的是,我们没有提供 J-Link 调试工具套件,若需要使用 J-Link 调试,需要提供 JLinkGDBServer 的完整路径。

Debug Configuration

用户还可以配置需要调试的文件(ELF 格式的文件)、GDB 路径以及 GDB 启动后执行的 initCommand。一般情况下,使用默认设置即可。若需要查看外设寄存器,可以根据芯片类型选择对应的 SVD 文件。若使用 J-Link 调试,还需要选择芯片核心的类型(D25F 或者 N22)。另外,若没有提前下载程序,可以使能 Jtag_burn 功能在调试之前下载程序。

Debug Configuration

点击右下角的 Generate Configuration and Debug 即可开始调试,同时会在 .vscode 文件夹下生成 launch.json 文件,里面包含调试配置,若有需要,可以在 'type' 为 'tlkTarget' 的对象中自行修改。

调试页面可以大致分为图中的四个区域:

(1) 调试控制区域:提供调试控制功能,包括 continueinterruptstep overstep intostep outrestartdisconnect

(2) 变量和核心寄存器:在这里可以查看当前作用域中存在的变量,同时可以查看芯片的全部核心寄存器。

(3) 外设寄存器:若正确指定了 SVD 文件,可以在这里查看芯片的外设寄存器,并根据权限读或者写。

(4) Debugger Console:这里会显示调试过程中 GDB 的输出信息,同时在下方的输入框中用 >Command 的形式输入命令,GDB 会执行命令并返回结果,例如,>info br

Debug View

构建环境软件安装

  • CMake
  • Make(Windows会要求统一安装)
  • Toolchain

Toolchain文件比较大,有多种应用方式可选。

(1) Telink Tools Installer(适用于没有安装TelinkIoTStudio环境,大概2GB,包含CMake、Make、Toolchain等常用软件),安装后插件会自动检测Tools路径。安装包的使用方法请参考章节Telink Tools Installer

(2) 本地配置, 如果已经安装TelinkIoTStudio,复用Toolchain即可。

(3) 在线安装, 右键选择install。(文件比较大,可能限制于网络速度,需要耗费一些时间。)

Toolchain本地配置

在构建过程中发现缺失对应Toolchain,右下侧会弹出选择框。点击Configure, 选择对应toolchian路径下的gcc文件, riscv32-elf-gcc或者tc32-elf-gcc

点击Configure

选择‘gcc’文件

CMake软件安装和配置

右键install或者browse, 目前建议选择install,使用指定版本的CMake。

配置CMake软件路径

配置CMake构建线程数量:

配置构建线程数量

工程管理

增删工程和Target

PROJECT OUTLINE和工程名称节点旁边的+分别对应(Add Project, Add target)。

在输入框输入新的名称,然后选择:

  • 新建空白工程/target
  • 复制已有工程/target

复制已有工程相较新建工程的优势:相似的工程可经过简单修改完成。

添加工程

工程文件增删改查

增加/删除文件

在对应文件夹右键菜单,在输入框输入新的名称。

文件操作

导入/删除引用

导入引用:不实际创建文件,表示给target导入已经存在的文件到source中。

删除引用:不实际删除文件,从target的source中移除引用。

导入和删除引用

编译选项配置

target右键进入工具链配置页面,配置界面与TelinkIoTStudio一致。

Properties参数配置

关于TelinkIoTStudio使用的参数说明

${ConfigName} ${ProjName}在工程转换过程中会被展开为实际值。

${workspace_loc:/${ProjName}}格式的路径会被转换成${CMAKE_CURRENT_SOURCE_DIR}

例如,shell语句

${workspace_loc:/${ProjName}}/../../../tools/tl_check_fw_tool/tl_check_fw. ${ConfigName} ${ProjName}

>>> after converted >>>

${CMAKE_CURRENT_SOURCE_DIR}/project/tlsr_riscv/B92/../../../tools/tl_check_fw_tool/tl_check_fw.sh UART_Demo TL_PLATFORM_SDK_B92

类似-I、-L路径参数,在TelinkIoTStudio里推荐使用${workspace_loc:/${ProjName}}格式。

自定义脚本(Pre/Post Build)

Telink 扩展支持在 pre/post-build 阶段执行自定义脚本。

但须注意:TelinkIoTStudio 与 VS Code 的项目目录结构存在差异,不能在命令中直接使用相对路径。

如果当前的工程是 TelinkIoTStudio 工程,希望转换之后能正常执行 pre/post-build, 那么不能直接使用类似../../的写法, 而是使用 ${workspace_loc:/${ProjName}} 来指代你的工程根目录。

例如, 一段脚本改写方式。

"../../../tools/tl_link_load.sh" "../../../platform/boot/tl321x/boot_tl321x.link" "${workspace_loc:/${ProjName}}/boot.link"

写成

"${workspace_loc:/${ProjName}}/../../tools/tl_link_load.sh" "${workspace_loc:/${ProjName}}/../../platform/boot/tl321x/boot_tl321x.link" "${workspace_loc:/${ProjName}}/boot.link"

BDT使用

安装:右键BDT选择install/browse。

烧录

构建完成后,可以点击bin文件右侧烧录按钮,将固件烧录到目标开发板。

BDT快捷烧录

点击BDT工具栏的右侧箭头,打开BDT工具页面,烧录固件。

BDT烧录

查看Flash/SRAM数据

BDT查看内存

针对SRAM可按字节操作的介质,可以修改对应地址数据,点击WriteBack写回到目标开发板。

BDT写入数据

SDK Downloader

SDK Downloader 功能可以用来获取当前 Telink VS Code Extension 支持的所有 SDK,用户可以通过以下两种方式打开 SDK Downloader:

  • 在 Telink Extension TreeView 中单击打开:

Open SDKDownloader

  • 在 VS Code 命令面板中输入 "Open sdkDownloader" 打开:

Open sdkDownloader

打开 SDK Downloader 后,用户可以看到所有被支持的 SDK 的 Git 仓库列表。用户可以选择直接从 Gitee 或者 GitHub 上将 SDK 克隆到本地,也可以点击 Fetch tags list 来获取该仓库的所有 tags。将需要的 tags 克隆至本地,如下图:

Clone or Fetch Tags(branch)

若用户点击 Fetch tags list,则可以点击每一个 tags 旁边的下载按钮将指定的 tags 克隆到本地,同时用户可以点击右边的切换按钮,它的功能是将当前的 tags 列表切换成 branch 列表:

Checkout Tags or Branch

注意

  • 该功能实际上是将仓库克隆至本地,然后 checkout 用户指定的 tag 或者 branch,所以用户获取的同样也是指定 SDK 的 Git 仓库。

在下载完成后,你可以选择直接打开刚刚获取的 SDK:

Open SDK

简介

Telink Tools Installer 安装包用于安装 Telink SDK 开发需要的开发工具,在 VS Code 中使用 Telink Extension 进行开发之前,需要先安装这些工具。

该安装包包括以下组件: * 工具链 * TC32-GCC Toolchain * TL32 ELF MCULIB V5F GCC12.2 * TL32 ELF MCULIB V5 GCC12.2 * TL32 ELF MCULIB V5F GCC10.3 * TL32 ELF MCULIB V5F GCC7.4

  • 下载和调试工具

    • ICEman
    • Jtag_burn
    • Telink BDT(Windows)
    • Telink libusb BDT(Linux)
  • 其他工具

    • CMake : 使用 Telink Extension 开发的 SDK 基于 CMake 的构建系统。

使用安装包

在空间足够 (大约需要 5.2 GB) 的情况下,我们推荐在安装时遵循安装程序的默认行为,即双击运行后,点击右下角 Install 按钮安装。上述工具会被安装在 {User_Dir}/.Telink_Tools 文件夹中。

选择安装路径

若用户不想安装在默认文件夹,可以选择安装路径,安装程序会检测用户所选择的安装路径是否有足够的空间。

选择路径

剩余空间提示

安装过程

安装进程会被显示在 Installation Log 窗口。在安装过程中,用户可以点击 Install 右边的 Cancel并确认,程序将在完成当前工具的安装后自动暂停。若用户需要在安装过程中退出,可以使用 Cancel,而不是直接关闭窗口。

Install Log

安装成功后会有如下提示,确认后即可退出程序。

Install Successfully

安装完成

安装完成后,在 Linux 中,用户需要根据 Installer 的提示,在终端中执行下列命令,完成配置:

sudo cp /home/wang/.Telink_Tools/udev/99-libtlink.rules /etc/udev/rules.d/
cd /home/wang/.Telink_Tools/udev; chmod a+x install_linux_package.sh; sudo ./install_linux_package.sh
cd /home/wang/.Telink_Tools/udev; chmod a+x change-udev-usb-mode.sh; sudo ./change-udev-usb-mode.sh

在 Windows 中,安装完成后 Installer 会弹窗询问是否安装 aice_libusb_driver,我们建议选择安装。

已知bug

(1) 选项可能没有100%全部转换,因为有些配置没有体现在工程文件.cproject中,是IDE默认行为。