六步带你完成博流wifi模组对接华为云流程
摘要:本文主要采用基于博流wifi模组以及我们的SDK移植实现华为云的对接,上报数据以及命令下发等,希望对您有所帮助。
1 简介
首先需要研究透彻博流项目的编译运行流程,首先看其根目录中包括components(组件),customer_app(多个demo示例)。以sdk根目录的customer_app文件夹中存在大量的demo示例,以bl602_demo_wifi为例,主要看3个文件,genromap、Makefile、proj_config.mk。

我们知道在运行代码时只需要在控制台输入命令./genromap即可,分析其内部细节,依旧是采用make+参数的形式,则会根据其参数调用同文件夹下的Makefile文件,在该makeifle文件中包含了使用的组件以及对应的头文件名称如我们在components中添加的iot_link组件文件夹以及相应的头文件。在该Makefile中最后一行调用到了主Makefile即$(BL60X_SDK_PATH)/make_scripts_riscv/project.mk文件,该文件会编译调用使能的组件中的buffalo.mk文件,将所有的目标文件链接到一起,生成.bin文件。

接下来看一下一个典型的buffalo.mk文件,如下图,按照如下格式进行组件中的代码添加,当然也可以灵活使用宏定义进行统一控制,主要包括一些源文件以及头文件的路径以及名称的添加,以及注释掉的CPPFLAGS以及LDFLAGS等等。

2 适配osal层
需要将FreeRTOS适配到我们的SDK中,首先学习FreeRTOS 的常用接口以及具体使用功能方式,进行适配,FreeRTOS task需要手动删除的特点,由于创建task使用较少,这里我只做了简单的适配,没有深究该细节,因此在调用osal创建任务的时候最好还是手动delete一下。
3 添加自动连接wifi任务

4 添加lwm2m使能
首先根据我们sdk中的iot.mk文件确定哪些文件需要添加进行编译,这里有两种方式一种是依旧采用宏定义方式,将iot.mk文件替换为buffalo.mk文件,在其中完成一个完整的组件调用包括各种宏定义组件开关配置,对于该方式需要在相应文件中进行宏定义的使能,如proj__config.mk。还有一种快速方式直接打散原sdk提取对应的.c和头文件,虽然速度快,不易出错,但是打散结构是我们不提倡的,代码结构层次不够清晰,比较适合小白。
(1)源文件列举

(2)头文件列举
注意尽量规避同名头文件的使用,否则容易出错,如我们的sdk中的queue.h需要删除。

5 sal层适配
由于了lwm2m内部使用tcpip因此如果使用awkka-lwm2m适配需要适配tcpip层,即sal层的适配,在我们sdk的network/tcpip/sal,注意其中的源文件要添加到上述iot_link的src中,之后适配sal层,由于博流sdk中使用的标准的lwip,这里我们导入lwip_imp.c即可。同时需要在主文件中添加如下代码。同时原来demo的main函数中的ticip_init()函数,因为该函数已在link_tcpip_init()中执行。

6 注释掉虚引用函数
对于本项目中应该包括
oc_lwm2m_al.c中__attribute__((weak)) int oc_lwm2m_imp_init(void)函数;
osal.c中的__attribute__((weak)) int os_imp_init(void)函数;
lwm2m.c中的__attribute__((weak)) int lwm2m_imp_init(void)函数。
sal.c中的__attribute__((weak)) int link_tcpip_imp_init(void)函数。
注意不要注释掉__attribute__((weak)) int netdriver_install()函数,因为该函数不是每个板子都需要适配驱动,如果需要自己实现才进行注释,否则编译报错。

如果拷贝完整工程需要如下三步
需要您操作的3步
(1)将上述文件iot_link组件添加到bl_iot_sdk的component路径下。
(2) 将bl602_demo_wifi中的demo删除,之后将文件夹中的bl602_demo_wifi拷贝过去。
(3) 该project.mk代码我删除了该代码的264行的Werror=all

