完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
代码重现主要是STM32H750给ESP32长期发数据的情况下发生:步骤如下:平板给esp32发数据:PagePara=0x06EAFF00。
esp32解析成功输出[0x06 0xEA 0xFF 0x00 ] stm32H750发来数据:FE 03 00 C8 00 02 51 FA(Modbus) esp32回复stm32H750数据:FE 03 04 06 EA FF 00 95 B0(Modbus) Stm32H750 将长期发送类似下面的数据 FE 10 00 EA 00 06 0C 00 04 A8 5D 00 00 00 2A 00 07 00 4C 7E C1 其中可能还会收到平板发来的WF=?指令,这是esp32只需要回复WF=OK 一般收到FE 10 00 EA数据5-6条时,就一定发生Task watchdog got triggered.故障, 以下就是这个log记录:烦请指导如何定位需要增加延时函数的地方或排查故障的方法。 如需要提交代码,请指导需要哪段代码?
|
|
相关推荐
1个回答
|
|
"Task watchdog got triggered" 是指任务监视器(task watchdog)被触发,通常是因为某个任务没有在预定的时间内重置监视器。这可能是由于任务在执行过程中被阻塞,或者任务处理时间过长,导致无法及时重置监视器。
针对你的问题,以下是一些可能的解决方案: 1. **优化任务处理时间**:检查ESP32的任务处理逻辑,确保任务能够快速完成。如果任务处理时间较长,可以考虑将任务分解为多个子任务,或者使用中断来处理数据。 2. **增加任务优先级**:如果ESP32在处理STM32H750发送的数据时,任务优先级较低,可能会导致任务被其他高优先级任务抢占。可以尝试提高任务的优先级,确保任务能够及时执行。 3. **使用中断处理数据**:如果ESP32在处理STM32H750发送的数据时,任务被阻塞,可以考虑使用中断来处理数据。这样,当STM32H750发送数据时,ESP32可以立即处理,而不会阻塞其他任务。 4. **调整任务监视器超时时间**:如果任务确实需要较长时间来处理数据,可以考虑增加任务监视器的超时时间。这样可以避免任务监视器过早地触发。 5. **检查数据接收和发送逻辑**:确保ESP32在接收和发送数据时,逻辑正确。例如,检查Modbus协议的实现是否正确,以及数据包的格式是否符合预期。 6. **使用调试工具**:使用调试工具(如ESP-IDF的调试器)来跟踪任务的执行过程,找出导致任务监视器触发的原因。这可以帮助你更好地理解问题,并找到解决方案。 7. **考虑使用RTOS**:如果ESP32的任务较多,可以考虑使用实时操作系统(RTOS)来管理任务。RTOS可以帮助你更好地管理任务的优先级和调度,从而避免任务监视器触发。 8. **检查硬件连接**:确保ESP32和STM32H750之间的硬件连接正确,没有导致数据传输错误或延迟。 通过以上方法,你应该能够找到导致"Task watchdog got triggered"的原因,并采取相应的措施来解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
968 浏览 1 评论
553浏览 6评论
462浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
418浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 21:11 , Processed in 0.825110 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号