基于华为云的智慧路灯实现--小熊派学习笔记(2)

      智慧路灯的实现使用硬件小熊派开发板加上智慧农业的外设板,与智慧路灯外设板区别主要是灯的控制脚,其他都兼容。

软件使用了华为的端云互通组件atiny组件,详细请查看 Huawei_LiteOS_SDK_Coap_LwM2M_Developer_Guide_zh.md 在liteos

项目文件夹/../DOC/文件夹中或者查看,接下来将详细的讲解项目工程是怎样工作的。

链接:https://pan.baidu.com/s/1u-85pakVX7kPG4uWVzsmXw
提取码:2t0a

智慧路灯工程工作流程介绍

在学习笔记(1)中已经有进入main()函数后初始化软件及硬件到调度器启动的流程。我要在这里补充讲解一些内容。

先讲第一个问题:MCU复位后到进入main()函数,这段时间MCU做了什么?

我们打开/targets/STM32L431_BearPi/GCC/build/los_startup_gcc.s这个汇编文件,这是系统启动文件。

MCU复位后跳转到Reset_Handler处开始执行文件内容。

1.初始化PC。

2.初始化中断向量地址。

3.初始化系统栈的全局变量及未初始化全局变量。

4.初始化系统时钟。

5.跳转到main函数中。

详细可以参考启动文件介绍

问题二:初始化后项目是怎样工作的呢?

在main函数中创建了一个初始化任务,执行atiny_task_entry(), 首先会根据通信的方式,注册对应的API接口。然后把对应通信模块初始化。

at_api_register(&esp8266_interface);我们来看看esp8266的初始化程序。

1

主要是配网参数 以及获取网络ID,注册消息监听函数,到这里对ESP8266的初始化已经完成。

接下来进入agent_tiny_entry,按照开发手册要求初始化端云互通组件。

1.调用atiny_init()及atiny_ind()。

2.创建三个任务,

creat_collection_task();        //传感器采集的任务

creat_report_task();              //数据上传的任务

creat_reply_report_task();     //应答上传的任务 

对于系统下发的指令则由atiny_cmd_ioctl()来处理,在atiny_rite_app_write()中实现自己的命令响应。

posted @ 2021-03-13 22:53  steven_lg  阅读(646)  评论(0)    收藏  举报