我正在使用ESP32 aWOT库来设置一个OTA服务器,并且我希望将一堆二进制文件嵌入到固件.bin映像中(以便进行OTA更新)。使用PlatformIO,我们可以使用:board_build.embed_txtfiles = src/file.ext
命令将文件嵌入到.bin文件中。然而,我没有弄清楚如何检索这些文件(无论是使用文件系统(如SPIFFS )还是使用C/汇编语言)。Espressif文档提到了访问文件内容的extern const uint8_t file_ext_start[] asm("_binary_src_file_ext_start");
命令,但我不知道如何使用它。
假设将一个file.html嵌入到.bin中,然后我希望像192.168.0.XX/file.html那样路由它-- aWOT库提供了*处理程序处理响应的app.get("/page", &handler);
,但是如何在处理程序函数中引用嵌入的html文件呢?
发布于 2022-07-13 23:53:21
在platformio.ini
文件中包含以下内容:
[env:...]
board_build.embed_txtfiles =
data/file1.ext
src/file2.ext
您可以(而且必须)在C/C++代码中定义以下变量来访问数据。asm(...)
部分是来自ESP-以色列国防军的文件,它获取数据的地址。因为您使用的是embed_txtfiles
而不是embed_files
,所以每一个都将以空结尾。
extern const uint8_t file_data_file1_start[] asm("_binary_data_file1_ext_start");
extern const uint8_t file_src_file2_start[] asm("_binary_src_file2_ext_start");
file_data_file1_start
和file_src_file2_start
的名称可以是任何名称,ESP的文档只是列出了它们与文件路径相似的约定。
https://stackoverflow.com/questions/69155392
复制相似问题