• Home
Name Date Size #Lines LOC

..--

b91_devkit/07-Sep-2024-493270

drivers/07-Sep-2024-2220

figures/07-Sep-2024-

hcs/07-Sep-2024-4743

BUILD.gnD07-Sep-2024888 2825

CODEOWNERSD07-Sep-2024630 1715

Kconfig.liteos_m.boardsD07-Sep-2024680 1715

Kconfig.liteos_m.defconfig.boardsD07-Sep-2024690 1715

LICENSED07-Sep-20249.9 KiB177150

OAT.xmlD07-Sep-20244.1 KiB6619

README.mdD07-Sep-20244 KiB10487

README_zh.mdD07-Sep-20246.8 KiB12285

README.md

1# device_board_telink
2
3## Overview
4
5The TLSR951x Series is the latest addition to Telink’s high-performance, ultra-low-power,
6cost-optimized wireless connectivity SoC family. The TLSR951x is a Bluetooth® Dual-mode IC,
7having both Bluetooth Classic and Bluetooth LE radios on a single chip. It integrates a powerful
832-bit RISC-V MCU with a variety of powerful core features and peripheral blocks to provide a
9foundation for advanced hearable and wearable devices. The TLSR951x includes multi-stage power
10management design allowing ultra-low power operation and making it the ideal candidate for
11power-sensitive applications. The TLSR951x’s superior level of integration enables customers
12to optimise total system cost.
13
14![Top](figures/tlsr9518adk80d_top_view.png)
15![Bottom](figures/tlsr9518adk80d_bottom_view.png)
16
17## Specifications
18
19| Item	      | Description                      |
20| ----------  | -------------------------------- |
21| CPU	      | TLSR9518A, RISC-V (Max: 96MHz)   |
22| RAM	      | 256KB SRAM                       |
23| Flash	      | 2MB SPI Flash                    |
24| GPIO	      | 40                               |
25| I2C	      | 1                                |
26| UART        | 2                                |
27| SPI	      | Memory SPI, HSPI, PSPI           |
28| USB	      | 1                                |
29| PWM	      | 6                                |
30| LED	      | 4                                |
31| Debug 	  | JTAG Swire                       |
32| ADC	      | 10-channel 14bit auxilary ADC    |
33| Button	  | 4                                |
34
35## Environment setup
36
371. Install Ubuntu dependencies:
38   ```bash
39   sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler
40   ```
412. Download and unzip toolchine: http://wiki.telink-semi.cn/tools_and_sdk/Tools/IDE/telink_riscv_linux_toolchain.zip
423. Install toolchain dependencies:
43   ```bash
44   sudo dpkg --add-architecture i386
45   sudo apt-get update
46   sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
47   ```
484. Set the environment variable TELINK_RISCV_TOOLCHAIN to the path to GCC toolchain:
49   ```bash
50   export TELINK_RISCV_TOOLCHAIN=~/progs/telink_riscv_linux_toolchain/nds32le-elf-mculib-v5f/bin
51   ```
525. Download and unzip archive: https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/latest
536. Copy file `gn` to any folder in PATH. For example: `sudo cp gn /usr/local/bin/`
547. Install ninja
55   ```bash
56   sudo apt-get install ninja-build
57   ```
588. Check if the package `pip` is installed
59   ```bash
60   python3 -m pip --version
61   ```
62   If not instaled:
63   ```bash
64   sudo apt-get install python3-pip
65   ```
669. Install hb:
67      ```bash
68      python3 -m pip install --user ohos-build==0.4.6
69      ```
7010. Check if soft link exists `python->python3`
71
72## Build
73
741. Run in openharmony repo root
753. Run `hb set` and then select project from table:
76
77   | Project name | Description |
78   | :--- | :--- |
79   | led_demo | simple led example for b91 devkit |
80   | ble_demo | simple ble example for b91 devkit |
81   | xts_demo | unit tests for b91 devkit |
82
83   or set project name as an argument of hb set, like: `hb set -p <project_name>`
84
854. Run `hb build`
86   You can also run with options in the table:
87
88   | Option name | Option description | Option type |
89   | :--- | :--- | :---: |
90   | disasm_unstripped_version | Use unstripped ELF file version to disassemble and symbols export | binary |
91   | telink_gpio_irq_sample_enable | Switch on GPIO IRQ sample | binary |
92
93For example: `hb build --gn-args='disasm_unstripped_version=true'`
94The compiled binary file should be `out/b91_devkit/<project_name>/bin/<project_name>.bin`
95
96## Clean
97For do full project clenup (shall be done from openharmony repo root):
98```bash
99rm -rf out ohos_config.json
100```
101
102## Change notes
103* In many gn files added include pathes: `//utils/native/lite/include` and `//utils/native/base/include`
104

