Other Parts Discussed in Thread: ENERGIA
Tool/software:
I have struggled over some time to successfully use the ROM_UpdateEMAC function in a project built using gcc under Ubuntu, and then to successfully flash the board over ethernet.
All attempts so far have failed at the point ROM_UpdateEMAC is called.
Today I thought I would build boot_demo_emac_rom and found that that is failing in exactly the same way. (I had to make the following minor modifications:
1. to correct the linker error .ARM.edidx overlaps .data found this fix https://github.com/hathach/tinyusb/issues/2337
2. to set a static IP address rather than use DHCP
I haven't been able to locate a working official tool for flashing the board from Ubuntu over linux, so have tried 2 alternative:
1. Python script which generates the magic packet and then invokes a tftp loader.
2. I ported the eflash tool in Tivaware from Windows to linux.
When eflash didn't seem to be working, I got it to display verbose messages, from which I can see that the TM4C isn't sending anything so it keeps resending the magic packet.
3. I started a windows VM and tried LMFlash which also hanged.
I then flashed the board with a binary that I had built some years earlier using CCS, and knew to work with 5 existing boards including the ability to update these over wired ethernet,
this doesn't flash with either LMFlash (from a windows VM) or eflash (converted to linux).
The two boards I have tried were bought about 2017 or 2018, whereas the boards that appear to work were bought between 2014 and 2016.
The MAC addresses of the boards that don't appear to flash are 00:1A:B6:03:0E:05 and 00:1A:B6:03:09:AE , unfortunately I don't remember if these could ever be flashed over ethernet.
Is it possible that these later boards don't implement a working ROM_UpdateEMAC ? Is there any other information that could establish this?
My principal objective is now to reflash the original boards with updated (and simpler) software, as these are in fairly inaccessible locations it isn't practical to flash them over USB. These boards are still being used by a live application so I don't want to replace their software until I know I can apply updates easily. At present I suspect that I might be able to update them, but have no means of verifying this using the 2 other existing boards.