问题标签 [esp-idf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arduino - Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region access) 当我现在使用 ESP 协议时显示错误
此错误显示在我的串行监视器中,请参阅下面的 ESP32 代码,请帮助我解决
GURU冥想错误:Core 1 Panic'Ed(缓存禁用但缓存的存储器区域访问)核心1寄存器:PC:0x400D1580 PS:0x00060034 A0:0X400847FC A1:0X3FFBE7B0 A2:0X3FFBE7B0 A2:0x00000001 A3:0x00000001 A3:0x000000000000000000000000 x4800 x0000ffc A7 : 0x00000001 A8 : 0x80081348 A9 : 0x3ff5f024 A10 : 0x3ffbebfc A11 : 0x20000000 A12 : 0x00000400 A13 : 0x3ffb1b10 A14 : 0x00000026 A15 : 0x3ffc4598 SAR : 0x00000020 EXCCAUSE: 0x00000007 EXCVADDR: 0x00000000 LBEG : 0x40001609 LEND : 0x4000160d LCOUNT : 0x00000000 Core 1 was running in ISR 上下文:EPC1:0x40087157 EPC2:0x00000000 EPC3:0x00000000 EPC4:0x400d1580
Backtrace: 0x400d1580:0x3ffbe7b0 0x400847f9:0x3ffbe7d0 0x40087154:0x3ffb1b50 0x400e2aa9:0x3ffb1bc0 0x400e1379:0x3ffb1be0 0x400e17c7:0x3ffb1c00 0x400e015d:0x3ffb1c70 0x400e0c5f:0x3ffb1cc0 0x400df715:0x3ffb1d20 0x400dfc8d:0x3ffb1d60 0x4012d7e6:0x3ffb1d80 0x4012d9da:0x3ffb1dd0 0x4012da2d:0x3ffb1e00 0x400e2f57:0x3ffb1e20 0x400e30aa:0x3ffb1e40 0x400d70dd:0x3ffb1e60 0x400d2da9:0x3ffb1e80 0x400d1392:0x3ffb1f80 0x400d468b:0x3ffb1fb0 0x40088c05:0x3ffb1fd0
c - 如何从 websocket 客户端在内存中发送 jpg 图像
我玩的是 ESP32-CAM。我有一个在结构中编码为 jpg 的图像,就像这样
原始图像数据似乎是一个 uint8_t 数组。
我想通过 websocket 连接发送这个图像数据。二进制数据的发送函数具有以下语法
如果将指针格式从 char 更改为 uint8_t,则会出现编译器错误。所以我使用上面的语法。它似乎仍然有效,python websockets 服务器接收某种数据。在 python 中,当打印到服务器终端时,数据看起来像这样。
我想知道我是否以合适的数据格式发送二进制 jpg 数据?我的意思是,将 uint8 数组解释为 char 数组似乎有点奇怪。我应该在发送之前对它进行不同的编码吗?
esp-idf - 从 AWS S3 执行 esp-idf OTA 更新时出错
我正在尝试通过从 S3 存储桶下载固件来使用 esp-idf 执行 OTA 更新。我正在使用以下提供的代码段:
当将该 URL 放入我的浏览器或 wget 时,文件下载正常。但是,在 ESP32 上下载失败。我收到以下消息:
我能够追踪到引发第一个错误的函数。它被扔resolve_host_name()
在esp_tls.c
这里了。具体来说,错误发生在这段代码中:
任何线索为什么getaddrinfo
无法解析 S3 存储桶地址?我以为我可能使用了错误的证书,但这似乎是在使用证书之前。
tcp - 通过 AT 命令向 MyMqttHub 发送数据
我一直在使用 ESP32 S2 作为主机和 Nimbelink 的 Skywire Nano (nrf9160) 作为由串行 AT 命令控制的 LTE 调制解调器编写 AT 客户端,LTE 模块响应迅速并且运行良好。LTE 调制解调器有一个内部 TCP 堆栈,我们使用它通过 HTTP POST 成功地将数据发送到 dweet.io,但我们还没有成功地向私有 MQTT 服务器发送相同的数据。
LTE 模块使用了一种叫做 Socket Dials 的方法,这些是 AT 指令,方便将数据发送到 Web,它基本上包含这三个指令:
- AT#SOCKET 激活套接字
- AT#TCPCONN 连接到一个 URL
例子:
- AT#TCPSEND 打开一个 > 提示,您可以在其中输入要发送的任何内容
我不是通信协议专家,因此很难找到发送字符串的正确方法,因为我没有找到使用 TCP 套接字的类似示例。我尝试发送 mosquitto_pub 字符串但没有成功,nimbelink 只有一个使用 HTTP 的示例,我希望有人可以帮助我,或者至少让我朝着正确的方向前进。
at#xsocket=3,1,1 #XSOCKET: 3,6 OK at#xtcpconn=3,"node02.myqtthub.com",1883 #XTCPCONN: 1 OK at#xtcpsend=3
mosquitto_pub -h node02.myqtthub.com -i hub -u user -P 'password' -t topic -m "hello world"#XTCPSEND: 104
OK 袜子:3,HUP
编辑:添加了尝试的 LTE 日志
github-actions - 带有 ESP-IDF 编译的 GitHub Actions
我想通过我的自托管运行器在 GitHub Actions 上为我的基于 ESP-IDF 的项目的编译过程创建一个 CI 流。
ESP-IDF 需要在编译前导出大量的 shell 变量和其他与 shell 相关的任务。他们为此提供了一个export.sh
脚本,并期望用户(我)source export.sh
在编译步骤之前完成。
如何保证某个作业下的所有步骤都在具有 ESP-IDF 要求的自定义 shell 下完成?
我知道我可以在 GitHub Actions 中使用多行运行命令,但这需要我source export.sh
在每个步骤中执行,不是吗?这会减慢工作速度。
谢谢
c - 在 ESP IDF 编译器中包含头文件
我试图从 esp who 运行一个示例项目,它在单芯片示例下,从https://github.com/espressif/esp-who克隆。
它的识别例子。我包括一个 esp_http_client.h 但它找不到它。
有一个CMkakeLists.txt 和Makefile。我的第一个问题是,我是否必须编辑其中一个文件以包含标题,或者我必须在 gcc.xml 中添加目录路径。如果是这样,我该怎么做。
非常感谢。
cmake - 更改 sdkconfig 文件的默认位置
该项目基于 ESP-IDF v4。它可以为多个平台构建。
目前我正在尝试启用完整的源代码外构建方法,并且sdkconfig
是唯一保留在源代码树中的自动生成文件。默认情况下,它保存在 cmake 项目的根目录中。
有没有办法改变sdkconfig
文件的默认位置?
esp32 - esp-idf:我不能在组件中包含 mdebtls 目录
在 esp32 上,我使用 esp-idf 构建了一个名为 webSocket.c/.h 的模块。这包括
由于这个模块是通用的,我想把它放在一个组件中。我将它移到“components/webSocket”目录并添加了一个 CMakeLists.txt 文件,如下所示:
从这一点开始,模块不再编译,因为上面包含的文件无法访问。
该模块是 esp-idf 框架的一部分,或者更准确地说,是嵌入在 esp-idf 框架中的 mbedtls lib 的一部分。
我尝试了所有这些路径但没有成功:
没有一个成功,我该怎么办?