-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Guru Mediation Error after changing access point #6
Comments
Howdy David, You will likely be the first person to be using it ... so I am all ears. Ping me live as needed if you need direct assistance... otherwise hoping to hear back from you ... Neil |
thanks, much appreciated. |
oops, noticed that you incorporated the changes already! |
NICE! Notes:
but nothing in the Console at the bottom of the page. |
At this time, I had to disable the console output because we ran out of memory ... however ... that is hoped to be a temporary story. All appears to be working, if we look in your console log from the ESP32, we see the "Hello World" message. |
How are we dividing usage of processor memory vs spi memory? |
SPI memory (aka flash memory) is slow read/write memory ... that can only be written in 64K blocks but is permanent until it is re-written. Its content remains when power is removed. RAM (Random Access Memory) is very fast and readable/writable at the byte level but its content is lost when power is removed. The ESP32 modules have 4MBytes of flash and 512KBytes of RAM. The programs that the ESP32 runs written into flash and mapped to the address space of the ESP32 CPU. They are then executed from flash. Working storage (the storage that is used for variables) and some time critical functions are stored in RAM. Currently, when a JS program is sent to the ESP32, it is sent as a text string (the source). This is transiently kept in RAM. The Duktape compiler then compiles the source to "bytecode" which is itself held in RAM and the original source released. The Duktape virtual machine (VM) then interprets the byte code to run the script. A goal is to have Duktape compile the JS to byte code and save that byte code in flash as opposed to RAM. This would free up the RAM currently held by the bytecode which (in principle) should be read-only. Unfortunately, I haven't been able to get that feature operational on the ESP32 and am working with the Duktape author to see what can be done. Its is NEW function in Duktape and all bets are still off on it. If you have time and inclination, have a good study of the docs of Duktape itself (www.duktape.org). |
Basically a JIT, no? I actually saw that in the Duktape docs a few weeks ago, just assumed you were doing that. How are you debugging the ESP32? Is there a way to watch the memory allocation as you can in Java programs (or in Chrome)? |
btw- I'm not seeing anythin in the Chrome console, other than "Code sent for evaluation" |
Looking in the source of ide.html, I see that
I get nothing back other than 200 response code.
so, in addition to WS being disabled, it's not returning anything after the script POST. |
Chrome is of course a browser that happens also to host a JavaScript runtime engine. The Chrome console is the console to the JS engine built into Chrome. For Duktape, we have a Duktape based debugging environment that is documented here ... https://github.com/nkolban/duktape-esp32/blob/master/docs/debugger.md It seems to run as advertized on the ESP32 environment. For the majority of my debugging, I simply add "log()" statements in my JS code and watch the console. |
For your POST test ... if you look at the trace output at time stamp The source for the ESP32-Duktape side of the processing of the Web IDE requests can be found here ... https://github.com/nkolban/duktape-esp32/blob/master/filesystem/ide_webserver.js |
Thanks, so we're sends via /run, and watching screen for the output, correct?
|
My earlier question about debugging was whether we have a way to do something like this, which webstorm does: https://www.jetbrains.com/help/webstorm/2016.3/debugging-javascript.html |
Ahhh ... driving the ESP32 through the serial port as an alternative ... weve already started on that. Although not yet fully publicized, we can place the ESP32-Duktape environment into a "serial processor" mode ... what that means is that when it starts up ... it doesn't NEED to start WiFi nor does it start an internal Web Server to process HTTP requests. The benefit of that is a LOT less memory needed and hence free for our own applications. The way that works is that there are scripts in ./tools which take JS files from your PC and sends them over serial line into the ESP32. Currently, because it is experimental, one needs to connect a second serial port to the ESP32 using a USB->Serial connector. As for a development environment ... I'm a Windows man ... BUT ... I wouldn't dream of using Windows (or Mac OS) for ESP32 development. Instead I would strongly recommend running Linux ... if not natively then hosted by "VirtualBox". |
For debugging, we can indeed set breakpoints and examine variables ... its not nearly as attractive as a professional browser based environment ... its more like debugging Node.js (server side JS). We are reliant on the facilities provided by Duktape for debugging ... its not the easiest thing in the world ... see: https://github.com/svaarala/duktape/blob/master/doc/debugger.rst |
thanks, comments below:
|
I follow the crawl, walk, run approach when attacking a new technical area. First choose the platform in which you are going to do your development .. for me that is Linux. Then learn how to compile a simple program (a hello world) using the command line. From there you can work up. It isn't uncommon for getting boot-strapped like this to take some time depending on previous backgrounds. The ESP32 is a much lower level environment than desktop programming. Study all available materials ... including the ESP32 formal docs, my book of notes and relevant You Tube videos such as ... https://www.youtube.com/watch?v=bYh2w0HzS7s Realize that things take time. Should you get stuck, myself and the rest of the ESP32 community will be able to assist through the ESP32 forum and IRC chatroom. Becoming conversant with C, ESP-IDF, FreeRTOS and more will take weeks .... not hours ... be sure you know what you are getting into. |
:) thanks |
For a forum .... http://esp32.com/index.php For a chatroom |
Thanks, am on the ESP32 forum. |
Howdy David, |
Hi Neil, I have to admit that I haven't had any bandwidth to explore this further. |
David, |
Thanks |
The meaning can be found here. |
I found the solution for my problem. I solved the problem by increasing |
Hi, I managed to connect to ESP32 Duktape, and change the access point.
However, the device appears to have crashed
There appears to be a 'Guru Mediation Error'
Some notes regarding changing the access point which you might want to incorporate back into your instructions.
I followed the instruction here:
https://github.com/nkolban/duktape-esp32/blob/master/docs/README.md
Eventually I figured out that the url has to be http://192.168.4.1 or whatever is reported from
screen
.You might want to make that more explicit...
So, now the ESP32 connects to the correct access point.
However, I was unable to ping the IP address 10.1.10.14, nor could I access it from a browser.
The text was updated successfully, but these errors were encountered: