人力外包网站,哪里学软装设计最好,seo推广优化服务,修改wordpress的首页场景#xff1a;在写ESP8266 web服务的时候#xff0c;免不了要将自己设计的网页html和css等文件放入到固件中。在arduino中有fs可以进行上传文件#xff0c;然后通过文件系统读出。那在ESP-IDF中该怎么办呢。有几个思路1. 通过flash_download_tools 直接向固定地址写入文件…场景在写ESP8266 web服务的时候免不了要将自己设计的网页html和css等文件放入到固件中。在arduino中有fs可以进行上传文件然后通过文件系统读出。那在ESP-IDF中该怎么办呢。有几个思路1. 通过flash_download_tools 直接向固定地址写入文件。然后在代码中读出来2.通过串口或者tcp等通信方式传给8266然后再写到flash 中。3.直接转成C字符串嵌入到代码中上述是我之前想到的比较麻烦看到了官方文档提供了一种更简单的方法。这里我就直接贴官方说明了稍微改了下例子方便举一反三有时您的组件希望使用一个二进制文件或者文本文件但是您又不希望将它重新格式化为 C 源文件。这时您可以在 component.mk 文件中设置变量 COMPONENT_EMBED_FILES以这种方式指定要嵌入的文件的名称COMPONENT_EMBED_FILES : server_root_cert.der或者如果文件是字符串则可以使用变量 COMPONENT_EMBED_TXTFILES这将把文本文件的内容当成以 null 结尾的字符串嵌入COMPONENT_EMBED_TXTFILES : web_page/index.cssCOMPONENT_EMBED_TXTFILES web_page/index.html文件的内容会被编译进 flash 中的 .rodata 段并通过符号名称来访问如下所示extern const uint8_t web_file_index_html_start[] asm(_binary_index_html_start);extern const uint8_t web_file_index_html_end[] asm(_binary_index_html_end);符号名称是根据文件的全名生成的如 COMPONENT_EMBED_FILES 中的所示字符 / . 等都将会被下划线替代。符号名称中的 _binary 前缀由 objcopy 添加对于文本和二进制文件都是相同的。这样一看就能直接当数组引用了。extern const uint8_t web_file_index_html_start[] asm(_binary_index_html_start);extern const uint8_t web_file_index_html_end[] asm(_binary_index_html_end)char *str web_file_index_html_start;unsignedint str_len web_file_index_html_end-web_file_index_html_start; httpd_resp_send(req, str,str_len );ESP32也一样~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~