support

Forum Replies Created

Viewing 15 posts - 5,566 through 5,580 (of 7,816 total)
  • Author
    Posts
  • in reply to: JTAG Programming the NodeMCU ESP8266 #10458
    support
    Keymaster

    Hi,

    OK, we just got the notification that the NodeMCU got shipped, however the expected arrival date is March 21, so it will probably be faster to solve this iteratively rather than wait for the board to arrive.

    The 912-byte difference comes from the padding esptool.py adds to the file and it should be causing any troubles.

    The bytes at offsets 2 and 3 encode the FLASH memory parameters used by ESP8266. The only source of documentation we could find was the esptool.py from Espressif:

            flash_mode = {'qio':0, 'qout':1, 'dio':2, 'dout': 3}[args.flash_mode]
            flash_size_freq = {'4m':0x00, '2m':0x10, '8m':0x20, '16m':0x30, '32m':0x40, '16m-c1': 0x50, '32m-c1':0x60, '32m-c2':0x70}[args.flash_size]
            flash_size_freq += {'40m':0, '26m':1, '20m':2, '80m': 0xf}[args.flash_freq]
            flash_info = struct.pack('BB', flash_mode, flash_size_freq)

    Based on this,  “02 00” means “FLASH in DIO mode, 4 megabits, 40 MHz” and “40 20” means “32 megabits, 40 MHz” and an unknown FLASH mode. This could be related to the problem you are experiencing, so please try experimenting with the FLASH mode in VisualGDB Project Properties. Wrong FLASH mode would be consistent with what you are describing: the programming would succeed, but the chip would not start. If none of the modes work, please try using our ESPImageTool.exe to make 2 binary images from the ELF file and then manually put the 0x40 value at offset 2. Perhaps this is some undocumented value that is required on NodeMCU.

    The split into 2 images (e.g. at 0 and 0x10000) comes from the ESP8266 linker script file:

    MEMORY
    {
      dport0_0_seg :                        org = 0x3FF00000, len = 0x10
      dram0_0_seg :                         org = 0x3FFE8000, len = 0x14000
      iram1_0_seg :                         org = 0x40100000, len = 0x8000
      irom0_0_seg :                         org = 0x40201010, len = 0x6B000
    }

    The data/code at the beginning of FLASH is loaded into RAM by the bootloader and the code at 0x200000 is directly executed from FLASH. You can quickly check if your image also has 2 areas by running “xtensa-lx106-elf-objdump.exe -h <ELF file>”:

      0 .data         00000370  3ffe8000  3ffe8000  000000e0  2**4
                      CONTENTS, ALLOC, LOAD, DATA
      1 .rodata       00000138  3ffe8370  3ffe8370  00000450  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, DATA
      2 .bss          000062b8  3ffe84a8  3ffe84a8  00000588  2**4
                      ALLOC
      3 .irom0.text   0002f5a4  40210000  40210000  00007170  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      4 .text         00006be4  40100000  40100000  00000588  2**2
                      CONTENTS, ALLOC, LOAD, READONLY, CODE

    The 0x40200000 corresponds to the beginning of the FLASH memory and the .ir0m0.text section loaded at 0x40210000 will be programmed to FLASH at offset 0x10000). It’s hard to say why VisualMicro produces a binary that does not use 2 sections; perhaps they use a customized linker script that puts the sections adjacent to each other. We purposefully use the unmodified scripts from the ESP8266 SDK to maximize compatibility with existing projects.

    in reply to: Intellisense Failure? #10457
    support
    Keymaster

    Hi,

    Looks like you are using Resharper that is not fully compatible with GCC-specific code. Please try disabling it for VisualGDB projects.

    in reply to: RTX support #10456
    support
    Keymaster

    Hi,

    The RTX/FreeRTOS switch actually comes from the device manufacturer. VisualGDB examples are based on the ones included in the original device SDK and if a certain feature is discontinued in the newer SDK version, VisualGDB will drop it as well. If you let us know the exact device you are using, we may be able to point you to an older SDK that supports RTX.

    in reply to: Feature request: Cortex ITM/SWO support #10455
    support
    Keymaster

    Hi,

    The experience we got with OpenOCD, ST-Link and SWO was that after a while the ST-Link suddenly stopped working until we physically re-plugged it. It was also very inconsistent – sometimes it worked, and the other time it did not, so it looked like some bug of the ST-Link firmware. As we tried it more than a year ago, it could have been fixed in the latest ST-Link firmware.

    Regarding the launcher output, please consider putting your program to Custom Debug Steps -> Remote Console -> Use the following command to start the console. It will put your program to a separate pane in Visual Studio and will provide better experience than just the launcher output.

     

    in reply to: Import Nordic SDK files #10446
    support
    Keymaster

    Hi,

    No problem, we could add a tutorial. Let us know which project you are trying to import and we will see if we can make a detailed tutorial on that.

    in reply to: ESP32 Toolchain Update #10443
    support
    Keymaster

    Hi,

    Sorry, when it comes to ESP8266 and ESP32, each new version of the framework comes with its own set of issues, so we only officially support the ones that we retest and repackage. You can try experimenting with different settings and libraries at your own risk to get it to work, or simply wait until we repackage the final esp-idf release and resolve all the issues we discover. As it requires substantial effort on our side to resolve those issues each time, we only do that for major SDK releases. Sorry.

    in reply to: EEPROM – Flash #10438
    support
    Keymaster

    Hi,

    Please check the OpenOCD window for errors related to FLASH programming. This should explain why the initial programming fails.

    Please also double-check that you are not comparing the .user_data section after it is rewritten by your program and no longer matches the contents recorded in the ELF file.

    in reply to: ESP32 Toolchain Update #10437
    support
    Keymaster

    Hi,

    This happens because the esp-idf repo does not actually contain all the libraries. Instead they are automatically downloaded first time you build a project with it.

    Hence the recommended procedure is to build one of the sample projects from esp-idf on Linux and then copy the esp-idf directory on Windows and try generating a BSP from it.

    We will look into updating our ESP32 toolchain once the esp-idf 2.0 reaches the final release stage.

    support
    Keymaster

    Hi,

    Perhaps something in your setup is removing the environment variable before launching msbuild?

    Please try running “echo %VISUALGDB_DIR%” just before launching MSBuild. This should output the VISUALGDB_DIR variable.

    support
    Keymaster

    Hi,

    This is by design. VisualGDB relies on Visual Studio to handle the project dependencies. Please either create a .bat file that will build all the projects, or build the .sln file by running devenv.exe or msbuild.exe from command line.

    in reply to: Project Relocate #10427
    support
    Keymaster

    Hi,

    Thanks. Are you using the latest VisualGDB 5.2R8? If not, please try updating. You can also force VisualGDB to update the file references by clicking on a different MCU on the first page of VisualGDB Project Properties and then selecting the current one back and pressing “Apply”.

    in reply to: gdbserver has exited with code 1 #10426
    support
    Keymaster

    Hi,

    This is indeed strange. Could you please attach your .vgdbsettings file or send it to us via the support form? This should help us see if this is a VisualGDB bug.

    in reply to: JTAG Programming the NodeMCU ESP8266 #10421
    support
    Keymaster

    Hi,

    OK, thanks for the GDB log. It looks like the FLASH programming code does not report any errors (code 0 below):

    -data-evaluate-expression “\*\(\(unsigned\ \*\)0x3fff8014\)”
    ^done,value=”0″

    so normally the program should work. Are you able to communicate with the board using the esptool.py? If yes, could you try reading the FLASH memory at addresses 0 and 0x10000 and comparing it with the OMC-<address>.bin files?  This should explain if the FLASH gets programmed at all.

    We have also ordered a NodeMCU board and should get it by the end of March. We will check it once it arrives as post a detailed tutorial.

    in reply to: Command-line action failed when build via SSH. #10420
    support
    Keymaster

    Hi,

    The “Invalid configuration” would happen if you have accidentally deleted the file with per-configuration flags. The easiest workaround would be to re-create the project.

    Please note that for new projects we recommend using MSBuild as it is faster and more flexible.

    in reply to: Using Linux packages #10419
    support
    Keymaster

    Hi,

    Sorry, this is not supported on MSBuild yet. As a workaround, please try running pkg-config and adding the flags manually.

Viewing 15 posts - 5,566 through 5,580 (of 7,816 total)