Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
b91/ | 12-May-2024 | - | 64,911 | 36,408 | ||
figures/ | 12-May-2024 | - | ||||
util/ | 12-May-2024 | - | 120 | 96 | ||
BUILD.gn | D | 12-May-2024 | 839 | 23 | 21 | |
End User License Agreement.md | D | 12-May-2024 | 8 KiB | 71 | 33 | |
Kconfig.liteos_m.defconfig | D | 12-May-2024 | 690 | 17 | 15 | |
Kconfig.liteos_m.series | D | 12-May-2024 | 680 | 17 | 15 | |
Kconfig.liteos_m.soc | D | 12-May-2024 | 803 | 25 | 21 | |
LICENSE | D | 12-May-2024 | 9.9 KiB | 177 | 150 | |
NOTICE.md | D | 12-May-2024 | 1.3 KiB | 31 | 20 | |
OAT.xml | D | 12-May-2024 | 5 KiB | 76 | 29 | |
README.md | D | 12-May-2024 | 961 | 37 | 25 | |
README_zh.md | D | 12-May-2024 | 19.1 KiB | 506 | 343 |
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.exe。 411[点击下载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