跳转至

泰凌VS Code扩展使用指南


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。

转换完成

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

SDK参数的注意事项请参考章节TelinkIoTStudio SDK中的参数使用注意

CMake构建

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

构建

电脑环境需要安装CMakeToolchain安装方法请参考章节构建环境软件安装与配置

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

CMake构建分为cmake configurecmake build2个步骤,点击小火箭按钮会将2个步骤合并。如果用户需要手动运行cmake configure在project右键选择即可。

CMake支持不同generator, 用法参考cmake generator

开始构建

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

构建完成

Clean

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

Clean

CMake工程构成

(1) CMakeLists.txt: CMake工程函数,SDK全局通用。

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

(3) cmake_builds: 工程编译中间文件(.o文件, output文件)。

CMake Output

工程管理

增删工程和Target

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

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

  • 新建空白工程/target
  • 复制已有工程/target (选择对应工程名称)

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

添加工程

工程文件增删改查

增加/删除文件

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

文件操作

导入/删除引用

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

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

导入和删除引用

编译选项配置

target右键点击Properties进入配置页面,配置界面与TelinkIoTStudio一致。

Properties参数配置

工程使能CPP

大部分工程只包含C,ASM 2种语言, 如果该Target添加了CPP语言,则在对应Target右键菜单Enable CPP. 插件默认复制一些编译选项到工程配置。

enable_cpp.png

可进入Target Properties修改对应CPP编译选项.

cpp_properties

烧录和调试

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

  • BDT

  • JTAG

BDT

安装:右键BDT选择Install / Browse。Browse根据文件选择框提示选择对应名称的软件。

该功能运行需要依赖Windows和Linux下的BDT工具。

快捷方式

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

BDT快捷烧录

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

BDT烧录

查看Flash/SRAM数据

BDT查看内存

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

BDT写入数据

JTAG

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

ICE Libusb驱动安装

JTAG使用前置:驱动安装

查看提示是否安装对应驱动:

ice_driver_check_install

Windows

ice_driver_install_windows

点击并运行Install_driver

ice_driver_install_folder_windows

Linux

点击安装后,会调转到运行一段安装命令, 输入密码获取root权限后运行。

ice_driver_install_linux

安装完毕后, 可以点击DEVELOPMENT TOOLS右侧refresh按钮刷新状态。

烧录

编译完成后,点击 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

调试

在编译完成后,将鼠标悬停在生成的 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

构建环境软件安装与配置

软件安装有多种方式可选:

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

(2) 本地配置, 如果已经安装TelinkIoTStudio,可以复用TelinkIoTStudio里面的toolchain等软件, 右键选择Browse。(节省安装时间)

(3) 在线安装, 右键选择install。(文件下载速度可能受限于网络速度和文件大小,需要耗费一些时间;优点是根据实际条件安装需要用到的软件。)

软件清单在DEVELOPMENT TOOLS列出,可以右键选择Install和Browse。用户在编译前可主动预安装,也可以在构建过程中根据提示再安装。

tool_install

构建需要2个必备软件CMake和Toolchain。

Toolchain本地配置

在构建过程中发现缺失对应Toolchain时,右下侧会弹出选择框。

点击Configure, 根据文件选择框提示,选择对应toolchian路径下的gcc文件:riscv32-elf-gcc或者tc32-elf-gcc

点击Configure

选择‘gcc’文件

如果Browse的版本不对, 会如下图提示:

toolchian_browse_check_version

CMake软件安装和配置

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

配置CMake软件路径

配置线程数量:

线程数量越多,构建速度越快。

配置构建线程数量

配置generator

Windows支持切换unix makefiles、ninja、mingw makefiles。 在Windows中ninja和mingw makefiles构建编译性能相较于unix makefiles有提高

Linux支持切换unix makefiles、ninja。

Select Cmake Generator

在使用不同generator的情况下,检查tool/toolchain对应软件是否安装。不同generator需要使用不同的构建软件, 右键安装即可。

unix makefiles可以不用额外安装软件,toolchain里面已经包含。

mingw makefiles:mingw make。

ninja: ninja。

Check Cmake Generator Tools

更换不同generator,编译前需要删除cmake_builds目录,重新构建。

TelinkIoTStudio SDK中的参数使用注意

参数的使用方式会影响工程转换的效果。

${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"

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

WIFI SDK Development

Telink Extension 为 Telink TLSR9118 WIFI SDK 提供了支持:(使用时推荐在 VS Code 打开 SDK 中顶层 Makefile 和 Kconfig 所在文件夹)

在 WIFI SDK DEVELOPMENT 栏,可以看到以下功能:

  • Select Targets:这里将会显示出 configs 中定义的所有 targets。
  • Build Targets:这里提供构建需要的 make 命令,包括 make all、make clean、make menuconfig, 对于 menuconfig 我们建议使用 guiconfig,单击即可打开完全图形化操作的 QConfig 程序。
  • Build Files:显示所有的 build 生成的文件。
  • Tools and Settings:在这里可以指定 WIFI SDK 开发中需要的工具,同样的,右键点击所需的工具可以选择下载。其中,单击 FlashTool 即可打开 sctool_gui 以烧录程序。

WIFI SDK Development

环境配置

  1. 检查toolchain是否已经安装或者配置,右键Install或者Browse。

wifi_check_toolchain

  1. Python环境安装
pip install pycryptodome
pip install imgtool
pip install PyYAML

保证安装的python工具可以在系统环境变量可以找到。

构建

点击对应配置,会生成.config。

wifi_config

点击all,完成编译。

wifi_build_all

配置

修改配置的方式可以通过下面2个软件。

MenuConfig

GuiConfig

GuiConfig

简介

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

注意

  • 上述命令中的路径 /home/wang/.Telink_Tools/ 只是示例,实际安装过程中,请根据 Installer 的提示执行命令。

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

Telink Extension 可以在其他的 VS Code-based IDE 中安装使用,目前无法在插件市场中直接安装,需要获取 telink_extension.vsix 文件,在 Extensions 中通过 VSIX 安装。这里以 Trae 为例:

Install from VSIX

已知Bug

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

当前仅支持VS Code Remote(workspace)模式(workspace模式: 插件运行在remote,UI操作显示在本地)。相关概念请参考章节VS Code Remote Development

Architecture

Remote模式帮助开发者在不同环境快速切换完成开发。

远程安装插件

下面演示示例是Windows远程到Linux。Linux远程到Windows还需验证测试。进入Remote模式后,进行远程连接。

完成远程连接后,需要打开插件市场,给Remote安装插件,如下图,插件图标右下角有Remote图标。表示该插件安装在Remote环境。

Remote Install

检查配置是否正确

如果用户在Remote(例如Linux)已经有使用过的插件,在远程模式启动插件的时候,将会同步Remote环境对应插件配置,用户可以快速使用。

  1. 完成安装后,首先检查软件路径是否为Remote下的正确路径。

Check Remote Path

  1. 如果在远程是第一次安装,Local(例如Windows)需要重新配置Remote的相关插件配置,配置方式如下图:

Remote Setting

如果没有重新配置,将会使用Local的路径配置,插件将不能正常运行。因为不同电脑开发环境配置都是不一样的。

完成配置后,如果UI界面显示的路径仍是旧路径,则需点击刷新。

Refresh Remote Tool

开发

该模式所有的文件操作都会在远程完成。

Remote Development

注意事项

Show File在Remote模式下不可用。