[TOC]
基于Goodix开发的BLE应用soc部分,主要存放GR551x系列芯片的sdk和适配,以及后续其他系列芯片的适配。
以下内容步骤参考quickstart-lite-env-setup-linux
系统要求:Ubuntu16.04 或 Ubuntu18.04 64位系统版本。
mkdir ~/bin
wget https://storage.googleapis.com/git-repo-downloads/repo -P ~/bin/
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
和export REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
- 通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux服务器与Windows工作台之间的文件共享。
- 使用如下apt-get命令安装编译所需的必要的库和工具:
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
打开Linux编译服务器终端。
输入如下命令,查看python版本号:
python3 --version
如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。
cat /etc/issue
如果Ubuntu 版本为18+,运行如下命令。
sudo apt-get install python3.8
如果Ubuntu版本为16。
a. 安装依赖包
sudo apt update && sudo apt install software-properties-common
b. 添加deadsnakes PPA 源,然后按回车键确认安装。
sudo add-apt-repository ppa:deadsnakes/ppa
c. 安装python3.8
sudo apt upgrade && sudo apt install python3.8
设置python和python3软链接为python3.8。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
安装并升级Python包管理工具(pip3),任选如下一种方式。
命令行方式:
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
安装包方式:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
请先安装Python 3.7.4及以上版本,请见安装Python3。
运行如下命令安装hb
python3 -m pip install --user ohos-build
设置环境变量
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
执行如下命令更新环境变量。
source ~/.bashrc
执行"hb -h",有打印以下信息即表示安装成功:
usage: hb
OHOS build system
positional arguments:
{build,set,env,clean}
build Build source code
set OHOS build settings
env Show OHOS build env
clean Clean output
optional arguments:
-h, --help show this help message and exit
vim ~/.bashrc
。export PATH=/home/tools/ARM/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH
。source ~/.bashrc
使环境变量生效。mkdir ~/openharmony
cd ~/openharmony
repo init -u https://gitee.com/openharmony/manifest --no-repo-verify
repo sync -c
,也就是下载当前分支的代码。repo forall -c 'git lfs pull'
,下载部分大容量二进制文件。在device文件夹下,确保device/soc目录结构如下
user:~/openharmony/device/soc$ tree -L 3
.
└── goodix
├── BUILD.gn # GN构建脚本
├── gr551x # gr551x soc适配目录
│ ├── adapter # 外设驱动、BLE、文件系统适配
│ ├── BUILD.gn # GN构建脚本
│ ├── components # 组件
│ ├── hcs # 设备描述文件
│ ├── Kconfig.liteos_m.defconfig.gr551x # gr551x Kconfig默认配置
│ ├── Kconfig.liteos_m.defconfig.series # series Kconfig默认配置
│ ├── Kconfig.liteos_m.series # series Kconfig配置项
│ ├── Kconfig.liteos_m.soc # soc Kconfig配置项
│ ├── sdk_liteos # Liteos GR551x SDK适配
│ └── tools # 固件生成工具
├── Kconfig.liteos_m.defconfig # liteos_m Kconfig默认配置
├── Kconfig.liteos_m.series # liteos_m series配置项
└── Kconfig.liteos_m.soc # liteos_m soc配置项
在device文件夹下,确保device/board目录结构如下
user:~/openharmony/device/board$ tree -L 3
.
└── goodix
├── BUILD.gn # GN构建脚本
├── drivers # 板级驱动存放目录
│ └── BUILD.gn # GN构建脚本
├── gr5515_sk # GR5515 Starter Kit开发板配置目录
│ ├── BUILD.gn # GN构建脚本
│ ├── gr5515_sk_defconfig # GR5515 Starter Kit Kconfig默认配置
│ ├── Kconfig.liteos_m.board # Board liteos_m Kconfig配置项
│ ├── Kconfig.liteos_m.defconfig.board # Board liteos_m Kconfig默认配置
│ └── liteos_m # 构建脚本目录
├── hcs # hcs硬件描述配置目录
│ ├── BUILD.gn # GN构建脚本
│ └── gr5515_sk.hcs # GR5515 Starter Kit hcs硬件描述脚本
├── Kconfig.liteos_m.boards # Board liteos_m Kconfig配置项
└── Kconfig.liteos_m.defconfig.boards # Board liteos_m Kconfig默认配置
在vendor文件夹下,确保vendor文件夹目录结构如下
user:~/openharmony/vendor$ tree -L 3
.
└── goodix
├── gr5515_sk_iotlink_demo # BLE应用示例工程
│ ├── ble_template # BLE示例代码
│ ├── BUILD.gn # GN构建脚本
│ ├── config.json # 子系统裁配置裁剪脚本
│ ├── hals # 产品参数配置
│ ├── hdf_config # HDF硬件描述配置
│ └── kernel_configs # Kconfig配置输出
└── gr5515_sk_xts_demo # XTS测试示例工程
├── BUILD.gn # GN构建脚本
├── config.json # 子系统裁配置裁剪脚本
├── tests # 测试用例
├── hals # 产品参数配置
├── hdf_config # HDF硬件描述配置
└── kernel_configs # Kconfig配置输出
进入源码根目录编译工程
hb set -root .
选择当前路径为工程根目录
hb set -p
选择工程
goodix
>gr5515_sk_iotlink_demo
gr5515_sk_xts_demo
hb build -f
开始编译,后续修改了文件只需要执行hb build -f
即可,不需要重复以上步骤。
如果hb set命令提示报错,请先执行一次python3 -m pip install build/lite
生成的固件位于out/{board_name}/{product_name}/bin/application_fw.bin。
GProgrammer仅支持在Windows平台下安装使用,其可执行安装程序为GProgrammer Setup Version.exe。点击下载GProgrammer
用户可按照以下步骤安装GProgrammer:
GProgrammer既支持JLink SWD方式烧录,也支持串口方式烧录,这里推荐使用SWD连接方式。
选择SWD连接方式时,用户需使用J-Link仿真器来连接PC和目标板。使用USB线将仿真器的一端与PC相连,使用杜邦线将仿真器的另一端与目标板上的芯片管脚相连。
J-Link仿真器与芯片管脚的连接对应关系如下:
J-Link仿真器管脚 | GR551x芯片管脚 |
---|---|
VCC | VCC |
GND | GND |
SWDIO | GPIO_1 |
SWCLK | GPIO_0 |
提示: 如过用户使用的是Goodix的GR5515 Starter Kit开发板,开发板已经集成J-Link OB芯片,用户只需使用一根Micro USB 2.0线连接开发板和PC,Mirco USB用于供电以及通过J-Link进行固件烧录。
启动GProgrammer后,默认进入芯片选型页面,如下图所示,根据自己产品或者开发板使用的芯片型号选择对应的芯片型号。
选择芯片型号后,进入主界面:
软件界面的左侧为功能导航栏(具体描述见下表),右侧为功能操作区域。
图标 | 功能名称 | 描述 |
---|---|---|
Firmware | 点击该图标,进入固件操作页面 | |
Flash | 点击该图标,进入Flash操作页面 | |
Encrypt & Sign | 点击该图标,进入加密加签操作页面 | |
eFuse Layout | 点击该图标,进入eFuse展示操作页面 | |
Chip Configuration | 点击该图标,进入芯片配置操作页面 | |
Device Log | 点击该图标,进入设备日志操作页面 | |
Help | 点击该图标,进入帮助操作页面 |
用户可管理控制目标板与主机之间的连接。
点击软件界面右上角的 ,可展开连接管理面板;再次点击 ,可收起并隐藏该面板。
GProgrammer支持SWD和串口两种连接方式。
在SWD连接方式下,用户只需配置传输速率Speed,即可点击Connect按钮连接目标板。
参数配置完成后,点击Connect按钮连接目标板。
目标板连接成功后,连接管理面板将自动收起并隐藏。同时,按钮将变成,表示当前的连接状态为“已连接”。
如需断开连接,再次点击,打开连接管理面板,然后点击Disconnect按钮即可。
GProgrammer以图形化方式展示Flash Firmware Layout(如图下图所示),可帮助用户直观了解Flash中固件区域的占用情况。
(浅灰色):可下载的Flash空间。
(深蓝色):软件默认配置的NVDS区域。固件不能下载至该区域。
(深灰色):待删除的固件,如ble_app_ancs。
(浅绿色):待下载的固件,如ble_app_hrs。
(深绿色):已存在于Flash中的固件,如ble_app_bps。
(红色):两个固件的占用空间的重叠区域,如ble_app_T3u和ble_app_hts。
用户下载固件时,请按以下步骤操作:
点击Add按钮,从本地添加需下载的固件文件。固件文件添加后,可查看到该固件的详细信息,例如固件文件路径、固件Image Info信息。
在图形化展示的Flash Firmware Layout区域中,选中要启动的固件,点击Startup按钮,此时该选中的固件会出现一个小火箭,表示下载成功后立即启动该固件。
点击Commit按钮,将固件文件下载到Flash。
下载完成后,若Layout示意图中的固件由浅绿色变为深绿色,则表示固件下载成功。
提示: 更详细的GProgrammer使用指导,参考GProgrammer用户手册
git clone https://gitee.com/sink-top/gprogrammer-linux.git
cd gprogrammer-linux/
tar -xjvf GProgrammer-1.2.15.tar.bz2
cd GProgrammer-1.2.15/
sudo dpkg -i JLink_Linux_V618c_x86_64.deb
参考上面"编译工程"章节,选中gr5515_sk_xts_demo工程编译后,生成的固件存放在"~/openharmony/out/gr551x/gr5515_sk_xts_demo/bin/application_fw.bin"。
J-Link仿真器与开发板或者产品正确连接,且J-Link仿真器的USB与Ubuntu连接,确保Ubuntu USB列表能找到J-Link设备。
在GProgrammer-1.2.15目录下:
./GR551x_console eraseall
./GR551x_console erase 0x1000000 0x10c3000 y
上面两种擦除方式,二选一执行。
./GR551x_console program ~/openharmony/out/gr551x/gr5515_sk_xts_demo/bin/application_fw.bin y
提示: 更多GProgrammer命令的使用,请参考GProgrammer命令行
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。