Forum Replies Created
-
AuthorPosts
-
support
KeymasterSure, but please note that you do it at your own risk. Doing this may result in random crashes, bugs and strange behavior in production code.
- Enable the generation of a .map file in VisualGDB Project Properties
- Identify a particular symbol that you want to move to FLASH (json.a does not get included anywhere, so we’ll move ets_timer_arm_new that does). You can find the biggest symbols via Embedded Memory Explorer.
- Build the project and locate the symbol in the linker script:
.text 0x4010016c 0x3d8 f:\SysGCC\esp8266\esp8266-bsp/IoT-SDK/lib\libmain.a(ets_timer.o) 0x450 (size before relaxing) 0x40100244 ets_timer_setfn 0x40100328 ets_timer_disarm 0x401003d8 ets_timer_arm_new
- Copy libmain.a to libmain_fixed.a
- Run the following commands to extract ets_timer.o from libmain_copy.a, rename .text to .irom0.text and put it back:
xtensa-lx106-elf-ar x libmain_fixed.a ets_timer.o xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text ets_timer.o xtensa-lx106-elf-ar r libmain_fixed.a ets_timer.o
- Replace “main” with “main_fixed” in esp8266.mak (it will get reverted back once you edit anything in VisualGDB Project Properties, so you can instead rename libmain.a to libmain_orig.a and edit libmain.a).
- Check the map file to see how it got moved to ROM:
.irom0.text 0x40240000 0x3e4 f:\SysGCC\esp8266\esp8266-bsp/IoT-SDK/lib\libmain_fixed.a(ets_timer.o) 0x450 (size before relaxing) 0x402400dc ets_timer_setfn 0x402401c4 ets_timer_disarm 0x40240278 ets_timer_arm_new
April 25, 2016 at 17:56 in reply to: Error Messages with Keil MDK-ARM Compiler not parsed correctly #8095support
KeymasterThe Output tab contains the error messages formatted so that Visual Studio can understand them. VisualGDB reads the messages from the compiler, recognizes them using regexes and prints them back using the format used by Microsoft’s compiler, so VS can display them.
If you want to see the raw messages, simply run ‘make > log.txt 2>&1’ from the command prompt in your project directory and then look into the log file.
Let us know if you need more details.
support
KeymasterOK, perhaps this is VS-specific? Which VS version are you using?
support
KeymasterHi,
We are aware of that and will include a fix in the next maintenance release. If this is critical, we can also upload a daily build with this fix.
support
KeymasterHi,
Yes, the libraries we provide (that come straight from the Espressif’s SDK) are compiled in a way that occupies most of the RAM. You can try hacking them (with extracting individual objects from .a files to .o files and renaming sections) to move some rarely functions from RAM to the IROM section.
We have also heard people disabling the instruction cache and successfully using another 32K block of RAM after the first 32K, but we have not tried it ourselves and are not aware of the potential performance or stability impact.
support
KeymasterHi,
The ESP8266 is not very reliable and often needs some experimenting to get it to work. It’s also very sensitive to the power supply quality. In our tests it generated random problems when powered from the same USB port as the JTAG debugger and started working more reliably when we connected it to a separate 5V 2A power supply.
As an alternative you can try the CC3200 microcontroller from TI. It is more expensive, but much more reliable.
support
KeymasterHi,
The easiest would be to create a copy of your configuration and configure different debugging settings there. Then you can simply switch between the Debug and Debug_JLink configurations in Visual Studio. You can modify the second configuration to have the same output folder name as the first one – then you will avoid the necessity to build everything twice.
support
KeymasterHi,
No problem. Enjoy VisualGDB 🙂
support
KeymasterHi,
Cool. Thanks for the link. It currently looks like just a development build rather than an official release, so we are a bit hesitant to replace the previous RTOS libraries in the toolchain as it may introduce more bugs, especially given that it’s very easy to replace those manually after the installation. Once there is an official release from Espressif, we will gladly include it in our toolchain.
support
KeymasterHi,
Yes, this makes sense. Normally if you are using a newer gdb version, the -thread-select should be automatically replaced with the –thread argument passed to -stack-list-frames, so you’ll get 3 commands. If you disable the “show arguments” and other similar settings in the call stack window, you’ll get only 2 commands that is pretty much the absolute minimum.
support
KeymasterHi,
The toolchain is quite large, but it should normally download/install within minutes. Please try downloading it manually from http://gnutoolchains.com/.
April 24, 2016 at 00:29 in reply to: No such thing as "Program and Start Without Debugging" with ESP8266 #8066support
KeymasterOK, VisualGDB now fully supports the OTA mechanism. It will automatically generate the OTA binaries, program them, configure the bootloader and can even serve the binaries over HTTP to the ESP8266 device. Read this tutorial for more details: http://visualgdb.com/tutorials/esp8266/ota/
support
KeymasterHi,
Then you should be able to configure VisualGDB similarly to the Edison tutorial. Let us know if you encounter any problems.
support
KeymasterHi,
Yes, as long as you have a cross-toolchain for your distro. E.g. see the Intel Edison tutorial: http://visualgdb.com/tutorials/linux/edison/
You can also compile your code directly on the device or order a cross-toolchain from us if you don’t have one.
support
KeymasterHi,
Thanks for letting us know. We actually used the latest SDK from Espressif. Could you post a link to the update you have used so that we could include it in our toolchain as well?
-
AuthorPosts