Skip to content

Platform SDK Getting Started

Overview

About this document

This document is intended to help you quickly set up the Platform SDK development environment, obtain the SDK, compile and flash the project, and successfully run your first example project.

Telink provides two Platform SDKs for different chip architectures:

  • tc_platform_sdk: for Telink's self-developed TC32-core chip series
  • tl_platform_sdk: for RISC-V architecture chip series

Both SDKs provide complete drivers, example code, and development tools.

Applicable scope

tl_platform_sdk is applicable to Telink's TL322x, TL323x, TL721x, TLSR921x, TLSR951x, TLSR922x, TLSR952x and other SoC series:

tc_platform_sdk is applicable to Telink's TC122x, TC123x, TC321x, TLSR8208, TLSR8373, TLSR825x, TLSR827x and other SoC series:

Notes

The chip information listed here may not be the latest. For complete and accurate chip series, corresponding EVBs, toolchains, and SDK versions, refer to the Release Notes of the corresponding version:

Preparation

Hardware checklist

Hardware Description
PC Windows 10/11/ Linux / macOS
(This document uses Windows as an example.)
EVB Select the appropriate Evaluation Board (EVB) based on the Release Notes of the corresponding platform
Programmer Programmer V3 is recommended
USB cable Connect the PC and the programmer
Dupont wire Connect the EVB and the programmer

For physical hardware, refer to the section Connect the hardware.

Software checklist

Software Description
IDE Telink VS Code Extension or Telink IoT Studio
Toolchain For toolchain information, refer to the Release Notes of the corresponding platform
Programmer software BDT (Burning and Debugging Tool) or JTAG
SDK Available from the Gitee / GitHub repository of the corresponding platform

Choose the IDE

The Platform SDK supports the following two development methods:

Choose one based on your development habits. The two methods do not need to be installed simultaneously.

Install VS Code

Before installing the extension, make sure your computer has the latest version of Visual Studio Code. The updates to the Telink VS Code Extension are based on the latest version of VS Code. If the VS Code version is too old, the extension may not work properly or may malfunction.

  1. Launch VS Code.

  2. Click the Extensions icon in the left sidebar, or press Ctrl+Shift+X.

  3. Type "Telink" in the search box.

  4. Find Telink Development Tool in the search results and click Install.

    7GrSXX4k.png

After installation, the Telink DEVELOPMENT icon appears in the left sidebar of VS Code.

Install the toolchain

In the Telink VS Code Extension, download the compiler toolchain and auxiliary tools on demand via the extension's built-in manager.

  1. In the Telink DEVELOPMENT view on the left of VS Code, expand the DEVELOPMENT TOOLS tree menu.

    f9tSCPvm.png

  2. Click the toolchain you need, then click Install Toolchain on the right.

  3. After successful installation, a completion notification pops up in the bottom right corner of the VS Code window.

    JTXdW39c.png

Note

If you want to use the toolchain in the command line environment, right-click and click Open Terminal in the pop-up menu.

Install auxiliary tools

  • Select CMake in the tool list, right-click, and click Install in the pop-up menu.
  • Select Jtag_burn in the tool list, right-click, and click Install in the pop-up menu.
  • Select ICEman in the tool list, right-click, and click Install in the pop-up menu.

Validate the environment

After installation, follow the steps below to verify whether the Telink VS Code Extension has been successfully installed:

  1. Launch VS Code and confirm that the software opens normally without any error messages during startup.

  2. Confirm that the Telink icon appears in the left sidebar, click it to enter the Telink DEVELOPMENT view.

  3. In the DEVELOPMENT TOOLS tree menu, confirm that the required toolchain has been installed.

  4. At the same time, confirm that the auxiliary tools CMake, Jtag_burn, and ICEman also show as installed on the right.

If all the above checks pass, Telink VS Code Extension and its dependent tools have been successfully installed and configured, and you can start SDK development.

Download the installation package corresponding to your operating system. The demonstration below uses Windows as an example:

Install Telink IoT Studio:

Windows:

  1. Extract the downloaded .zip package, run TelinkIoTStudio_V2025.2.exe, and follow the wizard to complete the installation.

  2. After installation, you must run TelinkIoTStudio Updater.exe to get the latest component updates.

