为ING916搭建Zephyr开发环境
对于ING916/ING918 的NoOS 软件包,可以使用 Zephyr OS作为实时内核。SDK v8.4.1 提供了完整的 Controller 接口,可以对接 Zephyr BLE Host 协议栈。这里我们将为ING916 搭建 Zephyr 开发环境。在这个环境下,开发者可以使用 Zephyr RTOS 及其 BLE 协议栈。
01开发环境配置
请参考 Zephyr Getting Started 文档, 大致了解配置步骤。(https://docs.zephyrproject.org/latest/develop/getting_started/index.html)
对于 Windows,与 Zephyr 文档相反,我们推荐在 WSL 1 + Ubuntu 中配置开发环境。在 WSL 1 中配置具有下列优点:
●无阻碍的跨系统文件访问,可使用 SDK 里的各种 Windows 工具;
●比 Windows 本地安装相比,在 WSL 1+ Ubuntu 里安装步骤更简单。
下面介绍安装步骤时,都以 Ubuntu 为例,其它操作系统请参考 Zephyr 文档相应修改。
1.1 安装依赖
安装依赖这一步骤主要是把保证以下几项工具满足最低版本要求:
请参考 Zephyr 文档 完成。(https://docs.zephyrproject.org/latest/develop/getting_started/index.html#install-dependencies)
1.2 安装Zephyr SDK 工具
Zephyr SDK 包含 Zephyr 工具链。这里 (https://github.com/ingchips/breezing-sdk/releases)是针对 Ubuntu 的剪裁版,删除了不必要的工具,体积小。也可以下载完整版 。两种版本在使用上没有任何区别。(https://docs.zephyrproject.org/latest/develop/getting_started/index.html#install-the-zephyr-sdk)
将 Zephyr SDK 解压到推荐的目录下, 执行 setup.sh 完成安装。(https://docs.zephyrproject.org/latest/develop/getting_started/index.html#install-the-zephyr-sdk)
从现在开始,假设工作目录为 ~/zephyrproject。Zephyr 代码仓库、外部模仓库等都将克隆到这个目录,代码开发、程序编译也发生在这里。对于 WSL 1 + Ubuntu 的情况,建议将 zephyrproject 创建在 Windows 文件系统内。
1.3 安装Python包
这一步只安装 west,其它的 Python 包需要在获取代码后再安装。
Python 包有两种安装方式:全局安装;借助 venv 只为单个项目安装。
1.3.1 全局安装
安装 west:pip install west
1.3.2 使用 venv
对于 Ubuntu,此时需要安装 venv 包:
sudo apt install python3-venv
创建并激活虚拟环境,然后安装 west:
python3 -m venv ~/zephyrproject/.venv
source ~/zephyrproject/.venv/bin/activate
pip install west
1.4 获取INGCHIPS SDK
●Windows:
对于 Windows 系统,如果尚未安装 SDK,请下载安装。(https://ingchips.github.io/docs/sdk/download/)
●其它操作系统:
对于其它操作系统,请克隆 SDK 代码仓库,(https://github.com/ingchips/ING918XX_SDK_SOURCE)参考 说明 生成必要的文件。(https://github.com/ingchips/ING918XX_SDK_SOURCE/blob/master/tools/README.md#file-generator)
02获取代码
2.1 获取代码仓库
Breezing (https://github.com/ingchips/breezing)是 Zephyr 剪裁适配版,删除了不必要的芯片型号、代码, 以及所有的版本历史记录,克隆更快捷。开发者也可以使用完整版 (https://github.com/ingchips/zephyr)。两种版本在使用上没有任何区别。
选用 Breezing,克隆所有的代码仓库:
west init -m https://github.com/ingchips/breezing.git ~/zephyrprojectcd ~/zephyrproject
west update
2.2 继续安装Pyhton 包
●自动安装其它包:
pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt
●或者只安装必要的包:
pip install pyelftools
对于全局安装方式,Python 包安装已完成,后续不再需要任何操作。对于 venv 安装方式:
●如果再次克隆了代码仓库,需要在新的目录下重新执行上述步骤;
●调用 Python 工具时,注意检查项目里的虚拟环境是否已激活。
2.3 链接到INGCHIPS SDK
●对于 SDK 安装到 Windows 的情况:
假设安装目录为 C:\Programs\ING_SDK。如果 Zephyr 配置在 WSL 1 + Ubuntu 里,那么执行这个命令将 Zephyr 链路到该目录:
python3 ~/zephyrproject/zephyr/scripts/utils/select_sdk.py /mnt/c/Programs/ING_SDK/sdk
如果 Zephyr 配置在 Windows 里,那么执行这个命令将 Zephyr 链路到该目录:
python path\to\zephyrproject\zephyr\scripts\utils\select_sdk.py C:\Programs\ING_SDK\sdk
请将 path\to\zephyrproject 替换为 zephyrproject 的实际路径。
●其它情况
假设克隆到目录 ~/ING_SDK,执行命令将 Zephyr 链路到该目录:
python3 ~/zephyrproject/zephyr/scripts/utils/select_sdk.py ~/ING_SDK
注意: 每次更新 INGCHIPS SDK 后,请重新运行 select_sdk.py 脚本。
03编译、运行
3.1 代码编译
cd ~/zephyrproject/zephyr
west build -b ing9168_mini samples/bluetooth/direct_adv
当需要完全重新编译(如修改设备树、更新 INGCHIPS SDK 时),可添加 -p 选项。
3.2 代码烧录
根据使用的操作系统不同,代码烧录方法也不尽相同。
3.2.1 WSL 1 + Ubuntu
●用图形界面版本的 Flash Downloader 烧录
用 Flash Downloader 打开 ~/zephyrproject/zephyr/flash_download.ini。如果 bin 路径非法,请手动更正。
●使用 Windows 下的 icsdw.py 脚本
同样使用 ~/zephyrproject/zephyr/flash_download.ini 作为项目文件(第 1 个参数)。如果 bin 路径非法,请手动更正。
3.2.2 其它情况
在宿主操作系统上运行 icsdw.py 下载:
python3 icsdw.py ~/zephyrproject/zephyr/flash_download.ini
3.2.3 远程下载
还可以在非 Zephyr 所在的机器上使用 icsdw.py 进行远程下载。比如 Zephyr 在 MacOS 或 Ubuntu 上开发、编译, 下载则在 Windows 上完成。
1.在开发机上启动 HTTP 服务器,比如
cd ~/zephyrproject/zephyr/build/zephyr`python3 -m http.server
假设服务器 IP 地址为 192.168.206.128。
2.在 Windows 远程读取文件并下载
python icsdw.py http://192.168.206.128:8000/zephyr.bin --addr 0x02027000 --loop
这里 --addr 指定下载地址;--loop 表示多次下载,根据屏幕提示可重复多次下载,适合开发阶段频繁更新程序的场景。
04代码说明
SoC 相关代码位于 zephyr/soc/arm/ingXXXX 目录下,实现了 gen_os_driver 接口和低功耗。
BLE HCI 相关代码位于 zephyr\drivers\bluetooth\hci\h4_ingchips.c,对接了 platform 内的 Controller 和 Zephyr Host。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由蓝天转载自桃芯科技公众号,原文标题为:为 ING916 搭建 Zephyr 开发环境,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】解析桃芯科技蓝牙芯片ING918x六大新功能
本文介绍桃芯科技蓝牙芯片ING918x新功能:一、简易频偏测量;二、发射功率校准;三、新增小工具;四、加强兼容性;五、新增软件包;六、新增库函数。
【经验】桃芯科技蓝牙5.1芯片ING918xx的SDK介绍及其hello 世界示例
INGCHIPS(桃芯科技)为客户提供易用的SDK,帮助客户便捷、高效地开发蓝牙产品。该SDK支持目前桃芯的ING918xx系列所有蓝牙5.1芯片。本文将介绍该SDK及其hello 世界的示例。
【经验】桃芯科技提供网页版Log记录器可通过BLE蓝牙从空中抓取Trace数据
本文介绍如何通过BLE从空中抓取Trace数据。针对本文提供的参考实现,桃芯科技提供了网页版Log记录器。Trace对于分析协议栈流程问题非常重要。考虑到蓝牙设备的多样性,Trace数据的导出、记录由开发者在应用里实现。
【视频】桃芯科技BLE+UWB+NFC三合一汽车钥匙,完美解决10厘米安全定位
型号- ING91871B,ING91881B,ING91682C,ING91870C,ING91680C,ING91880C,ING91888A,ING91870CQ
桃芯科技低功耗蓝牙(BLE SoC)选型表
桃芯科技提供低功耗蓝牙芯片(BLE SoC),车规级低功耗蓝牙芯片/工规级低功耗蓝牙芯片/消费级低功耗蓝牙芯片;通讯方式:BLE+2.4G;RAM:128KB,80KB;Flash:512KB
产品型号
|
品类
|
封装
|
尺寸(mm)
|
RAM(KB)
|
Flash(KB)
|
LE 1M
|
LE 2M
|
Long Range
|
ADV Extension
|
内部晶振(KHz)
|
GPIO Number
|
ADC Channel
|
通讯方式
|
规格分类
|
BLE协议
|
适用温度(℃)
|
主要接口
|
ING91870C
|
低功耗蓝牙芯片
|
QFN32
|
4.0mm*4.0mm*0.75mm,pitch=0.40mm
|
128KB
|
512KB
|
LE 1M
|
LE 2M
|
Long Range
|
ADV Extension
|
32KHz
|
13
|
2
|
BLE+2.4G
|
工规级蓝牙BLE
|
BLE 5.0
|
-40℃~125℃
|
IO MUX: Uart/I2C/SPI/PWM/GPIO
|
选型表 - 桃芯科技 立即选型
【应用】桃芯科技ING918X低功耗蓝牙SOC帮助客户实现智能烧烤探针实时温度上报需求,工温高达125℃
智能烧烤领域对BLE SOC的要求在于高温环境中的稳定性、低功耗等特性。桃芯科技ING918x系列芯片作为工规/车规级BLE SOC ,稳定工作温度高达125℃,并拥有优秀的功耗表现,完全可以cover客户应用。支持BLE5.0&BLE5.1全特性自研协议栈,集成了32位RISC MCU,16KB ROM,128KB RAM,512KB嵌入式eFlash和丰富的外设资源。
【应用】桃芯科技蓝牙芯片ING9188助力电子全站仪,支持蓝牙5.0/5.1,实测最大传输距离可达370米
全站仪是建筑行业常用的一种工具,用于建筑测量,随着当前科技发展,目前已经从纯机械向电子化、自动化发展。本文介绍桃芯科技新出ING9188系列蓝牙芯片可实现实测最大传输距离370米,助力电子全站仪的设计和开发。
桃芯科技ING9XX系列蓝牙SoC用在APPLE Findmy Network Accessory
桃芯科技的ING9XX系列BLE芯片成功通过苹果授权的第三方机构进行的各项合规性验证,该系列芯片已经全面兼容Find My network accessory的功能要求,可为第三方硬件产品提供高效快速寻找丢失物品的低功耗蓝牙应用方案。
【应用】采用2.4G私有协议的蓝牙芯片ING91870C有效提升电网故障指示器的传输距离,支持低延时
桃芯公司的ING91870C芯片是一款专为电网故障指示器而设计的芯片,它支持2.4G私有协议,低延时,低功耗设计,多种安全功能,满足电网故障指示器的应用需求,可以有效保障电网的安全运行。
电子商城
现货市场
登录 | 立即注册
提交评论