Skip to main content

MultiProg Interface

Interface Elements

Interface Description

  • menu – the main menu of the program.
  • actions toolbar – the most commonly used actions, duplicating the menu.
  • additional actions – actions applicable to a specific programmer or controller. These change depending on the selected controller/programmer.
  • programmer & target info – a brief summary of the connected programmer and controller.
  • hex buffer – visualization of all memory segments of the controller in the form of a hex buffer.
  • log – logging window.
  • memory/address bar – shows the name of the selected memory segment in the hex buffer and the highlighted address.

Basic Programming Actions

  • connect – establishing a connection with the programmer and the controller.
  • read – reading each memory segment according to the memory map, saving to the dump buffer of each segment.
  • write – writing each memory segment from the buffer without prior mass erasure.
  • verify – comparing each memory segment for correspondence with the contents of the buffer.
  • erase – mass erasure of each segment from memory if no other erasure mechanism is provided by the controller manufacturer.

Quick Start

The usual order of actions:

  1. Open Target in the menu or in the actions toolbar.
  2. Select the programmer and controller, then click OK. Target selector
  3. Make sure you have read the setup guide for the programmer. For example, see the USBDM guide.
  4. Check in the menu Info->Connection Image; there might be a connection diagram for your controller.
  5. Connect the programmer to the controller and click Connect.
  6. After a successful (SUCCESS) connection, all actions (Read, Write, Erase, Verify) will become active.
  7. Congratulations, you’re all set! 🚀

Hex Buffer and Memory/Address Bar

The hex buffer is a mirrored representation of the controller's memory within the program.

In the hex buffer, there can be one or more tabs with memory segments. Switching is done by clicking on the tab with the segment name. Segments

Quick Navigation

By clicking on the address field, you can quickly jump to a specified offset. quick addr

Copying a Line in Hex/Text

By right-clicking, you can specify the copy format. quick addr

Determining Segment and Address via Memory/Address Bar

quick addr Why does the address always show 0x00 for cell 0x00-0x01 in this video? This controller (mc56f) has 2 bytes per memory cell.

Working with Firmware Files

Working with Files

  • menu->File->Open loads the firmware file opened in the buffer section.

  • menu->File->Import loads all sections from the selected firmware file.

  • menu->File->Save saves to a firmware file opened in the buffer section. The format is determined by the extension (bin, s19, etc.).

  • menu->File->Export saves all sections from a selected firmware file. The format is determined by the extension (bin, s19, etc.).

  • actions toolbar->Save is the same as menu->File->Save.

  • actions toolbar->Open is the same as menu->File->Open.

info

It is advisable to perform Export-Import in S19 format (aka .mot, .srec). The format is determined by the extension when saving the file.

Difference Between Import/Export and Save/Options

info

Segments (regions) in this case refer to memory sections of the microcontroller (see memory map); not all controllers have multiple memory segments.

  • Export in S19 format adds each segment in SREC format.
  • Export in bin format, starting from 0x00 to the initial address of the first memory segment, fills the file with 0xFF. It then adds the first segment to the file, followed by adding 0xFF up to the start of the next segment, and continues this process until the entire buffer is loaded.
warning

Therefore, Export in bin format is not recommended without necessity, as the firmware file may become very large.

  • Import in s19 format parses the srec file, extracting and loading each segment into the buffer.
  • Import in bin format calculates the initial offset based on the address of the first memory segment, extracts data from the file starting at (initial offset) and of size (segment size), and does this sequentially for each segment in the buffer.
  • Save in bin format simply saves segments as they are, where zero offset = start of the segment. In s19, it uses addressing.
  • Open in bin format loads the selected memory segment with a zero offset, i.e., as it is in the file. In s19, it uses addressing.

I saved the read USBDM firmware for DSC (MC56f) and it is larger than it should be

This controller (mc56f - DSC) has 2 bytes per memory cell. Therefore, if there are addresses 0x0-0x7FFF, the byte count is doubled.

Settings - Settings Menu

  • License: nothing interesting here, just information about your license and activation.

  • Download log saves the current session log to a specified path; it may come in handy.

  • Reset default config removes settings and restores defaults.

  • Check updates checks for and installs updates.

Info->Connection image

At the moment, it opens an image located in the MultiProg/connection_image folder with the name of the controller.

Help-about (version)

Version You can view the version, build time, and hash of the program in menu->Help->About.

info

This may be useful when contacting support.