Linux:

  1. Grant execution permission to the installation package for the runtime environment.

  2. Run Telink_IoT_Studio_2025.2_Installer.run and follow the terminal prompts to complete the installation.

Toolchain description

Telink IoT Studio provides an all-in-one standalone installation package with all the components required for development built in, so no additional toolchain installation is needed. All required toolchains and auxiliary tools are installed synchronously with the IDE. Click Telink in the top menu bar to open the Cygwin Shell of the corresponding toolchain.

Tool_chain_screenshot.png

Validate the environment

After installation, follow the steps below to verify whether Telink IoT Studio has been successfully installed.

Validate the IDE installation:

  1. Launch Telink IoT Studio and confirm that the program loads normally and displays the main interface, with no error messages such as missing dependency libraries during startup.

  2. Click Telink in the top menu bar and confirm that toolchain entries such as Cygwin Shell in the dropdown menu open normally.

If the above conditions are met, Telink IoT Studio has been successfully installed and configured.

Get and import the SDK

This chapter explains how to obtain the official Telink SDK, the top-level directory structure of the SDK, and how to import SDK projects into the IDE.

Download the SDK

Download the latest SDK via Gitee or GitHub, or run the following git clone command to clone the repository locally:

git clone https://github.com/telink-semi/tl_platform_sdk

git clone https://gitee.com/telink-semi/tl_platform_sdk

Download the latest SDK via Gitee or GitHub, or run the following git clone command to clone the repository locally:

git clone https://github.com/telink-semi/tc_platform_sdk

git clone https://gitee.com/telink-semi/tc_platform_sdk

SDK directory overview

Directory Description
3rd-party/ Third-party components
chip/ Chip-related code
common/ Common utility functions
demo/ Example projects
doc/ Official documentation
project/ Project files
tools/ Development tools
CMakeLists.txt/ Main build entry

For the full directory structure and the function of each directory, refer to the Telink Platform SDK Developer Manual.

Directory Description
chip/ Chip-related code
cmake_config/ CMake configuration files
common/ Common utility functions
demo/ Example projects
doc/ Official documentation
project/ Project files
tools/ Development tools
.gitlab-ci.yml/ CI/CD configuration files
CMakeLists.txt/ Main build entry
README.md/ English documentation
README_CN.md/ Chinese documentation

For the full directory structure and the function of each directory, refer to the Telink Platform SDK Developer Manual.

Import the project

Depending on your development environment, choose to import the project in VS Code or Telink IoT Studio.

Import the project in VS Code

tl_platform_sdk is a standard Telink VS Code Extension project. Click File -> Open Folder... in the VS Code menu bar, select the root directory of the project, and load it.

After the project is loaded, click the Telink icon in the left sidebar to enter the Telink Extension view. At this point, the PROJECT OUTLINE panel displays the directory structure of the current project, indicating that the project has been successfully imported.

5dqUOF3a.png

After the project is loaded, if the PROJECT OUTLINE panel is empty, the current project is still an older-version Telink IoT Studio project and needs to be converted.

xccMKJzt.jpg

After successful conversion, the result is displayed in the bottom right corner:

utSmwibi.png

tc_platform_sdk is a standard Telink VS Code Extension project. Click File -> Open Folder... in the VS Code menu bar, select the root directory of the project, and load it.

After the project is loaded, click the Telink icon in the left sidebar to enter the Telink Extension view. At this point, the PROJECT OUTLINE panel displays the directory structure of the current project, indicating that the project has been successfully imported.

1.png

After the project is loaded, if the PROJECT OUTLINE panel is empty, the current project is still an older-version Telink IoT Studio project and needs to be converted.

2.png

After successful conversion, the result is displayed in the bottom right corner:

utSmwibi.png

If you choose to use Telink IoT Studio as your primary development environment, follow the steps below to import the project:

  1. Click File -> import in the top menu bar.

  2. In the pop-up dialog box, expand the General directory, select Existing Projects into Workspace, and click Next.

  3. Select the project directory to import.

    Import the project

  4. Select Browse to choose the downloaded project, select the project of the corresponding chip platform, click Finish, and the project is successfully imported.

    Select the corresponding chip platform

