OpenHarmony开发流程之BearPi_HM_Nano
1 环境准备
1.1镜像安装方式(强烈推荐)
1.2 完整安装方式
感兴趣的可以参考从零开始搭建OpenHarmony环境
2 代码启动流程
该开发板使用的核心芯片为hi3861,该芯片使用的是LiteOS-M内核,被芯片ROM化了。正常我们在看C程序的时候可能会找main函数,该入口函数为app_main.c,位于vendor\hisi\hi3861\hi3861\app\wifiiot_app\src目录下。启动流程如下
首先入口函数会调用HOS_SystemInit()函数,进行系统初始化,包括如bsp、device等,而在我们的编写的主任务文件中,会通过APP_FEATURE_INIT(main_entry)函数将主任务函数main_entry注册到run段,然后通过MODULE_INIT(run)来执行这些被注册到run段的任务。APP_FEATURE_INIT标识用于初始化和启动应用层功能的入口。HarmonyOS中使用的是SYS_RUN()函数,SYS_RUN是标识用于初始化和启动系统运行阶段的入口。对于整体的编译架构,可以理解成整体代码是通过层级的Build.gn文件串起来,后面进行链接。
3 代码开发
3.1 sample入口
学习了以上启动流程之后我们来看如何进行开发一个完整的demo,在BearPi-HM_Nano下有一个sample,下面的Build.gn文件的features中决定使用具体到哪一个Demo,因此我们在添加代码的时候,可以直接将所有的demo文件注释掉,根据自定义文件名称来填写相应的编译文件。
3.2代码添加步骤
首先在sample目录下新建文件夹,并在该文件夹下新建文件夹src用于添加源文件、include用于添加库文件(源文件和库文件也可以直接放到根目录下,只要和后面的Build.gn中路径一致即可)、Build.gn添加构建路径以及规则,我添加的目录如下所示。
上述为对接华为云的必要文件,其中采集数据方式可能略有不同,wifi_connect用于给开发板配置网络,以实现后面对接华为云,该文件可不必修改。
其中mqtt_cloud_main.c中,首先定义对于上传数据的结构等,之后进行一些协议的初始化以及配网的初始化,之后主要包括两个任务,分别为数据采集任务以及数据上报任务,可以根据需要添加命令处理任务,最后在主入口函数中申请空间,创建任务即可。
4 对接华为云
(1)修改代码中wifi热点的账号以及密码,改为自己手机热点即可
(2)登陆华为云,进入设备接入,点击立即使用。
(3)创建产品,平台选择“北京四”,点击产品然后创建产品,协议选择“MQTT”,数据格式为“JSON”。
(4)导入模型文件(附件中607f9d67ba4b2702c05eb41b.zip)
(5)注册设备,设备ID和密钥需要保存,也可以在设备详情中获取设备ID,秘钥也可以重置。
(6)修改代码中的设备ID和设备秘钥为步骤(5)中自己的设备信息。
(7)编译代码之后烧录到开发板,将手机热点设置为步骤(1)中信息,重启开发板,则实现对接华为云,云端可见信息如下。
- 点赞
- 收藏
- 关注作者
评论(0)