Digi Connect ME doesn't boot after flash

I’m working with a Digi Connect ME module and my application runs fine in debug mode via the JTAG.

However, when I switch to Release mode and use the Net+OS flash utility to flash the module (which programs and verifies successfully), then I shutdown the module, disconnect the JTAG and reboot the module – and nothing. I can’t ping the device, there’s no activity in Wireshark from the device’s MAC address. And, only the Link light is lit on the RJ45.

My application specs are:
Generating image.bin from image.uncompressed for BOOT header
Image Type: Uncompressed
Image Size: 1221136
Flash Offset: 0x10000
RAM Address: 0x4000
Backup Image Address: 0x2195000
Finished building: image.bin

Is the image size too big?

My flash map settings are:
Bootloader 64K
NVRAM 64K
Unused Space Disabled
Application Image 1556K
Backup Image 64K
File System 300K (which is really more than I need for 3 files, each less than 200 bytes each)
Total Flash Size 2048K

I have 3 threads running, and I’ve insured that they each have a stack size of 8192.

I realize that my application is big, and I’m looking for ways to cut it down, but can anyone provide some other points to look for?

I should add that I also don’t see any output to the terminal upon reboot.

if it works from the debugger it should work from FLASH. If it was too big, you wouldn’t be able to run it in the debugger via JTAG or program in to FLASH

  1. Are you making changes to GPIOs? if so plese program bootloader (rom.bin) as well as the application (image.bin) generated from the same release build.
  2. try using ftp to program FLASH and not the built in FLASH programmer. Se if it makes a difference. Either use an ftp server example or add ftp server to your own application.
    Please report the result.

if it works from the debugger it should work from FLASH. If it was too big, you wouldn’t be able to run it in the debugger via JTAG or program in to FLASH

  1. Are you making changes to GPIOs? if so please program bootloader (rom.bin) as well as the application (image.bin) generated from the same release build.
  2. try using ftp to program FLASH and not the built in FLASH programmer. Se if it makes a difference. Either use an ftp server example or add ftp server to your own application.
    Please report the result.

The program does not make changes to GPIO.

Earlier today, I loaded a known working bin file and loaded my new bin via FTP. The unit did not correctly load the image.bin file (even though it detected it and it passed the CRC check according to terminal output).

However, after that I retried the FLASH programmer and that time it worked.

What’s different between the two methods?

ftp loads image to be programmed in to SDRAM ,then programs to FLASH via Netos APIs. The FLASH programmer in DigiESP uses JTAG to program image transferred from a PC to FLASH. Theoretically both should produce the same result. When you used ftp did you use ftp server as part of your application? This is the most reliable way in my opinion.

Try to build your project in Release Mode not in the debug mode. Because the optimized code enabled in release mode only.

Clean your project and build it in Release Mode.

Thanks