EBL Commands#

Print EBL Information#

Parses and prints EBL information from the specified .ebl file.

Command Line Syntax

$ commander ebl print <filename>

Command Line Input Example

$ commander ebl print example.ebl

Command Line Output Example

Found EBL Tag = 0x0000, length  140, [EBL Header]
  Version:     0x0201
  Signature:   0xE350 (Correct)
  Flash Addr:  0x00004000
  AAT CRC:     0x53BC1F4E
  AAT Size:    128 bytes
    HalAppBaseAddressTableType
      Top of Stack:       0x20006980
      Reset Vector:       0x000121F9
      Hard Fault Handler: 0x00012125
      Type:               0x0AA7
      HalVectorTable:     0x00004100
    Full AAT Size:    172
    Ember Version:    5.7.0.0
    Ember Build:      0
    Timestamp:        0x561E581F (Wed Oct 14, 2015 13:26:55 UTC [+0100])
    Image Info String:''
    Image CRC:        0x2ACE0C5B
    Customer Version: 0x00000000
    Image Stamp:      0xF4271F50BA2E2FBA
Found EBL Tag = 0xFD03, length 1924, [Erase then Program Data]
  Flash Addr: 0x00004080
Found EBL Tag = 0xFD03, length 2052, [Erase then Program Data]
  Flash Addr: 0x00004800
(32 additional tags of the same type and length.)
Found EBL Tag = 0xFD03, length 1772, [Erase then Program Data]
  Flash Addr: 0x00015000
Found EBL Tag = 0xFC04, length    4, [EBL End Tag]
  CRC: 0xDBC82DA5
The CRC of this EBL file is valid (0xdebb20e3)
File has 0 bytes of end padding.
Calculated image stamp matches value found in AAT.
DONE

EBL Key Generation#

Generates a keyfile to be used for encryption or decryption and outputs the keyfile to the specified filename.

Command Line Syntax

$ commander ebl keygen --type aes-ccm --outfile <filename>

Command Line Input Example

$ commander ebl keygen --type aes-ccm --outfile key.txt

Command Line Output Example

Using /dev/random for random number generation
Gathering sufficient entropy... (may take up to a minute)...
DONE

EBL File Creation#

Creates an EBL file from an application image and writes the output to the specified filename. Can optionally encrypt the EBL file using a keyfile generated by the ebl keygen command.

Command Line Syntax

$ commander ebl create <eblfile> --app <filename> --device <part number> [--encrypt <keyfile>]

Command Line Input Example

$ commander ebl create app.ebl.encrypted --app example.s37 --device EFR32F256 --encrypt key.txt

Command Line Output Example

Parsing file example  .s37...
Parse .s37 format for flash
Flash Usage:
  Reserved for Bootloader:                0x00000000-0x00003fff (16384 bytes)
  CODE and Tables:                        0x00004000-0x00014ddb (69084 bytes)
  CONST and INITC:                        0x00014ddc-0x000184ab (14032 bytes)
  Available for future use:               0x000184ac-0x0003dfff (154452 bytes)
  Reserved for SIMEE:                     0x0003e000-0x0003ffff (8192 bytes)
Usage Summary:
  262144 total bytes Flash, 107692 used, 154452 available
Setting AAT timestamp to current time: 0x586e1ec9
Create ebl image file
Wrote image stamp into AAT.
Encrypting EBL...
Unencrypted input file: ebl_plaintext_ux8544.ebl
Encrypt output file:     app.ebl.encrypted
Randomly generating nonce
Using /dev/random for random number generation
Gathering sufficient entropy... (may take up to a minute)...
Created ENCRYPTED ebl image file
DONE

EBL File Parsing#

Parses an EBL file and writes the application image to the specified filename. Optionally decrypts an encrypted EBL file. The keyfile must be the same as was used for encrypting the encrypted EBL file.

Command Line Syntax

$ commander ebl parse <ebl filename> --app < filename> --device <part number> [--decrypt <key filename>]

Command Line Input Example

$ commander ebl parse example.ebl.encrypted --app app.s37 --device EFR32F256 --decrypt ../aeskey

Command Line Output Example

Unencrypted output file:  ebl_plaintext_L10567.ebl
Encrypt input file:      example.ebl.encrypted
MAC matches. Decryption successful.
Created DECRYPTED ebl image file
Parse .ebl format for flash
Create image file
Writing application to app.s37...
DONE

Memory Usage Information from AAT#

For applications containing an Application Address Table (AAT), Simplicity Commander can analyze the memory usage of the application. The AAT is included in Zigbee applications.

RAM usage is only available for EM3xx applications. Applications built for EFR32 can only be analyzed for flash usage.

Command Line Syntax

$ commander ebl aat-usageinfo <filename> --device <part number>

Command Line Input Example

$ commander ebl aat-usageinfo example.s37 --device EM357

Command Line Output Example

Parse .s37 format for flash
Approximate Usage Information:
RAM Usage:
  APPLICATION_CONFIGURATION_HEADER usage: 0x20000000-0x20000fc3 (4036 bytes)
  Available for future use:               0x20000fc4-0x2000195f (2460 bytes)
  Call Stack:                             0x20001960-0x200022bf (2400 bytes)
  Globals and Statics:                    0x200022c0-0x20002fe8 (3369 bytes)
  Alignment Overhead:                     0x20002fe9-0x20002fef (7 bytes)
  NO_INIT and Debug Channel:              0x20002ff0-0x20002fff (16 bytes)
Flash Usage:
  Reserved for Bootloader:                0x08000000-0x08001fff (8192 bytes)
  CODE and Tables:                        0x08002000-0x08011cdf (64736 bytes)
  CONST and INITC:                        0x08011ce0-0x08014263 (9604 bytes)
  Available for future use:               0x08014264-0x0802dfff (105884 bytes)
  Reserved for SIMEE:                     0x0802e000-0x0802ffff (8192 bytes)
Usage Summary:
  12288 total bytes RAM, 9828 used, 2460 available
  196608 total bytes Flash, 90724 used, 105884 available
DONE