This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Uniflash faster multicore programming

Other Parts Discussed in Thread: UNIFLASH

Hi!

I modified the uniflash javscript files to be able to program multiple devices in a single jTag chain or multicore devices with just a single call of the uniflash tool.

Why is it useful?

Because each time uniflash is called, a delay of up to 20 seconds is created due to some internal intialization (First call of the Opensession() API function).
When programming e.g. 4 devices with the standard uniflash scripts it would take up to 80 seconds of overhead where no communication with the devices takes place.

With the attached scripts it is possible to pass multiple -core and -program / -programbin parameters to speed up this procedure. This can save in case of 4 devices e.g. 60 seconds (3*20s). This improves significantly the  programming time in a production environment.

Installation:

  • Install Uniflash in case it is not already installed (I tested & developed it with V2.2)
  • Unzip the attached file to: C:\ti\uniflashv2\ccs_base\scripting\examples\uniflash\cmdLine (please make a backup copy of your old files first in case something goes wrong).

Now you are able to use the modified uniflash scripts.

Example call:
uniflash.bat -log logfile.xml -ccxml Concerto.ccxml -loadSettings Concerto.uniflashsession -core "Cortex_M3_0" -program M3.out -core "Cortex_C28_0" -program C28.out

As you can see, the chained programming operations including the -core parameter now have to be at the end of the uniflash parameter list. Also -loadSettings needs to be specified before the first -core call. The amount of devices to be programmed in a single call is not limited.

The -core parameter is also mandatory.

Take care, this is an individual development / modification done by me and not an officially TI supported solution. Testing was only done on a single hardware platform.

Best regards,

Kai

uniFlashMulticore.zip
  • Kai,

    Thank you for sharing your work with the community!

    ki

  • I have been using this for a few years now. It works great, except it doesn't always program all of the cores. We have 3 concerto devices (total of 6 cores). Sometimes it only programs 4 of the cores and exits as if it programmed all 6. Also, it fails to connect many times, and if you run it again, it works ok. Seems like a timing issue somewhere.

    Very great app. I would like to see it updated with fixes to the above if possible. I can test anything you come up with.

    Nelson Norris