README_zh.md

1# device_board_telink
2
3- [device_board_telink](#device_board_telink)
4  - [简介](#简介)
5  - [开发板规格](#开发板规格)
6  - [OpenHarmony关键特性](#openharmony关键特性)
7  - [开发板设计文档](#开发板设计文档)
8  - [环境搭建](#环境搭建)
9  - [编译调试](#编译调试)
10  - [示例代码](#示例代码)
11  - [联系](#联系)
12
13## 简介
14
15泰凌微公司的B91 Generic Starter Kit是一个可用于评估TLSR9系列芯片组的硬件平台,BLE,BLE Mesh,Zigbee 3.0, Thread和2.4GHz私有协议等多种适用于2.4GHz接口标准的应用程序都可以用它来进行开发。如果有兴趣了解更多相关信息,可以在 [B91 Generic Starter Kit Hardware Guide](http://wiki.telink-semi.cn/wiki/Hardware/B91_Generic_Starter_Kit_Hardware_Guide/) 中进行浏览。
16
17开发板正反面视图如下:
18
19![开发板正面视图](figures/tlsr9518adk80d_top_view.png)
20
21![开发板背面视图](figures/tlsr9518adk80d_bottom_view.png)
22
23## 开发板规格
24
25| 器件类别  |              开发板              |
26| ---------- | -------------------------------- |
27| CPU       | TLSR9518A, RISC-V (Max: 96MHz) |
28| RAM       | 256KB SRAM                       |
29| Flash      | 2MB SPI Flash                    |
30| GPIO      | 40                             |
31| I2C      | 1                               |
32| UART       | 2                                |
33| SPI      | Memory SPI, HSPI, PSPI       |
34| USB      | 1                            |
35| PWM      | 6                             |
36| LED      | 4                                |
37| Debug     | JTAG、Swire               |
38| ADC      | 10-channel 14bit auxilary ADC |
39| Button    | 4 |
40
41## OpenHarmony关键特性
42
43| 组件名       | 能力介绍                                                                                       |
44| -------------- | ------------------------------------------------------------------------------------------------ |
45| 内核         | LiteOS-M                                                                                        |
46| 上电启动     | 上电启动OpenHarmony                                                                          |
47| BLE服务      | 提供BLE功能                                          |
48| 外设控制     | 提供操作外设的能力,包括:I2C、ADC、UART、SPI、GPIO、PWM、FLASH等。                      |
49| 系统服务管理 | 系统服务管理基于面向服务的架构,提供了OpenHarmony统一化的系统服务开发框架。                  |
50| 启动引导     | 提供系统服务的启动入口标识。在系统服务管理启动时,调用boostrap标识的入口函数,并启动系统服务。 |
51| 系统属性     | 提供获取与设置系统属性的能力。                                                                   |
52| 基础库       | 提供公共基础库能力,包括:文件操作、KV存储管理等。                                                      |
53| DFX          | 提供DFX能力,包括:流水日志等。                                                     |
54| HDF           | 提供OpenHarmony硬件配置驱动的能力。                                                         |
55| XTS          | 提供OpenHarmony生态认证测试套件的集合能力。                                                    |
56
57## 开发板设计文档
58
59B91开发板的总体情况可以参见 [B91 Generic Starter Kit Hardware Guide](http://wiki.telink-semi.cn/wiki/Hardware/B91_Generic_Starter_Kit_Hardware_Guide/) 的Overview章节。
60
61详细的开发设计文档可以下载 [Reference Design](http://wiki.telink-semi.cn/doc/hw/B91_DevelopmentBoard_TLSR9518ADK80D.zip) 到本地后,解压后查阅。
62
63## 环境搭建
64
65推荐在Windows+Ubuntu环境下进行开发,如果对环境搭建的过程有问题,可以参见 [环境搭建步骤](https://gitee.com/openharmony/device_soc_telink/blob/master/README_zh.md#安装工具) 中开发环境、安装工具、获取源码、确认目录结构等章节。
66
67## 编译调试
68
69在完成上述环境搭建之后,可以进行编译生成B91开发板上所需的二进制固件。可以使用烧录工具将固件烧录进B91开发板。
70编译调试的详细过程可以参见 [编译调试步骤](https://gitee.com/openharmony/device_soc_telink/blob/master/README_zh.md#编译工程) 中编译工程、烧录固件等章节。
71
72## 示例代码
73
74可以将示例生成的二进制固件烧录进B91开发板,代码默认有3个示例:
75
761. [LED应用示例](https://gitee.com/openharmony/vendor_telink/tree/master/led_demo)
77
78    在B91开发板上烧录固件 `led_demo.bin` 并上电重启后,可以实现简单的点亮LED灯的功能。
79    其主要功能的任务代码如下图所示:
80
81    ![LED应用任务](figures/led_code.png)
82
83    第一个任务是使用串口模块打印出 `Hello World, time:{RUNNING_TIME_SECOND}`,另一个是使用开发板上GPIO口去操控蓝色LED灯,实现闪烁效果。
84    这里的打印间隔以及LED闪烁的间隔都由宏 `DELAY` 定义,即1000ms。
85    另外,打印出的时间戳 `{RUNNING_TIME_SECOND}` 也根据 `DELAY` 的取值而计时。
86
872. [BLE测试示例](https://gitee.com/openharmony/vendor_telink/tree/master/ble_demo)
88
89    在B91开发板上烧录 `ble_demo.bin` 并上电重启后,可以实现BLE协议栈的相关功能。
90    通过智能手机上的蓝牙连接工具,如nRF Connect,可以搜索到名为“eSample”的BLE测试示例的广播信息,如下图:
91
92    ![BLE广播信息](figures/esample.jpg)
93
94    点击“CONNECT”按钮之后,手机会和B91开发板建立起蓝牙连接,可以在下图中查看到所建立的GATT服务:
95
96    ![建立连接](figures/connected.jpg)
97
98    同时,白色的LED灯会在建立连接时进入常亮状态,提示蓝牙已连接。此时按下“DISCONNECT"按钮,蓝牙连接会断开,白灯熄灭。
99
1003. [XTS测试示例](https://gitee.com/openharmony/vendor_telink/tree/master/xts_demo)
101
102    XTS测试示例是OpenHarmony生态认证测试套件的集合的XTS子系统,在B91开发板上进行的实现。
103    本实现参考了应用兼容性测试套件中的[测试用例源码与配置文件](https://gitee.com/openharmony/xts_acts)和[测试用例开发框架](https://gitee.com/openharmony/xts_tools)104
105    在B91开发板上烧录 `xts_demo.bin` 并上电重启后,会运行以下XTS测试用例集合。
106
107    ```shell
108        "module_ActsKvStoreTest",
109        "module_ActsUtilsFileTest",
110        "module_ActsParameterTest",
111        "module_ActsBootstrapTest",
112        "module_ActsHieventLiteTest",
113        "module_ActsDfxFuncTest",
114        "module_ActsSamgrTest",
115    ```
116
117    也可以在 `xts_demo\BUILD.gn` 当中添加您想要的测试用例集合,测试结果会以串口打印输出。
118
119## 联系
120
121如果您在开发过程中有问题,请在仓库[issues](https://gitee.com/openharmony/device_board_telink/issues)提问。
122