• Home
Name Date Size #Lines LOC

..--

b91/12-May-2024-64,91136,408

figures/12-May-2024-

util/12-May-2024-12096

BUILD.gnD12-May-2024839 2321

End User License Agreement.mdD12-May-20248 KiB7133

Kconfig.liteos_m.defconfigD12-May-2024690 1715

Kconfig.liteos_m.seriesD12-May-2024680 1715

Kconfig.liteos_m.socD12-May-2024803 2521

LICENSED12-May-20249.9 KiB177150

NOTICE.mdD12-May-20241.3 KiB3120

OAT.xmlD12-May-20245 KiB7629

README.mdD12-May-2024961 3725

README_zh.mdD12-May-202419.1 KiB506343

README.md

1# device_soc_telink
2
3#### Description
4{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
5
6#### Software Architecture
7Software architecture description
8
9#### Installation
10
111.  xxxx
122.  xxxx
133.  xxxx
14
15#### Instructions
16
171.  xxxx
182.  xxxx
193.  xxxx
20
21#### Contribution
22
231.  Fork the repository
242.  Create Feat_xxx branch
253.  Commit your code
264.  Create Pull Request
27
28
29#### Gitee Feature
30
311.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
322.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
333.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
344.  The most valuable open source project [GVP](https://gitee.com/gvp)
355.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
366.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
37

README_zh.md

1# device_soc_telink
2
3-   [简介](#简介)
4-   [开发环境](#开发环境)
5-   [安装工具](#安装工具)
6-   [获取源码](#获取源码)
7-   [确认目录结构](#确认目录结构)
8-   [编译工程](#编译工程)
9-   [烧录固件](#烧录固件)
10-   [相关仓库](#相关仓库)
11
12## 简介
13
14本仓库为泰凌微电子(Telink Semi)公司的TLSR9系列芯片相关代码仓库,用于存放与SoC芯片相关的SDK及适配代码。
15使用同一系列SoC,开发不同的device或board时,可共用该仓库代码进行开发。
16
17## 开发环境
18
19推荐采用Windows+Ubuntu环境进行开发:
20
21-   Windows环境用于编写代码、下载程序和烧入固件等,系统要求:Windows 10 64位系统。
22
23-   Linux环境用于代码下载、编译工程和生成固件等,系统要求:Ubuntu 20.04 64位及以上版本。
24
25    - 若不确定所使用的Linux设备的系统及版本,请在bash中运行如下命令查看:
26
27    ```bash
28    lsb_release -a
29    ```
30
31    - 请在确认Linux系统不低于`Ubuntu 20.04.XX LTS`的情况下执行后续的步骤;否则,请升级或更换合适的Liunx设备。
32
33> 若需要支持在Linux与Windows之间的文件共享以及编辑,请在Linux设备上适当地安装和配置samba、vim等常用软件。
34
35## 安装工具
36
37本仓库包含的编译构建脚本和打包镜像工具等,需要在Linux环境上执行。
38
39本章节参考了OpenHarmony文档《搭建轻量与小型系统》,[请点击查看详情](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md)40
41### 安装repo
42
43码云repo是一种代码版本管理工具,可以用来打包获取OpenHarmony的源码。
44
451. 在home文件夹下创建repo安装目录:
46
47    ```bash
48    mkdir ~/bin
49    ```
50
512. 下载repo至安装目录:
52
53    ```bash
54    wget https://storage.googleapis.com/git-repo-downloads/repo -P ~/bin/
55    ```
56
573. 改变执行权限:
58
59    ```bash
60    chmod a+x ~/bin/repo
61    ```
62
634. 在~/.bashrc文件的末尾,额外加入以下内容,配置环境变量:
64
65    ```bash
66    # set environment for repo
67    export PATH=~/bin:$PATH
68    export REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
69    ```
70
715. 重启bash或执行以下命令让环境变量生效:
72
73    ```bash
74    source ~/.bashrc
75    ```
76
77### 安装常用库和工具
78
79使用如下apt-get命令安装后续操作所需的库和工具,用于编译C/C++代码:
80
81```bash
82sudo 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
83```
84
85### 安装Python3
86
87本项目要求安装Python 3.8及以上版本,本文档以Python 3.8为例。
88
891. 在bash中输入下列命令,查看python版本:
90
91    ```bash
92    python3 --version
93    ```
94
95    如果不低于3.8,可以忽略第二步的重新安装,从第三步的设置开始。
96
972. 如果Python版本低于3.8,不建议直接升级,请按照如下步骤重新安装。
98
99    ```bash
100    sudo apt-get install python3.8
101    ```
102
1033. 设置python和python3软链接为python3.8。
104
105   查看python3.8的位置:
106
107   ```bash
108   which python3.8
109   ```
110   将python和python3切换为python3.8:
111
112   ```bash
113   sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
114   # /usr/bin/python3.8 为上一步查看的python3.8的位置
115   sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
116   # /usr/bin/python3.8 为上一步查看的python3.8的位置
117   ```
118
1194. 安装并升级Python包管理工具(pip3),任选如下一种方式。
120
121   - **命令行方式:**
122
123     ```bash
124     sudo apt-get install python3-setuptools python3-pip -y
125     sudo pip3 install --upgrade pip
126     ```
127
128   - **安装包方式:**
129
130     ```bash
131     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
132     python get-pip.py
133     ```
134
135### 安装ohos-build
136
137在安装ohos-build之前,请确保已安装Python 3.8及以上版本;否则,请[安装Python3](#安装python3)。
138
1391. 在bash中运行如下命令安装ohos-build:
140
141   ```bash
142   python3 -m pip install --user ohos-build
143   ```
144
1452. 执行"hb -h",有打印以下信息即表示安装成功:
146
147   ```bash
148    usage: hb [-h] [-v] {build,set,env,clean} ...
149
150    OHOS Build System version 0.4.6
151
152    positional arguments:
153    {build,set,env,clean}
154        build               Build source code
155        set                 OHOS build settings
156        env                 Show OHOS build env
157        clean               Clean output
158
159    optional arguments:
160    -h, --help            show this help message and exit
161    -v, --version         show program's version number and exit
162   ```
163
164### 安装Telink的编译工具链
165
166目前,社区中的RISCV32交叉编译工具链还未适配,可能会出现兼容性问题。
167因此,推荐使用来自[Telink官方网站](http://wiki.telink-semi.cn/wiki/IDE-and-Tools/BDT_for_TLSR9_Series_in_Linux/)的Telink RISC-V Linux Toolchain。
168
1691. 下载工具链
170
171    可以[点击下载该编译链工具](http://wiki.telink-semi.cn/tools_and_sdk/Tools/IDE/telink_riscv_linux_toolchain.zip),并解压到用户自行指定的位置。
172    或者,也可以使用下列命令下载并解压。
173
174    ```bash
175    wget http://wiki.telink-semi.cn/tools_and_sdk/Tools/IDE/telink_riscv_linux_toolchain.zip
176    unzip telink_riscv_linux_toolchain.zip
177    ```
178
1792. 设置依赖项:
180
181    ```bash
182    sudo dpkg --add-architecture i386
183    sudo apt-get update
184    sudo apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386
185    ```
186
1873. 在~/.bashrc文件的末尾,根据该toolchain解压后所存放的路径,加入环境变量:
188
189    ```bash
190    # set environment path for TELINK toolchain
191    RISCV=telink_riscv_linux_toolchain/nds32le-elf-mculib-v5f
192    export PATH=~/$RISCV/bin:$PATH
193    ```
194
1954. 保存后,重启bash或执行以下命令使环境变量生效:
196
197    ```bash
198    source ~/.bashrc
199    ```
200
201## 获取源码
202
203在Linux环境下通过以下步骤获取OpenHarmony源码。
204
205本章节参考了OpenHarmoney文档《搭建轻量与小型系统》,[请点击详情查看详情](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md)206
2071. 新建代码存放目录(用户可以自行指定为其他目录),如`openharmony`,并进入该目录:
208
209    ```bash
210    mkdir ~/openharmony
211    cd ~/openharmony
212    ```
213
2142. Repo初始化,指定码云上面OpenHarmony的manifest仓库中所包含的git仓库:
215
216    ```bash
217    repo init -u https://gitee.com/openharmony/manifest --no-repo-verify
218    ```
219
2203. 仓库初次同步,下载码云上所需的git仓库的代码。
221
222    ```bash
223    repo sync -c
224    ```
225
226    这里下载的过程的耗时可能会很长,请耐心等待。
227
2284. 下载好代码后,下载大容量二进制文件。
229
230    ```bash
231    repo forall -c 'git lfs pull'
232    ```
233
234## 确认目录结构
235
236在Linux环境下的源码的根目录下,可以查看SoC目录以及其他与Telink相关文件的目录结构。
237
238### SoC目录
239
240在device文件夹下,确保device/soc目录结构如下(截至2022年6月1日):
241
242```bash
243user:~/openharmony/device/soc$ tree -L 3
244.
245└── telink
246    ├── b91                                     # b91 SoC适配目录
247    │   ├── adapter                                 # 外设驱动、BLE、文件系统适配
248    │   ├── b91m_ble_sdk                            # liteos b91 SDK适配
249    │   ├── BUILD.gn                                # GN构建脚本
250    │   ├── hcs                                     # 设备描述文件
251    │   ├── hdf                                     # HDF设备驱动框架目录
252    │   ├── Kconfig.liteos_m.defconfig.b91          # b91 Kconfig默认配置
253    │   ├── Kconfig.liteos_m.defconfig.series       # series Kconfig默认配置
254    │   ├── Kconfig.liteos_m.series                 # series Kconfig配置项
255    │   ├── Kconfig.liteos_m.soc                    # SoC Kconfig配置项
256    │   ├── liteos.ld                               # 链接脚本
257    │   └── liteos_m                                # liteos_m 各模块实现
258    ├── BUILD.gn                                # GN构建脚本
259    ├── End User License Agreement.md               # 终端用户证书协议
260    ├── figures                                      # README插图文件夹
261    .   ├── ...                                     # 插图
262    │   └── ...                                     # 插图
263    ├── Kconfig.liteos_m.defconfig              # liteos_m Kconfig默认配置
264    ├── Kconfig.liteos_m.series                 # liteos_m series配置项
265    ├── Kconfig.liteos_m.soc                    # liteos_m SoC配置项
266    ├── LICENSE                                     # 证书文件
267    ├── OAT.xml                                     # 开源仓审查规则配置文件
268    ├── README.md                                   # 英文版README
269    ├── README_zh.md                                # 中文版README
270    └── util                                    # 工具项目录
271        └── util.gni                                #  固件生成脚本
272
273```
274
275### Board目录
276
277在device文件夹下,确保device/board目录结构如下(截至2022年6月1日):
278
279```bash
280user:~/openharmony/device/board$ tree -L 3
281.
282└── telink
283    ├── b91_devkit                              # B91 Generic Starter Kit开发板配置目录
284    │   ├── b91_devkit_defconfig                    # B91 Generic Starter Kit Kconfig默认配置
285    │   ├── BUILD.gn                                # GN构建脚本
286    │   ├── Kconfig.liteos_m.board                  # Board liteos_m Kconfig配置项
287    │   ├── Kconfig.liteos_m.defconfig.board        # Board liteos_m Kconfig默认配置
288    │   └── liteos_m                                # 构建脚本目录
289    ├── BUILD.gn                                # GN构建脚本
290    ├── drivers                                 # 板级驱动存放目录
291    │   └── BUILD.gn                                # GN构建脚本
292    ├── hcs                                     # hcs硬件描述配置目录
293    │   ├── b91_devkit.hcs                          # B91 Generic Starter Kit hcs硬件描述脚本
294    │   └── BUILD.gn                                # GN构建脚本
295    ├── figures                                   # README插图文件夹
296    .   ├── ...                                     # 插图
297    │   └── ...                                     # 插图
298    ├── Kconfig.liteos_m.boards                 # Board liteos_m Kconfig配置项
299    ├── Kconfig.liteos_m.defconfig.boards       # Board liteos_m Kconfig默认配置
300    ├── LICENSE                                 # 证书文件
301    ├── OAT.xml                                 # 开源仓审查规则配置文件
302    ├── README.md                               # 英文版README
303    └── README_zh.md                            # 中文版README
304
305```
306
307### Vendor目录
308
309在vendor文件夹下,确保vendor文件夹目录结构如下(截至2022年6月1日):
310
311```bash
312user:~/openharmony/vendor$ tree -L 3
313.
314└── telink
315    ├── ble_demo                                # BLE应用示例工程
316    │   ├── b91_gatt_sample                         # BLE示例代码
317    │   ├── BUILD.gn                                # GN构建脚本
318    │   ├── config.json                             # 子系统裁配置裁剪脚本
319    │   ├── hals                                    # 产品参数配置
320    │   ├── hdf_config                              # HDF硬件描述配置
321    │   ├── kernel_configs                          # Kconfig配置输出
322    │   └── ohos.build                              # 子系统模块单
323    ├── led_demo                                # LED测试示例工程
324    │   ├── BUILD.gn                                # GN构建脚本
325    │   ├── config.json                             # 子系统裁配置裁剪脚本
326    │   ├── hals                                    # 产品参数配置
327    │   ├── hdf_config                              # HDF硬件描述配置
328    │   ├── kernel_configs                          # Kconfig配置输出
329    │   ├── led_demo                                # LED示例代码
330    │   └── ohos.build                              # 子系统模块单
331    ├── xts_demo                                # XTS测试示例工程
332    │   ├── BUILD.gn                                # GN构建脚本
333    │   ├── config.json                             # 子系统裁配置裁剪脚本
334    │   ├── hals                                    # 产品参数配置
335    │   ├── hdf_config                              # HDF硬件描述配置
336    │   ├── kernel_configs                          # Kconfig配置输出
337    │   └── ohos.build                              # 子系统模块单
338    ├── LICENSE                                 # 证书文件
339    ├── OAT.xml                                 # 开源仓审查规则配置文件
340    ├── README.md                               # 英文版README
341    └── README_zh.md                            # 中文版README
342```
343
344## 编译工程
345
346进入Linux环境下源码根目录,可以开始编译工程。
347
3481. 设置工程根目录
349
350    在bash中输入以下命令,可以将当前源码根目录为工程根目录:
351
352    ```bash
353    hb set -root .
354    ```
355
356    此时,会自动进入第二步中的产品选择界面。
357
358    > 如果hb set命令提示报错,请先执行以下命令去构建并安装ohos-build
359
360    ```bash
361    python3 -m pip install --user build/lite
362    ```
363
3642. 选择样例产品:
365
366    产品选择界面如下:
367
368    ```bash
369    # OHOS Which product do you need? (Use arrow keys)
370
371    telink
372        >led_demo
373         xts_demo
374         ble_demo
375         ...
376    ```
377
378    使用鼠标左击或者方向键`↑`和`↓`,可以选取需要编译的样例产品,按下回车键确定选项。
379
380    也可使用以下命令进行修改:
381
382    ```bash
383    hb set -p {PRODUCT_NAME}
384    ```
385
386    `{PRODUCT_NAME}`为产品选择界面中列举出来的样例的名称,如`xts_demo`。
387
3883. 编译
389
390    后续修改了本样例产品中的文件,只需要执行以下命令进行编译,不需要再重复上述第一、二步去设置产品的根目录。
391
392    ```bash
393    hb build -f
394    ```
395
396    生成的固件位于工程根目录下:
397
398    ```bash
399    out/{BOARD_NAME}/{PRODUCT_NAME}/bin/{PRODUCT_NAME}.bin
400    ```
401
402    `{BOARD_NAME}`为主板名,为`b91_devkit`。
403
404## 烧录固件
405
406在Windows平台的环境下,烧录固件。
407
408### 烧录工具
409
410Burning and Debugging Tools(BDT)仅支持在Windows平台下安装和使用,其可执行安装程序为Telink BDT.exe411[点击下载BDT](http://wiki.telink-semi.cn/tools_and_sdk/Tools/BDT/BDT.zip)
412
413### 连接硬件
414
415请按照下面的图示进行硬件连接。图中的紫线表示USB线,其他两根线表示杜邦线。
416
417![硬件连接示意图](figures/flahsing_hw_connections_1.jpg)
418
419> 注意:务必采用默认的跳帽配置。
420
421下图是完成所有硬件连接后状态:
422
423![硬件连接实例](figures/flahsing_hw_connections_2.jpg)
424
425### 烧录
426
4271. 用USB线连接烧录器到电脑的USB口。
428
4292. 下载BDT烧录软件,解压到本地文件夹,双击可执行文件"Telink BDT.exe"。
430如果一切正常,可以看到如下的窗口显示,在系统标题栏中可以看到已被连接的烧录器的设备信息(见图中红色框)。
431
432    ![BDT正常启动后的界面](figures/bdt_connection.png)
433
4343. 点击工具栏中的"SWS"按钮,如果看到下图中的消息,则标明所有的硬件连接都没有问题。
435
436    ![按下SWS按钮后的界面显示](figures/bdt_connection_2.png)
437
4384. 设置Flash擦除的区域大小。点击工具栏中的"Setting"按钮,在弹出的“Setting"窗口中可以看到默认的Flash擦除的区域大小是512kB。
439
440    ![默认的Flash擦除的区域大小](figures/bdt_earse_size_512.png)
441
442    将Flash擦除的区域大小设置为“2040”,如下图所示:
443
444    ![改写Flash擦除的区域大小](figures/bdt_earse_size_2040.png)
445
446    > 注意:对于外挂2MB Flash的TLSR9518开发板,Flash最后的8kB空间预留用于保存重要的SoC信息,因此最多可以擦除2040kB的Flash区域。
447
4485. 点击工具栏中的"Erase"按钮,等待Flash擦除操作完成。
449
450    ![Flash擦除操作](figures/bdt_earse_done.png)
451
4526. 选择需要烧录的BIN文件。点击"File"菜单里面的"Open"子菜单,在弹出的文件选择对话框中选中需要烧录的BIN文件。选中后的BIN文件将显示在底部的状态栏中。
453
454    ![加载BIN文件](figures/bdt_file_open.png)
455
4567. 点击工具栏中"Download"按钮,等待Flash烧录完成。
457
458    ![Flash烧录操作](figures/bdt_flash_done.png)
459
460### 平台和驱动
461
462烧录工具不需要安装额外的驱动程序。
463
464如果烧录器插入电脑后,可以被Windows的设备管理器正确识别,但是烧录工具软件没有识别到,即在系统标题栏中看不到烧录器的设备信息。
465
466请检查电脑是否用了AMD平台的处理器,如果是的话,请换一台Intel平台处理器的电脑重新尝试。
467
468### 常见问题
469
470最常见的问题是:在点击工具栏中的"SWS"按钮后,出现下图中的错误信息。
471
472![按下SWS按钮后的错误信息](figures/bdt_sws_error.png)
473
474有两种主要原因。
475
476- 第一种原因是硬件连接不正确。
477
478请参照前面的说明仔细核对所有的[硬件连接](#连接硬件),确认没有遗漏的连接。
479
480- 在完全排除硬件连接问题之后,考虑第二种原因,即烧录器的固件版本太低。
481
482请按照下面步骤查看烧录器固件的版本。
483
4841. 点击Help菜单下的Upgrade子菜单。
485
4862. 在弹出的Upgrade EVK窗口中,点击"Read FW Version"按钮。在旁边的"Firmware Version"区域将会显示烧录器的固件版本号,例如下图。
487如果固件版本号低于V3.4,可以确认是由于固件版本太低导致了通讯错误。请继续下面的步骤去完成固件升级。
488
489    ![查看烧录器固件版本](figures/bdt_firmware_version.png)
490
4913. 点击窗口中的"Load..."按钮,在BDT工具所在目录下的config目录下的fw子目录找到最新的烧录器固件,如下图中的Firmware_v3.5.bin文件。
492
493    ![升级烧录器固件](figures/bdt_firmware_upgrade.png)
494
4954. 点击Upgrade按钮完成烧录器固件升级。
496
4975. 插拔烧录器的USB线,使烧录器重新上电。
498
499**提示:** 更多BDT的使用说明,请参考[Burning and Debugging Tools for all Series](http://wiki.telink-semi.cn/wiki/IDE-and-Tools/Burning-and-Debugging-Tools-for-all-Series/)
500
501## 相关仓库
502
503演示样例:[vendor_telink](https://gitee.com/openharmony/vendor_telink)
504
505B91开发板:[device_board_telink](https://gitee.com/openharmony/device_board_telink)
506