After successful project import, the figure below is shown:

Import successful

  1. Click File -> import in the top menu bar.

  2. In the pop-up dialog box, expand the General directory, select Existing Projects into Workspace, and click Next.

  3. Select the project directory to import.

    Import the project

  4. Select Browse to choose the downloaded project, select the project of the corresponding chip platform, click Finish, and the project is successfully imported.

Select the corresponding chip platform

After successful project import, the figure below is shown:

Import successful

Compile and run the first example

This chapter guides you through the complete development loop from selecting an example and compiling the code to finally flashing and running it.

Select the example

It is recommended to use the officially provided debug _demo as your first example project. The example features streamlined code logic with minimal dependencies and does not involve complex wireless protocol stacks. This example uses the TL322X: C1T371A20 EVK for demonstration.

For more examples, refer to ...\tl_platform_sdk\demo\vendor.

It is recommended to use the officially provided debug _demo as your first example project. The example features streamlined code logic with minimal dependencies and does not involve complex wireless protocol stacks. This example uses the TC1235X:C1T414AA20_V1.0 EVK for demonstration.

For more examples, refer to ...\tc_platform_sdk\demo\vendor.

Compile the project

Depending on your development environment, choose to compile the project in VS Code or Telink IoT Studio.

Compile the project in VS Code

  1. In the left sidebar of VS Code, find PROJECT OUTLINE, and select the project to compile and its corresponding Target.

    WGt2B9uP.png

  2. Click the build button on the right to compile.

After compilation, output files (.elf, .bin, .ls) are generated, where ELF format files are used for debugging and BIN format files are used for flashing.

The ELF and BIN files can be found under PROJECT OUTLINE after compilation. Taking the TL322x platform Debug_Demo as an example, the compiled .elf, .bin, and .ls files are stored in the ...\tl_platform_sdk\cmake_builds\TL_PLATFORM_SDK_322X\TL32_ELF_MCULIB_V5F_GCC12_2 directory.

If the compilation succeeds, you will see similar output:

6hVtRMb5.png

  1. In the left sidebar of VS Code, find PROJECT OUTLINE, and select the project to compile and its corresponding Target.

    5.png

  2. Click the build button on the right to compile.

After compilation, output files (.elf, .bin, .ls) are generated, where ELF format files are used for debugging and BIN format files are used for flashing.

The ELF and BIN files can be found under PROJECT OUTLINE after compilation. Taking the TC123x platform Debug_Demo as an example, the compiled .elf, .bin, and .ls files are stored in the ...\tc_platform_sdk\cmake_builds\TC_PLATFORM_SDK_123X\TC32_GCC_Toolchain directory.

If the compilation succeeds, you will see similar output:

6.png

  1. In the Project Explorer on the left, select the project to compile.

  2. Click the small dropdown arrow next to the Build button (hammer icon) on the top toolbar.

  3. Select the configuration you want to compile from the dropdown menu, and the system starts compiling.

    uqGqJMHe.png

  4. Observe the console output; if there are no error messages and Build Finished is displayed, the compilation is successful.

    d2G8yXKY.png

Taking the TL322x platform debug_demo as an example, the compiled bin file is stored in the ...\tl_platform_sdk\project\tlsr_riscv\tl322x\Debug_Demo directory.

  1. In the Project Explorer on the left, select the project to compile.

  2. Click the small dropdown arrow next to the Build button (hammer icon) on the top toolbar.

  3. Select the configuration you want to compile from the dropdown menu, and the system starts compiling.

    7.png

  4. Observe the console output; if there are no error messages and Build Finished is displayed, the compilation is successful.

    8.png

Taking the TC123x platform debug_demo as an example, the compiled bin file is stored in the ...\tc_platform_sdk\project\tc322x\Debug_Demo directory.

Flash the firmware

Telink supports firmware flashing via the BDT tool (a no-installation burning and debugging tool) or JTAG (with the ICEman simulation service). Choose based on your hardware environment.

Telink supports firmware flashing via the BDT tool (a no-installation burning and debugging tool). Choose based on your hardware environment.

