Matter环境下GD32编译环境的搭建

2024-03-08 04:44
文章标签 编译 搭建 环境 gd32 matter

本文主要是介绍Matter环境下GD32编译环境的搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、Matter介绍

Matter由CSA(连接标准联盟)发起,由巨头公司联合推出,旨在解决通信协议纷繁复杂的碎片化问题,打破多生态系统间的监护壁垒,实现智能设备的无缝通信与写作。
Matter开发环境安装

2、环境配置

本次开发基于Ubuntu 22.04环境配置,建议安装Ubuntu22.04作为matter开发编译环境。
注意:建议将硬盘容量设置为80G往上,单个connectedhomeip代码文件在9G左右。

3、安装必要依赖项,为配置Matter编译环境做准备。

matter@Env:~$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev

4、Ubuntu下安装git后,使用git命令从github拉取matter源码。

matter@Env:~$ git clone -b v1.2.0.0 -recurse -submodules https://github.com/project-chip/connectedhomeip.git

注意:拉取代码时建议使用VPN

5、下载安装编译工具。

配置gn+ninja,后续使用gn+ninja编译matter源码(参考文档:https://blog.csdn.net/qiuguolu1108/article/details/103842556)
a、下载gn和ninja,一般先安装依赖项,下载代码,编译代码,安装程序。
b、直接下载gn和ninja的二进制程序,
链接:https://pan.baidu.com/s/1_l8JMfuhLJgD7RKs-IDOnQ 提取码:1e0r
将gn、ninja下载后,直接放在/usr/bin目录下,这样在任意位置可以直接使用这个两个程序了。
给gn和ninja添加权限

matter@Env:~/connectedhomeip/gn-demo# chmod +x /usr/bin/gn 
matter@Env:~/connectedhomeip/gn-demo# chmod +x /usr/bin/ninja 

先用gn生成ninja工程

matter@Env:~/connectedhomeip/gn-demo# gn gen out                
#Done. Made 2 targets from 4 files in 4ms

再用ninja生成可执行文件

matter@Env:~/connectedhomeip/gn-demo# ninja -C out
ninja: Entering directory `./out'
[3/3] STAMP obj/default.stamp

6、配置matter编译环境

打开命令行终端,进入matter源码主目录,执行以下命令,调用脚本文件配置matter编译环境。

matter@Env:~/connectedhomeip$ source scripts/activate.sh

在这里插入图片描述

若执行activate.sh脚本后显示环境过期,可通过以下命令执行bootstrap.sh脚本来更新代码:

matter@Env:~/connectedhomeip$ source scripts/bootstarp.sh

注意:执行脚本过程中需要使用VPN
建议使用activate.sh,bootstarp.sh为重新配置,时间较长。

7、期间遇到的错误

a、替换文件后环境崩溃
在替换了GD32VW553 适配 matter 的文件之后,报错找不到某个文件。原因是某些快捷方式链接不成功,可能因为代码未拉取完整导致。
替换之前运行source scripts/activate.sh可以通过,替换后不可以通过。原因为替换了一些和分支不匹配的代码。
替换之后运行生成工程gn gen out,报错
ERROR at //third_party/connectedhomeip/src/app/chip_data_model.gni:197:20: Script returned non-zero exit code.
_cluster_sources = exec_script(“/home/matter/connectedhomeip/build/gn_run_binary.py /home/matter/connectedhomeip/src/app/zap_cluster_list.py --zap_file=/home/matter/connectedhomeip/examples/lighting-app/lighting-common/lighting-app.zap”)
^----------
Current dir: /home/matter/connectedhomeip/examples/lighting-app/gd32mcu/gd32vw55x/out/
Command: python /home/matter/connectedhomeip/build/gn_run_binary.py /home/matter/connectedhomeip/src/app/zap_cluster_list.py --zap_file=/home/matter/connectedhomeip/examples/lighting-app/lighting-common/lighting-app.zap
Returned 127.
查看代码后,打印了程序运行前后内容和路径,单独运行Command均正确。运行activate.sh不通过,环境报错。
注意:从git上拉取的代码一般不会有问题,不要随意更改拉取下来的代码,代码大概率是没问题的。需要从其他方面,比如分支不对、拉取的代码不完整、环境依赖项目冲突等原因。
b、pw_cli.plugins.Error: Failed to import module “pw_watch.watch” (ImportError: cannot import name ‘OneStyleAndTextTuple’ from ‘prompt_toolkit.formatted_text’ (/home/matter/connectedhomeip/.environment/pigweed-venv/lib/python3.10/site-packages/prompt_toolkit/formatted_text/init.py))
Error during bootstrap–see messages above.
错误原因:在尝试导入名为 “OneStyleAndTextTuple” 的模块时出现了问题,可能的原因是 “prompt_toolkit.formatted_text” 模块中找不到 “OneStyleAndTextTuple”。
解决方法:升级模块prompt_toolkit

matter@Env:~/connectedhomeip$ pip install --upgrade prompt_toolkit

将升级后的版本号更新在文件constraints.txt,文档中模块名为prompt-toolkit。

matter@Env:~/connectedhomeip$ gedit scripts/setup/constraints.txt

c、复制或者移动后,出现pw command not found错误时。
解决办法清除缓存,然后再配置环境

matter@Env:~/connectedhomeip$ git clean -Xdf
matter@Env:~/connectedhomeip$ source ./scripts/bootstrap.sh

d、ERROR: Cannot install -r python/gen/matter_build_venv/generated_requirements.txt (line 86) and protobuf~=3.20.1 because these package versions have conflicting dependencies.
but you have protobuf 3.20.1 which is incompatible.google-api-core 2.17.1 requires protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0.dev0,>=3.19.5, but you have protobuf 3.20.1 which is incompatible.
这个错误原因是安装的部分依赖包出现了冲突,查看依赖包的条件,然后手动安装合适的包版本号。
解决办法

matter@Env:~/connectedhomeip$ pip install protobuf==3.20.3
matter@Env:~/connectedhomeip$ source scripts/activate.sh

e、matter@Env:~/connectedhomeip/examples/lighting-app/gd32mcu/gd32vw55x$ gn gen out
ERROR at //third_party/connectedhomeip/src/app/chip_data_model.gni:192:26: Script returned non-zero exit code.
_cluster_sources = exec_script(“${_app_root}/zap_cluster_list.py”,
^----------
Current dir: /home/matter/connectedhomeip/examples/lighting-app/gd32mcu/gd32vw55x/out/
Command: python /home/matter/connectedhomeip/examples/lighting-app/gd32mcu/gd32vw55x/third_party/connectedhomeip/src/app/zap_cluster_list.py --zap_file …/third_party/connectedhomeip/examples/lighting-app/lighting-common/lighting-app.zap
Returned 127.
这个错误的原因为环境配置未通过。一些配置文件或者依赖文件不完全,导致执行不下去。
在使用gn生成工程之前,需要先执行source scripts/activate.sh,环境好了之后,再去生成工程。

这篇关于Matter环境下GD32编译环境的搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786047

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。 使用qt访问web接口,因为是https,没有openssl库会报错 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());if (reply){if (reply->error() == QNetworkReply::NoError

API-环境对象

学习目标: 掌握环境对象 学习内容: 环境对象作用 环境对象: 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境。 作用: 弄清楚this的指向,可以让我们代码更简洁。 函数的调用方式不同,this指代的对象也不同。【谁调用,this就是谁】是判断this指向的粗略规则。直接调用函数,其实相当于是window.函数,所以this指代window。

【网络安全的神秘世界】搭建dvwa靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 下载DVWA https://github.com/digininja/DVWA/blob/master/README.zh.md 安装DVWA 安装phpstudy https://editor.csdn.net/md/?articleId=1399043

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手