打印
[Wi-Fi/蓝牙/Zigbee…]

【PIC-IoT WA开发板】+开发工具和代码分析

[复制链接]
841|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 北方西门吹雪 于 2020-10-29 16:26 编辑

1、收到的开发板是PIC-IoT WA是内置的AWS云联接,连接azure和google cloud的是另外的型号。另外还有一款AVR-IoT是对应AVR芯片的物联网开发板。

2、根据手册下载MPLAB X和XC16编译器如下,

然后从github下载pic-iot-aws-sensor-node-master,用开发板工具打开项目,


这样完整的项目就加载成功,里面会提示需要下载开发包pack,以及独立的插件,挨个安装并重启就可以的。
整个项目的结构是相当的复杂,涉及flash文件结构,文件读取,wifi模块的串口连接,安全验证,以及连接aws云服务的验证和设定。
从连接的用户体验是非常好的,但是对应开发者来说是真心的不容易。编译成功,

输出如下内存的map,

Default Code Model: Small
Default Data Model: Large
Default Scalar Model: Small

"program" Memory  [Origin = 0x100, Length = 0x15e00]

section                    address   length (PC units)   length (bytes) (dec)
-------                    -------   -----------------   --------------------
.text                        0x100              0x3474          0x4eae  (20142)
.const                      0x3574               0x6fa           0xa77  (2679)
.dinit                      0x3c6e               0x57a           0x837  (2103)
.text.m2m_ip_cb             0x41e8               0x364           0x516  (1302)
.text.MQTT_CreateConnectPacket    0x454c               0x31e           0x4ad  (1197)
.text.application_init      0x486a               0x1fa           0x2f7  (759)
.text.MQTT_TransmissionHandler    0x4a64               0x1cc           0x2b2  (690)
.text.wifiCallback          0x4c30               0x1b2           0x28b  (651)
.text.sslSetSockOpt         0x4de2               0x1ae           0x285  (645)
.text.winc_hif_send         0x4f90               0x1aa           0x27f  (639)
.text.winc_chip_init        0x513a               0x198           0x264  (612)
.text.set_wifi_auth         0x52d2               0x192           0x25b  (603)
.text.MQTT_ReceptionHandler    0x5464               0x180           0x240  (576)
.text.MQTT_CreatePublishPacket    0x55e4               0x176           0x231  (561)
.text.atcab_read_bytes_zone    0x575a               0x164           0x216  (534)
.text.m2m_wifi_connect_sc    0x58be               0x152           0x1fb  (507)
.text.MQTT_CreateSubscribePacket    0x5a10               0x140           0x1e0  (480)
.text.m2m_ssl_cb            0x5b50               0x13e           0x1dd  (477)
.text.m2m_ssl_retrieve_cert    0x5c8e               0x138           0x1d4  (468)
.text.mqttProcessPublish    0x5dc6               0x134           0x1ce  (462)
.text.LED_control           0x5efa               0x12a           0x1bf  (447)

........................................................................

然后是下载


在这个过程显示超出内存index,下载中止。
那么是工程设置有些问题,需要继续分析和修改。
程序的分析,整个系统是用线程实现的,那么主程序就是启动线程,主要的调度工作都是由后面的应用线程管理实现的。
主程序如下,
#include "mcc_generated_files/application_manager.h"

int main(void)
{
        application_init();

        while (1)
        {
                runScheduler();  
        }
   
        return 0;
}
这样,针对每个部分的开发就隔离到一个个线程中去,新增的任务就是新创建线程就可以的e


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

109

帖子

1

粉丝