Flash the firmware via BDT

Step 1: Connect the hardware

Before using the BDT tool, connect the PC, the programmer, and the target board as follows:

  • PC ↔ Programmer: Connect via USB cable. If the green indicator light on the programmer stays on, it indicates that the programmer has been successfully recognized by the PC.
  • Programmer ↔ Target board: Connect using Dupont wires:
    • Power cable: VCC ↔ VCC; GND ↔ GND
    • Data cable (single-wire SWM bus): Connect the programmer's SWM pin to the target board's SWS (Swire) pin.

Ucgyu1rL.png

9.jpg

Step 2: Install the BDT

The Telink Burning and Debugging Tool (BDT) is used to flash the compiled firmware to the target chip or development board.

  1. Download the BDT tool.

    Visit Telink Developer Center - Development Tools and download the corresponding toolkit according to your operating system.

    download_bdt.png

  2. Extract the toolkit.

    The BDT tool is a portable no-installation version that can be used after extraction.

    Take Windows as an example:

    a. Extract the downloaded toolkit to a custom path, e.g., C:\Telink\BDT.

    b. Enter the extracted release directory, e.g., C:\Telink\BDT\release_v5.9.2.

    c. Double-click and run Telink BDT.exe to launch the tool.

  3. Select the programmer version and chip compatibility.

    Telink provides four versions of programmers (Programmer). When launching the BDT interface, it is recommended to select the Programmer V1.0 ~ V3.0 programmer version.

    Y4KMxDY8.png

Step 3: Flash the firmware

  1. Connect the device.

    Open the BDT software. Before firmware flashing, ensure that the tool has detected the programmer, as shown in the figure below.

    WaejXcGR.png

    • If the BDT does not find the device, click Refresh to view available devices.
    • If the BDT finds multiple devices, all devices are listed. After clicking Refresh, the first device is activated by default, and you can also manually switch the target device in the list.
  2. Configure and flash.

    a. Select the chip series of the target board.

    In the chip dropdown menu at the top, select the target chip for your development board, for example:

    For example, TL322x:

    Jh00TQOw.png

    For example, TC123x:

    10.png

    Note

    • B91: Refers to the TLSR921x and TLSR951x series chips;
    • B92: Refers to the TLSR922x and TLSR952x series chips.

    b. Select the download mode as EVK.

    V250Mf3A.png

    11.png

    c. Click the Setting button to open the configuration window and switch to the Flash tab. Set the initial offset address of the firmware in the Download Addr field, with the default value 0x000000.

    Note: You can download the target firmware to the SRAM or OTP target area by configuring the SRAM or OTP option.

    cZ8lVP6n.png

    12.png

    d. Click File -> Open/Reopen in the menu bar and select the .bin firmware you compiled. After successful loading, the full file path is displayed at the bottom of the main interface.

    7CMmMDyG.png

    UjT9cAbo.png

    13.png

    14.png

    e. Check the connection status between the target board and the PC.

    • If the connection status is normal, the bottom left corner of the main interface displays evk device: ok.
    • If the bottom left corner of the main interface displays usb device: not found, it means the target board is not properly connected to the PC.

    umGTdMVZ.png

    15.png

    f. First click Activate, then click the Unlock button or check the auto unlock option to remove the write protection of the flash.

    If the flash is in a write-protected state, Download will fail. Therefore, before downloading firmware to the flash, make sure the flash is in a programmable state.

    Ed61nSIp.png

    16.png

    g. Click the Download button and wait for the log window to indicate that the flashing is successful.

    joeZ9BWh.png

    17.png

    h. You can set the reset mode to auto mode before flashing, or switch to manual mode after flashing and click the Reset button to manually reset the MCU to run the program.

    xZmr9Ajp.png

    18.png

Flash the firmware via JTAG

JTAG flashing requires the backend service process ICEman.

Flash the firmware via JTAG in VS Code

  1. After the project is successfully compiled, find the generated .bin firmware file in the project directory tree. Click the JTAG burn icon on the right side of the file to bring up the Telink JTAG Burn With ICEman page.

