Upgrading to 7.4 on Digi ME

I have an app that started life back in 6.0, and has been migrated up steadily up to 7.3. Strictly command line. 7.4 is now out, and once again there are some (to me) major changes in how things are done. Are there any resources or tutorials to handle the following changes from the What’s New document?

#24 - “A new API, naFrpDlInit has been added.” The example app has been modified to just make this call and nothing more. The readme for the example app doesn’t appear to have been changed since NET+50. My naftpapp.c had been customized to toggle some I/O’s to prevent my other processor from becoming active while a firmware update was in progress. How should I do that now?

#11. “The bootloader has a new recovery method…” Also #18. “A platform ID will now be encoded…” How does one build a “backup.bin”? Is it a normal image.bin renamed to backup.bin, so that for instance I could just use the naftpapp example as my backup.bin? How can I trigger this mode? The note for #11 mentions I/O’s, and I saw elsewhere that those I/O’s can be customized, but now I can’t find that again. It used to be pins 17 and 20, I believe, but due to a board layout issue, I’d like to change that to just the -INIT line by itself. How?

#30. What is uboot? Is this something that is new to 7.4, or new to 7.x? I’d never heard of it before, but it sounds completely different to what is discussed in #18.

One last issue… Would it be possible for the recovery console to use UDP instead of serial? Digi-ME’s only have the one serial port, and it is dedicated to communicating with another CPU, which makes intercepting it for recovery purposes next to impossible.

Thanks in advance for any info.

One more rant…

Why, oh why, does Digi keep changing the API’s? A perfectly useful function, DNSgethostbyname is now gone, and all we get is a “Additionally, the DNS function DNSgethostbyname() is deprecated and should be replaced with IPv6 friendly getaddrinfo().” I understand being IPV6 friendly, but I do not need nor do I ever anticipate needing IPV6, and now my app is broken and I’ve got to spend 2 days trying to figure out how to use this new function that works nothing like the old one. Grrrr…

To answer #30, What is uboot?

UBoot is for Digi’s NAND Flash devices, Digi’s NOR Flash devices use the NET+OS Bootloader.

The uboot bootloader is capable of booting the Operating System from NAND Flash, via a serial port or via Ethernet.

Since the days of 6.3, Digi’s development environment focus has changed from the command line to the Digi ESP. So when you look at the examples, you really should be looking at the ones provided in the ESP for current stuff, even though building from the command line is just fine still (I still occasionally build apps today from it).

The DNS stuff changed to accommodate IPv6 DNS addresses. It happens, IPv6 is now a requirement in many areas.

backup.bin is the image.bin (or another app if you wanted to create another simpler recovery application), and you name it backup.bin and can upload it via the FTP File Server example application (see the examples I mention above).

You can force the recovery mode by shorting pins 18 and 20 to ground on the ME, this starts the recovery process. Check out the code in blmain.c to see how it all works (and you can remove the check that looks for both the init pin and pin 18).

U-Boot is only for the CC9P9360 in NET+OS.

The recovery tries TFTP (a UDP based protocol) first, check out this KB article: http://www.digi.com/support/kbase/kbaseresultdetl.jsp?id=843.