• Home
Name Date Size #Lines LOC

..--

gr551x/12-May-2024-138,69956,102

BUILD.gnD12-May-2024772 2119

Kconfig.liteos_m.defconfigD12-May-2024632 1413

Kconfig.liteos_m.seriesD12-May-2024624 1513

Kconfig.liteos_m.socD12-May-2024753 2219

LICENSED12-May-20249.9 KiB177150

OAT.xmlD12-May-20242.5 KiB4425

README.en.mdD12-May-2024973 3725

README.mdD12-May-202419.3 KiB442292

README.en.md

1# devboard_device_goodix_gr551x
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.md

1# device_soc_goodix
2
3[TOC]
4
5## 简介
6
7基于Goodix开发的BLE应用soc部分,主要存放GR551x系列芯片的sdk和适配,以及后续其他系列芯片的适配。
8
9以下内容步骤参考[quickstart-lite-env-setup-linux](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-env-setup-linux.md)
10
11系统要求:Ubuntu16.04 或 Ubuntu18.04 64位系统版本。
12
13## 编译构建
14
15### 工具安装
16
17#### 安装repo
18
191. 创建repo安装目录:命令行输入`mkdir ~/bin`
202. 下载repo:命令行输入`wget https://storage.googleapis.com/git-repo-downloads/repo -P ~/bin/`
213. 改变执行权限:命令行输入`chmod a+x ~/bin/repo`
224. 设置环境变量:在~/.bashrc文件的最后输入`export PATH=~/bin:$PATH`和`export REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/`
235. 重启shell
24
25#### 安装必要的库和工具
26
27> - 通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux服务器与Windows工作台之间的文件共享。
28
29> - 使用如下apt-get命令安装编译所需的必要的库和工具:
30
31```
32sudo 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
33```
34
35#### 安装Python3
36
371. 打开Linux编译服务器终端。
382. 输入如下命令,查看python版本号:
39
40   ```
41   python3 --version
42   ```
43
44   如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。
45
46   1. 运行如下命令,查看Ubuntu版本:
47
48   ```
49   cat /etc/issue
50   ```
51
52   1. 根据Ubuntu不同版本,安装python。
53      - 如果Ubuntu 版本为18+,运行如下命令。
54
55        ```
56        sudo apt-get install python3.8
57        ```
58      - 如果Ubuntu版本为16。
59
60        a. 安装依赖包
61
62        ```
63        sudo apt update && sudo apt install software-properties-common
64        ```
65
66        b. 添加deadsnakes PPA 源,然后按回车键确认安装。
67
68        ```
69        sudo add-apt-repository ppa:deadsnakes/ppa
70        ```
71
72        c. 安装python3.8
73
74        ```
75        sudo apt upgrade && sudo apt install python3.8
76        ```
773. 设置python和python3软链接为python3.8。
78
79   ```
80   sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
81   sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
82   ```
834. 安装并升级Python包管理工具(pip3),任选如下一种方式。
84
85   - **命令行方式:**
86
87     ```
88     sudo apt-get install python3-setuptools python3-pip -y
89     sudo pip3 install --upgrade pip
90     ```
91   - **安装包方式:**
92
93     ```
94     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
95     python get-pip.py
96     ```
97
98#### 安装hb
99
100##### 前提条件
101
102请先安装Python 3.7.4及以上版本,请见[安装Python3](#section1238412211211)。
103
104##### 安装方法
105
1061. 运行如下命令安装hb
107
108   ```
109   python3 -m pip install --user ohos-build
110   ```
1112. 设置环境变量
112
113   ```
114   vim ~/.bashrc
115   ```
116
117   将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
118
119   ```
120   export PATH=~/.local/bin:$PATH
121   ```
122
123   执行如下命令更新环境变量。
124
125   ```
126   source ~/.bashrc
127   ```
1283. 执行"hb -h",有打印以下信息即表示安装成功:
129
130   ```
131   usage: hb
132
133   OHOS build system
134
135   positional arguments:
136     {build,set,env,clean}
137       build               Build source code
138       set                 OHOS build settings
139       env                 Show OHOS build env
140       clean               Clean output
141
142   optional arguments:
143     -h, --help            show this help message and exit
144   ```
145
146#### 安装编译工具链
147
1481. 编译链工具推荐使用gcc-arm-none-eabi-10-2020-q4-major。(下载网站:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads )。
1492. 执行`vim ~/.bashrc`。
1503. 将工具链的路径加入环境变量, 如:`export PATH=/home/tools/ARM/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH`。
1513. 保存后执行`source ~/.bashrc`使环境变量生效。
152
153### 获取代码流程
154
1551. 新建代码存放目录(用户可以自行指定为其他目录),并进入:
156```
157mkdir ~/openharmony
158cd ~/openharmony
159```
1602. 打包下载所有文件,此时默认的Harmony版本为Master:
161```
162repo init -u https://gitee.com/openharmony/manifest --no-repo-verify
163```
1643. 下载好仓库后,输入:`repo sync -c`,也就是下载当前分支的代码。
1654. 下载好代码后,输入:`repo forall -c 'git lfs pull'`,下载部分大容量二进制文件。
166
167### 确认目录结构
168
169在device文件夹下,确保device/soc目录结构如下
170
171```shell
172user:~/openharmony/device/soc$ tree -L 3
173.
174└── goodix
175    ├── BUILD.gn                                  # GN构建脚本
176    ├── gr551x                                    # gr551x soc适配目录
177    │   ├── adapter                               # 外设驱动、BLE、文件系统适配
178    │   ├── BUILD.gn                              # GN构建脚本
179    │   ├── components                            # 组件
180    │   ├── hcs                                   # 设备描述文件
181    │   ├── Kconfig.liteos_m.defconfig.gr551x     # gr551x Kconfig默认配置
182    │   ├── Kconfig.liteos_m.defconfig.series     # series Kconfig默认配置
183    │   ├── Kconfig.liteos_m.series               # series Kconfig配置项
184    │   ├── Kconfig.liteos_m.soc                  # soc Kconfig配置项
185    │   ├── sdk_liteos                            # Liteos GR551x SDK适配
186    │   └── tools                                 # 固件生成工具
187    ├── Kconfig.liteos_m.defconfig                # liteos_m Kconfig默认配置
188    ├── Kconfig.liteos_m.series                   # liteos_m series配置项
189    └── Kconfig.liteos_m.soc                      # liteos_m soc配置项
190```
191
192在device文件夹下,确保device/board目录结构如下
193
194```shell
195user:~/openharmony/device/board$ tree -L 3
196.
197└── goodix
198    ├── BUILD.gn                                  # GN构建脚本
199    ├── drivers                                   # 板级驱动存放目录
200    │   └── BUILD.gn                              # GN构建脚本
201    ├── gr5515_sk                                 # GR5515 Starter Kit开发板配置目录
202    │   ├── BUILD.gn                              # GN构建脚本
203    │   ├── gr5515_sk_defconfig                   # GR5515 Starter Kit Kconfig默认配置
204    │   ├── Kconfig.liteos_m.board                # Board liteos_m Kconfig配置项
205    │   ├── Kconfig.liteos_m.defconfig.board      # Board liteos_m Kconfig默认配置
206    │   └── liteos_m                              # 构建脚本目录
207    ├── hcs                                       # hcs硬件描述配置目录
208    │   ├── BUILD.gn                              # GN构建脚本
209    │   └── gr5515_sk.hcs                         # GR5515 Starter Kit hcs硬件描述脚本
210    ├── Kconfig.liteos_m.boards                   # Board liteos_m Kconfig配置项
211    └── Kconfig.liteos_m.defconfig.boards         # Board liteos_m Kconfig默认配置
212```
213
214在vendor文件夹下,确保vendor文件夹目录结构如下
215
216```shell
217user:~/openharmony/vendor$ tree -L 3
218.
219└── goodix
220    ├── gr5515_sk_iotlink_demo                    # BLE应用示例工程
221    │   ├── ble_template                          # BLE示例代码
222    │   ├── BUILD.gn                              # GN构建脚本
223    │   ├── config.json                           # 子系统裁配置裁剪脚本
224    │   ├── hals                                  # 产品参数配置
225    │   ├── hdf_config                            # HDF硬件描述配置
226    │   └── kernel_configs                        # Kconfig配置输出
227    └── gr5515_sk_xts_demo                        # XTS测试示例工程
228        ├── BUILD.gn                              # GN构建脚本
229        ├── config.json                           # 子系统裁配置裁剪脚本
230        ├── tests                                 # 测试用例
231        ├── hals                                  # 产品参数配置
232        ├── hdf_config                            # HDF硬件描述配置
233        └── kernel_configs                        # Kconfig配置输出
234```
235
236### 编译工程
237
238进入源码根目录编译工程
239
240   ​	`hb set -root .`   选择当前路径为工程根目录
241
242   ​	`hb set -p `       选择工程
243
244    goodix
245        >gr5515_sk_iotlink_demo
246         gr5515_sk_xts_demo
247
248   ​	`hb build -f`  开始编译,后续修改了文件只需要执行`hb build -f`即可,不需要重复以上步骤。
249
250如果hb set命令提示报错,请先执行一次`python3 -m pip install build/lite`
251
252## 使用方法
253
254生成的固件位于**out/{board_name}/{product_name}/bin/application_fw.bin**。
255
256### Windows下固件烧录
257
258#### 软件安装
259
260GProgrammer仅支持在Windows平台下安装使用,其可执行安装程序为GProgrammer Setup Version.exe。[点击下载GProgrammer](https://product.goodix.com/zh/software_tool/gprogrammer)
261
262用户可按照以下步骤安装GProgrammer:
263
2641. 双击GProgrammer的可执行安装程序GProgrammer Setup Version.exe,进入GProgrammer安装界面,然后按照安装向导提示逐步完成安装操作。
265
266![GProgrammer安装界面](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/2_1GProgrammer_insta_if.png)
267
2682. GProgrammer安装完成后,将提示用户继续安装JLink驱动,如下图所示。
269
270![安装JLink提示](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/2_2install_JLink_prom.png)
271
2723. JLink安装完成后,用户可通过桌面或开始菜单的快捷方式启动GProgrammer软件。
273
274#### 硬件连接
275
276GProgrammer既支持JLink SWD方式烧录,也支持串口方式烧录,这里推荐使用SWD连接方式。
277
278选择SWD连接方式时,用户需使用J-Link仿真器来连接PC和目标板。使用USB线将仿真器的一端与PC相连,使用杜邦线将仿真器的另一端与目标板上的芯片管脚相连。
279
280![GProgrammer安装界面](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_1Host_obj_connect.png)
281
282
283J-Link仿真器与芯片管脚的连接对应关系如下:
284
285| J-Link仿真器管脚 | GR551x芯片管脚 |
286| ---------------- | -------------- |
287| VCC              | VCC            |
288| GND              | GND            |
289| SWDIO            | GPIO_1         |
290| SWCLK            | GPIO_0         |
291
292
293**提示:** 如过用户使用的是Goodix的GR5515 Starter Kit开发板,开发板已经集成J-Link OB芯片,用户只需使用一根Micro USB 2.0线连接开发板和PC,Mirco USB用于供电以及通过J-Link进行固件烧录。
294
295#### 芯片选型
296
297启动GProgrammer后,默认进入芯片选型页面,如下图所示,根据自己产品或者开发板使用的芯片型号选择对应的芯片型号。
298
299![GProgrammer启动界面](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_4filterGR551x_soc.png)
300
301选择芯片型号后,进入主界面:
302
303![GProgrammer主界面](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_6GProgrammer_sw_if.png)
304
305软件界面的左侧为功能导航栏(具体描述见下表),右侧为功能操作区域。
306
307|                                                               图标                                                               |     	功能名称     |               描述               |
308| ------------------------------------------------------------------------------------------------------------------------------- | ------------------ | -------------------------------- |
309| ![Firmware](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_Firmware.png)         | Firmware           | 点击该图标,进入固件操作页面      |
310| ![Flash](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_Flash.png)               | Flash              | 点击该图标,进入Flash操作页面     |
311| ![Encrypt](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_encrypt_sign.png)      | Encrypt & Sign     | 点击该图标,进入加密加签操作页面   |
312| ![eFuse Layout](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_efuse_layout.png) | eFuse Layout       | 点击该图标,进入eFuse展示操作页面 |
313| ![Chip config](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_chip_config.png)   | Chip Configuration | 点击该图标,进入芯片配置操作页面   |
314| ![Device Log](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_device_log.png)     | Device Log         | 点击该图标,进入设备日志操作页面   |
315| ![Help](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_help.png)                 | Help               | 点击该图标,进入帮助操作页面      |
316
317
318#### 连接设备
319
320用户可管理控制目标板与主机之间的连接。
321
322点击软件界面右上角的![打开连接面板_灰](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_disconnect.png) ,可展开连接管理面板;再次点击![隐藏连接面板_灰](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_disconnect.png) ,可收起并隐藏该面板。
323
324GProgrammer支持SWD和串口两种连接方式。
325
326* SWD连接
327
328在SWD连接方式下,用户只需配置传输速率**Speed**,即可点击**Connect**按钮连接目标板。
329
330<img src="https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_7SWD_connect.png" width = "323" height = "450" alt="SWD连接" align=“center” />
331
332* 串口(UART)连接
333在串口(UART)连接方式下,用户可根据实际情况配置串口号Port(需点击Refresh按钮获取串口号列表,再选择正确的串口号)和波特率,其他参数默认配置不可修改。
334
335<img src="https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_8UART_connect.png" width = "323" height = "450" alt="串口连接" align=“center” />
336
337参数配置完成后,点击**Connect**按钮连接目标板。
338
339目标板连接成功后,连接管理面板将自动收起并隐藏。同时,按钮![打开连接面板_灰](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_disconnect.png)将变成![打开连接面板_彩](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_connect.png),表示当前的连接状态为“已连接”。
340
341如需断开连接,再次点击![打开连接面板_彩](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/icon_connect.png),打开连接管理面板,然后点击Disconnect按钮即可。
342
343<img src="https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_9disconnect.png" width = "323" height = "450" alt="断开连接" align=“center” />
344
345
346#### 固件下载
347
348GProgrammer以图形化方式展示Flash Firmware Layout(如图下图所示),可帮助用户直观了解Flash中固件区域的占用情况。
349
350![FW Flash布局](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/3_11Flash_FW_layout.png)
351
352![浅灰色](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/color_light_gray.png)(浅灰色):可下载的Flash空间。
353
354![深蓝色](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/color_dark_blue.png)(深蓝色):软件默认配置的NVDS区域。固件不能下载至该区域。
355
356![深灰色](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/color_dark_gray.png)(深灰色):待删除的固件,如ble_app_ancs。
357
358![浅绿色](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/color_light_green.png)(浅绿色):待下载的固件,如ble_app_hrs。
359
360![深绿色](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/color_dark_green.png)(深绿色):已存在于Flash中的固件,如ble_app_bps。
361
362![红色](https://docs.goodix.com/zh/docimg/gprogrammer_user_guide/227/gprogrammer_V2.3/zh//images/color_red.png)(红色):两个固件的占用空间的重叠区域,如ble_app_T3u和ble_app_hts。
363
364用户下载固件时,请按以下步骤操作:
365
3661. 点击**Add**按钮,从本地添加需下载的固件文件。固件文件添加后,可查看到该固件的详细信息,例如固件文件路径、固件Image Info信息。
367
3682. 在图形化展示的Flash Firmware Layout区域中,选中要启动的固件,点击**Startup**按钮,此时该选中的固件会出现一个小火箭,表示下载成功后立即启动该固件。
369
3702. 点击**Commit**按钮,将固件文件下载到Flash。
371
372下载完成后,若Layout示意图中的固件由浅绿色变为深绿色,则表示固件下载成功。
373
374**提示:** 更详细的GProgrammer使用指导,参考[GProgrammer用户手册](https://docs.goodix.com/zh/online/detail/gprogrammer_user_guide/V2.3/49d7f26f7b5054f6b7ea83e073f8e6c6)
375
376### Linux下固件烧录
377
378#### 1. GProgrammer获取:
379
380```
381git clone https://gitee.com/sink-top/gprogrammer-linux.git
382
383```
384#### 2. 解压:
385
386```
387cd gprogrammer-linux/
388tar -xjvf GProgrammer-1.2.15.tar.bz2
389
390```
391
392#### 3. 安装J-Link软件:
393
394```
395cd GProgrammer-1.2.15/
396sudo dpkg -i JLink_Linux_V618c_x86_64.deb
397
398```
399
400#### 4. 固件下载
401
402参考上面"编译工程"章节,选中**gr5515_sk_xts_demo**工程编译后,生成的固件存放在"~/openharmony/out/gr551x/gr5515_sk_xts_demo/bin/application_fw.bin"。
403
404##### 1. 硬件连接
405
406J-Link仿真器与开发板或者产品正确连接,且J-Link仿真器的USB与Ubuntu连接,确保Ubuntu USB列表能找到J-Link设备。
407
408##### 2. 固件下载
409
410在GProgrammer-1.2.15目录下:
411
4121. 先擦除Flash上已经存在的固件
413
414* 全部擦除,包括文件系统、NVDS区域保存的用户信息,如果用户不关心这些信息,执行此命令:
415
416```
417./GR551x_console eraseall
418```
419
420* 擦除部分区域,保留文件系统、NVDS区域保存的用户信息:
421
422```
423 ./GR551x_console erase 0x1000000 0x10c3000 y
424```
425
426上面两种擦除方式,二选一执行。
427
4282. 烧录固件:
429
430```
431 ./GR551x_console program ~/openharmony/out/gr551x/gr5515_sk_xts_demo/bin/application_fw.bin y
432```
433
434**提示:** 更多GProgrammer命令的使用,请参考[GProgrammer命令行](https://docs.goodix.com/zh/online/detail/gprogrammer_user_guide/V2.3/c2309a4b419cd3bb0d5cb6b7335c077d)
435
436## 相关仓库
437
438[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)
439
440[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)
441
442