Project Description

Whenever you create a new project, in the Project Editor tab some additional lines typically appear.

The first one is the !ENGINEMASK, which tells the channels of the FlashRunner where the project will run. This value is usually automatically set by the drag & drop operation during the project creation. However, to effectively determine the channels on which the project will run, this value is used as an actual mask. Considering the binary translation of the hexadecimal value, you can understand the channels selected by the position of the “1s”. (e. g. 0x0A is 0b00001010, which will enable channel 4 and channel 2).

Moving to the next command, we have the LOADDRIVER. This line is retrieved from the database and will contain the driver that is being used by the device (which is identified by the prefix lib and the suffix .so) followed by the manufacturer, the device family, and the device part number.
The next one is the !CRC value. This is an actual CRC that is calculated over the LOADDRIVER and all the data of the Device Settings section. This value is then checked by the Workbench to ensure the integrity of the information that has been retrieved from the database, denying the possibility of any change.
The last command is the TPSETSRC. This is a value that is set whenever the user decides to use an FRB file to program data in the target device. Only FRB/FRS files can be used as source

SMH Technologies’ Workbench offers numerous advanced functionalities that enhance user control and project adaptability within the FlashRunner ecosystem. Here, we explore some of these features and how they can optimize programming performance.

Let’s start with the DELAY command.

As you can imagine, this is a simple operation that introduces a wait operation for the specified time, expressed in milliseconds.

The next one is an option that can be used with every existing command.

It is called Conditional Command and it allows the execution of some operations only in the case of a failure of a previous command.

This is commonly with the MASSERASE, allowing to skip the erase operation in case the device is already blank. By doing so, the user can reduce the cycle time, especially on big memory-size devices.

This feature uses an #IFERR clause followed by as much #THEN as needed.

We have already seen how to set a source file for the programming operation through TPSETSRC.

However, the Workbench can allow the use of multiple TPSETSRC commands to program different source files.

Usually, there is no need for this operation to be performed since the Workbench allows to load multiple source files into one single FRB file. However, in some cases where the user needs to program the same memory area with two different firmware that would overlap, the creation of more FRB files and the subsequent use of multiple lines of TPSETSRC can overcome this situation.

If you plan on using different firmware files that cover the same portion of the memory, remember that usually an erase is required before a new programming cycle.

The last feature is called Dynamic Memory. It is an additional characteristic that, while not commonly used, can be beneficial in specific situations.

The idea behind Dynamic Memory is to be able to patch some areas of the FRB that need to be programmed with different data. This can be accomplished with the commands DYNMEMSET, DYNMEMSET2, DYNMEMSETW, and DYNMEMSETW2. For more information on each command, check the Programmer’s Manual which can be found in the help section of the Workbench.

After setting the dynamic memory with the specified value, the FlashRunner during the Program operation will automatically recognize this data and patch it on the source FRB file.

Patching FRB files is not the only possible solution for this command, since it can be used in combination with the TPSETSRC command to allow the flashing of only the dynamic data in the target device, actually setting it as the main source for the program operation.

Once the dynamic memory is set, please remember that it will remain applied to the specified memory area until a DYNMEMCLEAR command is executed—even through different projects.

The Project Editor in SMH Technologies’ Workbench is more than just a tool; it is a robust platform that adapts to the ever-evolving needs of device programming. By utilizing these advanced tips, users can unlock the full potential of the FlashRunner, streamlining operations and enhancing project precision.