Closed yogeshwaran774 closed 4 years ago
Please take some care on how you format your issue. There are particular ways to paste code and text blocks. With that said, you are constantly calling the timer init functions in the loop... over and over. Those should be in setup()
not in loop()
.
issue is not solved yet and i am calling only once at a time in loop by putting one bool flag. sorry i didn't mention that part in the above code. So i am pretty sure i am initializing timer only once.
can you tell where my code got crashed by using Backtrace.
so you posted partial code and the error is in the missing part :) last called function was transmit
so you posted partial code and the error is in the missing part :) last called function was transmit
YES i didn't and i can send my arduino code to your mail id just send a mail to yogeshwaran774@gmail.com or i can explain once again here, the handleRange() is called whenever range packet comes and inside i am initiating timer of around 5 sec after that my device will again start communicate and gets the range packet again in between 5 sec but here i am not initiating the timer again.
whenever the timer shoots Client_indicate() is called and inside transmit() function is called. The transmit function dose it task properly and getting out. As soon as the transmit function ends ESP32 is throwing an error Guru Meditation Error: Core 1 panic'ed (InstrFetchProhibited). I decoded the Backtrace and i found Decoding stack results 0x400d350c: transmit(unsigned char, unsigned char, unsigned int, unsigned char*, unsigned char) at C:\Users\jilka\AppData\Local\Temp\arduino_build_432229\sketch/transmit.h line 148
As far us my understanding the decode trace says that at transmit function esp32 faced some error or exception but by looking at my serial print the transmit function was already completed. I am sorry if my understanding was wrong and if possible tell me how to understand the backtrace of ESP32 or any link which related to backtrace also ok for me.
I think the issue resolved. How it was you know i removed yield() which is present in the transmit() function. I don't know what exactly happening and how the error related to yield(). Right now i kept for testing soon i tell you the exact solution and i try to find some resources regarding yield() and interrupts of ESP32.
Hardware:
Board: ?ESP32 Dev Module? ?node32? ?ttgo_lora? Core Installation/update date: ?11/jul/2017? IDE name: ?Arduino IDE? ?Platform.io? ?IDF component? Flash Frequency: ?40Mhz? PSRAM enabled: ?no? Upload Speed: ?115200? Computer OS: ?Windows 7
Description:
I am working in Decawave localisation project and my whole project was working fine before i add an timer and call a function to transmit data.
after transmitting i am getting Guru Meditation Error: Core 1 panic'ed (InstrFetchProhibited) . basically i am not able to understand what is InstrFetchProhibited and how to find which instruction is causing the issue by using Backtrace values of ESP32
Sketch:
Debug Messages: