第3节主要的任务是,将第1节的应用程序“ESP8266_ONENET_MQTT_V1.0_220927”和第2节的应用程序“OneNET02_OTA_ APP_V1.0”进行组合,也可以理解为,最终我需要能将第1节的应用程序通过我们在第2节里介绍的一样通过OneNET OTA服务器将程序进行远程升级实现STM32单片机控制ESP8266将采集的数据发送到OneNET云服务器显示。
第一步 认识应用程序理解空间分配: 如图1,为第2节实现的OTA远程升级的应用程序“OneNET02_OTA_ APP_V1.0”的主函数截图,可以看到图1的1位置定义了偏移地址,2位置设置一个FLASH的地址的值,3位置为重启STM32单片机。这三步非常重要是应用程序里必须要的。我这里说一个应用场景,STM32单片机里应用程序1也就是V1.0版本的实现每隔10S有STM32单片机通过ESP8266向云服务器上报数据,现在我需要将程序升级下,将间隔时间修改成每隔60秒,这个时候我该如何做呢,如果实现远程升级呢。
V1.0应用程序开机运行程序时执行了图1的1位置的代码,这个时候STM32单片机就自动跳转到0x08000000+0x7000的位置去执行,这个地址怎么理解呢?0x08000000是STM32F103CBT6芯片的FLASH首地址,0x7000转换为字节数就是28K,所以对于该芯片来说,应用程序存储在了FLASH的第28K开始的位置,我们知道这个芯片有128K的FLASH空间,那就说后面100K的存储空间可以用来存储应用程序。
图1
在第2节我们下载的测试程序“O