技术笔记20230720 rBoot学习5

技术笔记20230720 rBoot学习5

  继续昨天的学习。

rBoot临时启动选项与APP的通信

  要启用rBoot与应用程序之间的通信,我们应该在rBoot.h中启用BOOT_RTC_ENABLED。然后,rBoot将使用RTC数据区传递一个包含引导信息的结构体,该结构体可以被应用程序读取。这将允许应用程序确定启动模式(正常、临时或GPIO)和启动rom(即使此应用程序只是临时启动)。我们的应用程序也可以更新这个结构体,以便在设备下一次重启时与rBoot通信,例如,指示它暂时启动一个不同于配置中保存的rom。有关更多细节,请参阅API文档和rBoot项目示例。注意:通常在启动时看到的"don‘t use rtc mem data"消息来自SDK,这与rBoot的功能无关。

与其他框架的集成

  如果我们希望将rBoot集成到一个开发框架中(例如Sming),我们可以定义宏RBOOT_INTEGRATION。这样做可以在编译时将文件rBoot-integration.h包含到源代码中。本项目应该允许我们设置一些特定于平台的选项,而不必修改rBoot的源代码,从而使项目更容易集成与维护。
  至此,rBoot的readme我们就看完了。前面有提到rBoot项目示例。于是,我在其作者raburton的仓库中找到了这个示例:raburton/rboot-sample-bigflash。下面就开始对这个项目的学习。老样子,从readme看起。

rboot-sample-bigflash

介绍

  这是一个示例项目,展示了如何构建用于rBoot的rom以及如何执行OTA升级。我们可以使用rboot-ota.c和rboot-ota.h来添加我们项目对OTA的支持。在rboot_ota_start中也有一些注释掉的代码,展示了如何将非rom文件写入到Flash上的任意位置(例如,数据或嵌入式文件系统)。
  此版本的示例使用rBoot大闪存模式,该模式适用于具有较大闪存芯片的设备,例如ESP-12F。

编译

  1. 如果我们还没有编译rBoot,需要先编译,并启用大闪存支持。
  2. 我们还需要一个esptools的编译副本。
  3. 符号链接或复制rboot.h、rboot-api.h、rboot-api.c和rboot-bigflash.c到该目录下。
  4. 编辑Makefile,设置SDK和esptool2的路径。
  5. 将WIFI_SSID和WIFI_PWD设置为环境变量或写在Makefile中。
  6. 在boot-ota.h中设置OTA服务器的详细信息。
  7. 闪存,如下。
  8. 连接终端并输入help
      可以这样简单地编译:esptool.py --port COM2 write_flash -fs 32m 0x00000 rboot.bin 0x02000 rom.bin

你可能感兴趣的:(技术笔记,笔记,学习)