Article updated Aug. 2021 to describe automatic fuse generation for NXP i,MX RT devices. Some ARM devices have areas of flash memory dedicated to programming user configuration data. Writes to such areas can be sensitive or permanent for some devices, so it is important that the developer is able to write these options in an intuitive way in order to minimizes human error. PEmicro's PROGACMP v7.78 and Cyclone software installer v10.41 introduce a set of new "user options" commands: These commands allow the developer to individually program user options through the use of an IDE. What are User Options? Some ARM devices have areas of flash memory dedicated to programming user configuration data. Examples include NXP's fuses and OTP, Microchip's NVM User Row, and STMicroelectronics' Option Bytes. Such areas can include specific bits for programming options, such as a watchdog timer enable, or the bootloader size. Because some writes to such areas can be sensitive or permanent, it is important that the developer is able to write these options correctly the first time and avoid mis-programming adjacent options that they wish to leave untouched. PEmicro User Options Support As of August 2021, PROGACMP v8.59 and Cyclone installer v10.79 support the user options commands (CU, SU, and PU) for the following families with memory-mapped user options: i.MX RT1010 i.MX RT1015 i.MX RT1020 i.MX RT1050 i.MX RT1060 i.MX RT1064 LPC55x LPC55Sx STM32F0 STM32F1 STM32F2 STM32F3 STM32F4 STM32F7 STM32G0 STM32G4 STM32L0 STM32L1 STM32L4 STM32L4+ STM32W1 STM32WB ATSAMC20/21 ATSAMD09/10/11 ATSAMD20/21 ATSAMDA1 ATSAMD5x/E5x ATSAMHA1 ATSAML10/11 ATSAML21/22 ATSAMR21 MM32SPIN Previously an object file was used to support the programming of user options in PEmicro's PROGACMP software and Cyclone standalone mode. A set of three new commands has now been introduced in PROGACMP (version 7.78) and the Cyclone Image Creation Utility (version 7.80): These commands allow the developer to individually program user options through the use of an IDE. When the Create/Modify User Options File (CU) command is selected in interactive PROGACMP or the Cyclone Image Creation Utility, it allows the developer to create a new user options (.OPT) file from scratch, or modify an existing .OPT file. This JSON-type file represents the user options that the developer wishes to write, and will be used by the Specify User Options File (SU) and Program User Options (PU) commands later. The CU dialog lists the names of existing user area(s) and options available on the device. In interactive PROGACMP only, the current value of each option will also be displayed. For each user option, the developer will have the ability to either "Write [a new] Value" or "Leave [the option] Unmodified." New values must be written in hexadecimal format. If "Import from File" is selected, the developer can choose an existing .OPT file to modify. The values specified in that file will be displayed in their appropriate fields. At this point, the developer can choose to modify any contents of the file. The developer can either overwrite the selected file, or save the modified contents to a new filename, leaving the selected file as it was before. Once all new values have been written in their appropriate fields, the developer can save them to a new user options (.OPT) file. Once a user options (.OPT) file has been created, it can be used to program the device's user options in either the PROGACMP software or in Cyclone standalone mode by using the Specify User Options File (SU) and Program User Options (PU) commands. With the Specify User Options File (SU) command, the developer can select an existing user options (.OPT) file. In interactive PROGACMP, the "User Options File" path will show up in the Configuration window. Once a file has been specified, the Program User Options (PU) command can be used to write the values specified by the file. For most devices, new option values won't take effect until the device is reset. Example of SU and PU commands used in Cyclone Image Creation In CPROGACMP (command-line PROGACMP), user options can be programmed via the SU and PU commands in the following format in a .CFG file: Where "filepath" is the path to the .OPT file to use (e.g. C:\PEMicro\PROGACMP\supportFiles_ARM\Atmel\SAME\myFile.OPT in the example above). How to Use the User Options Commands
Create/Modify User Options File (CU)
Specify User Options File (SU) and Program User Options (PU)
SU filepath
PU
Fuse Generation/Programming on NXP i.MX RT devices
Tags related to this Blog Post
Cyclone
Cyclone FX
Multilink
Multilink FX
Prog ACMP
ARM
Microchip
STMicroelectronics
Production Programming