Skip to content

Shell

Overview

The Shell sample shows you how to register custom commands into the Zephyr Shell. The following custom commands will be registered:

  • bootloader: Enter the UF2 Bootloader at runtime.
  • erase_app: Erase the entire application at runtime.

Ensure UF2 Bootloader is present

This sample requires the UF2 Bootloader running on the board. If the UF2 Bootloader is not present or gets corrupted somehow, you can re-install the UF2 Bootloader by following the UF2 Bootloader Installation section.

Requirements

Before you start, check that you have the required hardware and software:

Building the sample

Before you start building, remember to set up the environment first.

Use the following steps to build the Shell sample on the command line.

  1. Open a terminal window.

  2. Go to zephyrproject/imxrt1011-nanokit directory created in the Setting up the environment section.

    cd zephyrproject/imxrt1011-nanokit
    
  3. Build the sample using the west build command, specifying the board (following the -b option) as imxrt1011_nanokit.

    west build -p always -b imxrt1011_nanokit samples/zephyr/shell
    

    Tip

    The -p always option forces a pristine build, and is recommended for new users. Users may also use the -p auto option, which will use heuristics to determine if a pristine build is required, such as when building another sample.

  4. After running the west build command, the build files can be found in build/zephyr.

Flashing the firmware

This sample should work with the UF2 Bootloader. The firmware can be found in build/zephyr.

To flash the firmware, complete the following steps:

  1. Plug your board into the USB port of your computer.
  2. Double-click the RST button to enter UF2 Bootloader mode.
  3. The board will mount as a Mass Storage Device called UF2BOOT and the Red LED blinks slow.
  4. Drag and drop build/zephyr/zephyr.uf2 onto the UF2BOOT volume. The RGB LED blinks red fast during flashing.
  5. Press RST button on the board and the sample will start running.

Testing

After flashing the firmware to your board, complete the following steps to test it:

  1. Plug the board into the USB port of your computer.
  2. Open up a serial terminal, specifying the correct serial port that your computer uses to communicate with the board:

    Open up a terminal and run:

    screen <serial-port-name> 115200
    
    1. Start PuTTY.
    2. Configure the correct serial port and click Open:

  3. After connecting to the shell you should see the following output::

    1
    2
    3
    4
    *** Booting Zephyr OS build v3.6.0-3959-gd0ae1a8b1057 ***
    
    
    uart:~$
    
  4. The bootloader command can now be used:

    uart:~$ bootloader
    Enter UF2 Bootloader...
    

    After this command is executed, the board will reset and run into the UF2 Bootloader mode.

  5. Press RST button to exit the UF2 Bootloader mode and run into the Shell application. Connect to the shell again.

  6. The erase_app command can now be used:

    uart:~$ erase_app
    Don't turn off the power! Erasing entire application...
    

    After this command is executed, the board will reset and start erasing the application memory. The Red LED will blink fast, and once erasing completed, the board will run in UF2 Bootloader mode as there is no application to boot.