本帖最后由 北方西门吹雪 于 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
|