What is UMI?

28-Jul-2023

UMI (Universal Monitor Interface) is a proprietary interface that allows winIDEA a flexible and efficient way of communication with an embedded application called UMI monitor.

The design of UMI allows the development team to support any new type of SoC of storage device in a very short time.

However, there are some considerations of which a winIDEA you have to be aware, especially if you are using Live Programming or software breakpoints when code is running from Flash. When the application is running from Flash and e.g. software breakpoint is set, this is the procedure that winIDEA follows:

  1. All cores are stopped.
  2. RAM which will be affected by the UMI monitor is stored.
  3. The UMI monitor is loaded to RAM.
  4. Core registers of the core which will run the UMI monitor are stored.
  5. Cache is disabled.
  6. Core that is running the UMI monitor is started.
  7. UMI monitor performs the requested operation.
  8. Cache is enabled if previously disabled.
  9. Core registers of the core which ran the UMI monitor are restored.
  10. RAM which was affected by the UMI monitor is restored.
  11. All cores which were stopped are resumed.

You should be aware that this procedure might affect the application. If some peripheral is being used in the application, e.g. DMA or timer interrupts, it may break the execution of the UMI monitor and consequently the application.

When performing download or external flash operation, it is recommended to always perform CPU reset after UMI operation.



UMI monitors can be used for virtually all types of storage/memory manipulation. Most common UMI monitors are used described in winIDEA Help

Was this answer helpful?