General Information#
Installing Simplicity Commander#
You can install Simplicity Commander using Simplicity Studio or by downloading one of the following standalone versions and then completing the installation:
https://www.silabs.com/documents/public/software/SimplicityCommander-Linux.zip
https://www.silabs.com/documents/public/software/SimplicityCommander-Mac.zip
https://www.silabs.com/documents/public/software/SimplicityCommander-Windows.zip
Command Line Syntax#
To execute Simplicity Commander commands, start a Windows command window, and change to the Simplicity Commander directory. The general command line structure in Simplicity Commander looks like this:
commander [command] [options] [arguments]
where:
commander
is the name of the tool.command
is one of the commands supported by Simplicity Commander, such as,flash
,readmem
,convert
, etc. The command-specific help provides additional information on each command.option
is a keyword that modifies the operation of the command. Options are preceded with--
(double dash) as described for each command. Some commands have single-character short versions which are preceded by-
(single dash). Refer to the command-specific help for the single-dash shorthands.argument
is an item of information provided to Simplicity Commander when it is started. An argument is commonly used when the command takes one or more input files.square brackets indicate optional parameters as in this example:
commander flash [filename(s)] [options]
angle brackets indicate required parameters as in this example:
commander readmem --output <filename>
General Options#
Help (--help
)#
Displays help for all Simplicity Commander commands and command-specific help for each command.
Command Line Syntax
$ commander --help
Command Line Usage Output
Simplicity Commander help displays a list of all Simplicity Commander commands. The following figure is an example.
To display help on a specific Simplicity Commander command, enter the name of the command followed by --help.
Command Line Input Example
$commander flash --help
Command Line Output Example
Simplicity Commander displays help for the flash command in the following figure.
Version (--version
)#
Displays the version information for Simplicity Commander, J-Link DLL, and EMDLL, and a list of detected USB devices. If you use this option in conjunction with another command or command/option, Simplicity Commander displays this extra information before any command is executed.
Command Line Syntax
$ commander --version
Command Line Usage Output
Simplicity Commander displays version information. The following figure is an example.
Device (--device <device name>
)#
Specifies a target device for the command. If this option is supplied, no auto-detection of the target device is used. In some cases, such as when using convert
with the --token
option, this option is required.
For convenience, Simplicity Commander attempts to parse the --device
option so that a complete part number is normally not required as a command input. For example, Simplicity Commander interprets commander --device EFR32
to mean that the selected device is an EFR32, which has implications regarding the memory layout and available features of this specific device. As another example, Simplicity Commander interprets --device EFR32F256
as an EFR32 with 256 kB flash memory.
Using a complete part number such as --device EFR32MG1P233F256GM48
is always supported and recommended.
Command Line Syntax
$ commander <command> --device <device name>
Command Line Input Example
$ commander device info --device Cortex M3
J-Link Connection Options#
Use the following options to select a J-Link device to connect to and use for any operation that requires a connection to a kit or debugger. You can connect over IP (using the --ip
option), over USB (using the --serialno
option), or you can provide the serial port name or device file (using the --identifybyserialport
option) as shown in the following examples. You can use only one of these options at a time. If no option is provided, Simplicity Commander attempts a connection to the only USB connected J-Link adapter.
Note: Providing the
--identifybyserialport
option only lets Simplicity Commander use the serial port name to identify the corresponding J-Link device; Simplicity Commander will still connect to the J-Link device over USB (similarly to when you provide the--serialno
option).
Command Line Syntax
$ commander <command> --serialno <J-Link serial number>
Command Line Input Example
$ commander adapter probe --serialno 440050184
Command Line Syntax
$ commander <command> --ip <IP address>
Command Line Input Example
$ commander adapter probe --ip 10.7.1.27
Command Line Syntax
$ commander <command> --identifybyserialport <serial port name>
Command Line Input Example
$ commander adapter probe --identifybyserialport /dev/ttyUSB1
Debug Interface Configuration#
Use the --tif
and --speed
options to configure the target interface and clock speed when connecting the debugger to the target device.
Simplicity Commander supports using Serial Wire Debug (SWD) or Joint Test Action Group (JTAG) as the target interface. All currently supported Silicon Labs hardware works with SWD, while some can also be used with JTAG. Custom hardware may require JTAG to be used.
The maximum clock speed available typically depends on the debug adapter, the target device, and the physical connection between the two. Silicon Labs kits typically support speeds up to 1000 – 8000 kHz, depending on the kit model. If the selected clock speed is higher than what the adapter supports, the clock speed will fall back to using the highest speed it does support. You may want to select a lower clock speed if the debug connection is unstable or not working at all when working with custom hardware with longer debug cables or when the electrical connections are less than ideal.
If the --tif
and --speed
options are not used, the default configuration is SWD and 4000 kHz.
Command Line Syntax
$ commander <command> [--tif <target interface>] [--speed <speed in kHz>]
Command Line Input Example
$ commander device info --tif SWD --speed 1000
Command Line Output Example
Setting debug interface speed to 1000 kHz
Setting debug interface to SWD
Part Number : EFR32BG1P332F256GJ43
Die Revision : A2
Production Ver : 138
Flash Size : 256 kB
SRAM Size : 32 kB
Unique ID : 000b57fffe0934e3
DONE
Graphical User Interface#
Displays a Graphical User Interface (GUI) for laboratory use of Simplicity Commander. The GUI can be used in the lab for such typical tasks as:
Flashing device images
Upgrading Silicon Labs kit firmware and configuration
Setting device lock features
Accessing the kit's Admin console
Communicating with the target device via multiple protocols, including:
SEGGER Real Time Transfer (RTT)
Serial Wire Output (SWO)
Virtual UART (VUART)
Virtual COM (VCOM)
Command Line Syntax
$ commander
Timestamp (--timestamp
)#
Add a timestamp to the Simplicity Commander output.
Command Line Syntax
$ commander <command> --timestamp
Command Line Usage Output
Display a timestamp to all output from Simplicity Commander.
Command Line Input Example
$commander device reset --timestamp
Command Line Output Example
Simplicity Commander displays the timestamp for the device reset command.
17:00:39.194 Resetting chip...
DONE
Output and Exit Status#
The exit status of Simplicity Commander can take on a few different values. Whenever an operation completed successfully, Simplicity Commander's exit status is 0 (zero). Any error will cause the exit status to be non-zero.
Simplicity Commander defines the following exit status codes.Exit StatusDescription0No error occured-1Input error. For example, this could be a missing command line option, non-existent command, or an invalid filename.-2Run time error. Used whenever anything goes wrong when executing the command. Examples include not being able to connect to a debug adapter or flash verification failed.Note: Some operations systems present the exit status as an unsigned integer. On these systems, -1 will be interpreted as 255, -2 as 254, and so on.
The operating system itself may create other exit codes if the application crashes. These will always be non-zero and are out of the control of Simplicity Commander.
All errors and potential error conditions are indicated in Simplicity Commander's output in addition to the exit status. All errors are displayed with the prefix "ERROR:". All warnings are displayed with the prefix "WARNING:".
Any output from Simplicity Commander will always end with "DONE". This does not indicate that the operation was successful, merely that execution has finished.
Example of an error in Windows follows.
C:\>commander device info -s 440000000
ERROR: Unable to connect with device with given serial number
ERROR: Could not open J-Link connection.
DONE
C:\>echo %errorlevel%
-2