TY9JLcL4.png

  1. In the Telink JTAG Burn With ICEman page, configure the paths and parameters:

  2. Enter the local executable file paths for ICEman and Jtag_Burn.

  3. Configure the correct target chip series and flash start address.
  4. Configure the communication interface type and the corresponding port number for ICEman.

6i8x1pWQ.png

ZJ6ldmP8.png

  1. Click the Start ICEman button. The system prompts you to select a connection startup mode:

  2. Default mode: JTAG uses the default four-wire connection method (recommended).

  3. SDP 2-wire mode: ICEman is launched with -I aice_sdp.cfg, and JTAG uses a two-wire connection method. Ensure that the hardware supports it.
  4. H mode: ICEman is launched with the -H option. After a successful connection, a reset-and-hold operation is immediately performed on the target chip.

THCyUWcC.png

  1. Observe the log. When ICEman is ready to use appears, the connection is successful. After configuring the parameters for Jtag_Burn execution, click the Burn button to start the flash, and confirm the flashing result through the subsequent scrolling log.

PUTF9HfA.png

MNuMarFb.png

0yBW948S.png

Flash the firmware via JTAG in Telink IoT Studio

  1. Click Telink -> Jtag Burn (SPI Burn) in the top menu bar to bring up the JTAG configuration page.

CnNS3ztG.png

  1. In the pop-up page, verify that the .bin firmware to be flashed is correct.

  2. Configure the runtime parameters for Jtag_Burn as annotated in the figure below, then click Start ICEman.

  3. When you see ICEman is ready to use in the console output, it indicates that the hardware backend connection is successful. Click the Burn button on the right to start the firmware flashing.

5j2Q1fKZ.png

tc_platform_sdk does not support flashing firmware via JTAG. Use the BDT tool to flash.

Verify the running results

After flashing the firmware, follow the steps below to verify whether the example program is running properly on the development board.

Operation steps

  1. After flashing is complete, the development board resets automatically; if it does not reset automatically, press the Reset button on the development board to reset.

  2. Observe the status of the LED indicators on the development board.

Expected results

If the program runs normally, it means the firmware has been successfully downloaded and started.

Taking the TL322x development board as an example, the phenomenon when running successfully is as follows:

  • The blue, red, green, and white LEDs blink simultaneously.

Validate.jpg

If the above phenomenon is observed, it means that the development environment configuration, program compilation, firmware download, and operation have all been successfully verified. You have completed running your first example program.

After flashing the firmware, follow the steps below to verify whether the example program is running properly on the development board.

Operation steps

  1. After flashing is complete, the development board resets automatically; if it does not reset automatically, press the Reset button on the development board to reset.

  2. Observe the status of the LED indicators on the development board.

  3. Open the serial port assistant to receive the print information from the development board.

Expected results

If the program runs normally, it means the firmware has been successfully downloaded and started.

Taking the TC123x development board as an example, the phenomenon when running successfully is as follows:

  • The yellow LED blinks.

20.png

  • PA0 prints relevant information via the serial port.

19.png

If the above phenomenon is observed, it means that the development environment configuration, program compilation, firmware download, and operation have all been successfully verified. You have completed running your first example program.

References

Documents Description
Telink Platform SDK Developer Manual Detailed Introduction to the Telink Platform SDK

Appendix 1: Frequently Asked Questions

IDE installation failed

  • When installing ICEman and other development tools from the DEVELOPMENT TOOLS of the VS Code Telink Development extension, the installation process fails.
  • Solution: Use the offline installation method instead. Download and follow the document Offline Installation Package to complete the installation.

Compilation failed

  • When compiling a demo project using VS Code, the compilation fails.
  • Solution: Check whether the project path contains Chinese characters (such as Chinese folder names, Chinese usernames, etc.).

Flashing failed

  • When flashing via JTAG, the error message "Burning failed due to target errors" is displayed.
  • Solution: Check whether the JTAG wiring is correct. Pay special attention to the VTREF pin, which must be connected to the JTAG I/O power supply (i.e., reference voltage) of the target board.
  • When flashing via BDT, the error message "DUT command execute error" is displayed.
  • Solution: Before Download, click Activate to activate the chip. After "Activate MCU ok" appears, proceed with the Download operation to flash.