AnsweredAssumed Answered

FNET: How can an (MQX) application best trigger when to load new code?

Question asked by Iain Galloway on Aug 19, 2013


I'm looking for suggestions on the most appropriate method to use FNET with an MQX application.

This is a bit new to me so maybe i'm on the wrong track here....



Current setup:

- Kinetis K60.

- FNET is working.

- MQX application is working.

- Presently FNET will by default load the "named code" on the TFTP server on every boot.

- It will wait indefinitely if the "named code" TFTP file is not present.

  -- This is undesirable... basically if there is not new code, the board should just continue with the code it already has... unless of course the code is "bad"



What we want is for FNET to ONLY load new code if there is new code present/needed.


I'm thinking this could be done in several ways:

1 - The MQX application could signal to FNET when it is time to "get code from tftp" by setting a shared memory flag?

2 - The MQX application could signal to FNET when it is time to "get code from tftp" by some API call to FNET? (seems like there is some capability here?)

3 - FNET could/should not try to do a new TFTP load/boot if a file was not present at all?

4 - or better FNET maybe should LOG what code is presently loaded and check the filename against the TFTPserver.

     (ie Code001.s19 is loaded, so only do TFTP load if Code002.s19 shows up ??)

5 - FNET maybe should calculate a checksum the existing code space to make sure it's valid? and compare with a checksum it has locally to see if a reload is needed?


#4 above seems like a good approach.


I'm VERY open to suggestions on how to make the booting process more "complete"

The overall goal is to not have to touch the hardware that is on the end of ethenet connection. and also not have to reload code from TFTP on every reboot/powercycle.

Maybe I'm missing something obvious that is already part of FNET.