本文分享自华为云社区《博流wifi模组对接华为云流程》,原文作者:星辰27 。
六步带你完成博流wifi模组对接华为云流程的更多相关文章
- 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台
摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区<基于luatos的4G(LTE Cat.1)模组接入华为云物 ...
- 博流BL602&BL604开发板介绍
在2020松山湖论坛上,博流智能科技(南京)有限公司销售副总裁刘占领介绍了基于RISC-V核的低功耗.高可靠Wi-Fi+BLE二合一SoC芯片BL602.主要应用领域包括人工智能与工业互联网,特别是电 ...
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- 第六篇Scrum冲刺博客--Interesting-Corps
第六篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 搜索页面以及音乐详情页面数据导入及测试 各界面数据请求云函数设计及实现 叶学涛 进行页面的优 ...
- 异构智联Wi-Fi+蓝牙模组,连接快、准、稳!
下班回家打开门,电灯.电视.空调.音响.电动窗帘.扫地机器人--一呼百应,有序开工,原本冰冷的房子立刻变成了温暖港湾.可以说,舒适便捷的智能设备已经完全融入了我们的生活中. 从单一场景.单一设备,到现 ...
- NFC模组,开发NFC功能 仅仅要几条指令的事情
特点:实现NFC透明传输.内置NFC协议栈,支持UART串口直接读写,用于门禁能够同一时候兼容手机和卡片开门,还能实现动态密钥,读到的NFC数据自己主动串口输出,会串口就能开发NFC,不须要研究LLC ...
- android wifi P2P CONNECT, INVITE和JOIN流程选择
android wifi P2P CONNECT, INVITE和JOIN流程选择
- MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率
1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\ ...
- android camera(一):camera模组CMM介绍
一.摄像头模组(CCM)介绍: 1.camera特写 摄像头模组,全称CameraCompact Module,以下简写为CCM,是影像捕捉至关重要的电子器件.先来张特写,各种样子的都有,不过我前一段 ...
- 【转】android camera(一):camera模组CMM介绍
关键词:android camera CMM 模组 camera参数平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos 4210) 作者:xubin ...
随机推荐
- Python:利用math和random模块实现RSA加密算法
实验五报告: 利用math和random模块实现RSA加密算法 实验目标 本实验的主要目标是熟悉RSA(Rivest-Shamir-Adleman)密码算法的编写,其中包括求最大公因子.模逆的扩展欧几 ...
- 【BUU刷题日记】——第一周
[BUU刷题日记]--第一周 一.[极客大挑战 2019]PHP1 题目说自己有一个备份网站的习惯,所以要了解一下常见的网站源码备份格式及文件名: 格式:tar.tar.gz.zip.rar 文件名: ...
- AtCoder Beginner Contest 327 (ABC327)
A. ab 直接根据题意模拟即可. Code B. A^A 直接枚举 \(i= 1, 2,\dots, 15\),每次看看 \(i ^ i\) 是否等于 \(A\) 即可. Code C. Numbe ...
- 从DPlayer说起,有哪些开源的H5播放器
引言 H5指的是HTML5,也就是介绍网页播放器(只是列出而已).首先我不是什么大佬,并没有完全体验过以下我会介绍的全部播放器:其次,因为我水平比较低,主要介绍拥有中文文档的播放器,不了解开发的朋 ...
- 一键整合,万用万灵,Python3.10项目嵌入式一键整合包的制作(Embed)
我们知道Python是一门解释型语言,项目运行时需要依赖Python解释器,并且有时候需要安装项目中对应的三方依赖库.对于专业的Python开发者来说,可以直接通过pip命令进行安装即可.但是如果是分 ...
- 本地MinIO存储服务Java远程调用上传文件
MinIO是一款高性能.分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等低成本机器也能够很好的运行MinIO.它的优点包括高性能.高可用性.易于部署和管理.支持多租户等. Cpola ...
- 字节跳动AB实验经验分享:企业如何构建数据驱动的实验文化?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,CCF TF 举办了第 123 期分享活动,本期主题为"用户体验工程". CCF TF ...
- Jenkins中HTML报告无法正常显示问题解决
自动化结果生成了HTML报告,但是在Jenkins中打开报告却显示空白,打开控制台,可以看到该报错 参考https://www.jenkins.io/doc/book/security/configu ...
- .NET8极致性能优化CHRL
前言 .NET8在.NET7的基础上进行了进一步的优化,比如CHRL(全称:CORINFO_HELP_RNGCHKFAIL)优化技术,CORINFO_HELP_RNGCHKFAIL是边界检查,在.NE ...
- 最新版本——Hadoop3.3.6单机版完全部署指南
大家好,我是独孤风,大数据流动的作者. 本文基于最新的 Hadoop 3.3.6 的版本编写,带大家通过单机版充分了解 Apache Hadoop 的使用.本文更强调实践,实践是大数据学习的重要环节, ...