Creating and Flashing Image

The following section explains how to build and flash an image onto the CC35xx using either Code Composer Studio or through the WiFi Toolbox Command Line Interface (CLI)

Code Composer Studio CCS

First import a Project by going to FileImport Projects

../_images/Theia_Import.png

Fig. 24 Import Project

Browse for the example

../_images/Theia_Browse.png

Fig. 25 Browse Examples

Make sure to select workspace as the import destination

Verify the correct version of SimpleLink Wifi Toolbox, Sysconfig, and Simplelink_Wifi_SDK are in the product dependencies.
Right click on the Project and navigate to Properties
../_images/Theia_Properties.png

Fig. 26 Project Properties

In the Project Properties go to GeneralDependenciesProduct Dependencies

../_images/Theia_Dependencies.png

Fig. 27 Product Dependencies

Build the Imported Project by right clicking on the project and clicking on Build Projects

../_images/Theia_Build.png

Fig. 28 Building Project

Debug the Project by clicking on the debug Icon

../_images/Theia_StartDebug.png

Fig. 29 Start Debug

Then choose the correct project from the drop down list and press the Green play icon

../_images/Theia_GreenPlay.png

Fig. 30 Start debugging instance.

This will begin flashing the device with the image and start the debugger

Simplelink Wifi Toolbox CLI

The Wi-Fi toolbox command line interface provides commands that allow you to build programming image binary files, activate your device etc.

For any command that requires activation type, signing module etc, please note that the activation_type default setting is “sdk_example_key” and the signing_module will only be used for activation type “vendor_key” which has a default path “flash-images-builder/signing_module/sign.py”, so you have to specify the path if the script is a different name or somewhere else.

If you haven’t updated the signing module Python script when needed, you will see this warning:

../_images/cli-warning.png

Factory programming command. (If successful, the device will be running network terminal)

../_images/cli-factory-programming.png
./simplelink-wifi-toolbox.exe programmer -i XDS110 -param1 <XDS110 NUMBER> factory_programming --flash_type 'Input Flash model here' --activation_type 'sdk_example_key'

Flash erase command:

../_images/cli-flash-erase.png
./simplelink-wifi-toolbox.exe programmer -i XDS110 -param1 <XDS110 NUMBER> full_flash_erase --flash_type 'IS25WJ032F' --activation_type 'sdk_example_key'

The following variables are used in the commands below

  • SYSCONFIG_FILES = Directory of sysconfig generated files
  • TOOLBOX_ARTIFACTS_DIR = Directory where image will be created
  • SIMPLELINK_WIFI_TOOLBOX_INSTALL_DIR = Root Directory of simplelink wifi toolbox
  • ACTIVATION_TYPE = sdk_example_key, vendor_key, or authentication_bypass
  • SIGNING_MODULE = Path to the sign.py (default is <TOOLBOX_DIR>/flash-images-builder/signing_module/sign.py)
  • APPLICATION_OUT = Path to .out file of project
  • PRIMARY_WSOC = Path to ti_wireless_firmware_primary.bin (default is <SDK_DIR>/tools/TI_Containers)
  • PRIMARY_TBL = Path to ti_bootloader_primary.bin (default is <SDK_DIR>/tools/TI_Containers)
  • CONF_BIN = Path to cc35xx-conf.bin (default is <SDK_DIR>/tools/TI_Containers)

The following code will build and sign the programming image with the files created by Syscfg

Building and signing programming instruction image

./simplelink-wifi-toolbox.exe flash-images-builder build programming_image  --flash_memory_config $(SYSCONFIG_FILES)/external_memory_configurator.json --fuses_programming_instructions $(SIMPLELINK_WIFI_TOOLBOX_INSTALL_DIR)/programmer/activation_and_initial_programming/jsons/authentication_bypass/fuse_prog_inst_param.CC35XXE.json --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)
./simplelink-wifi-toolbox.exe flash-images-builder sign programming_image --unsign_image $(TOOLBOX_ARTIFACTS_DIR)/programming_instructions_image.unsign.bin --activation_type $(ACTIVATION_TYPE) --signing_module $(SIGNING_MODULE) --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)

Building and signing programming action request

./simplelink-wifi-toolbox.exe flash-images-builder build action_request --type programming --params_json $(SYSCONFIG_GENERATED_DIR)/action_params.json --dir_out_path $(TOOLBOX_ARTIFACTS_DIR) --flat_json
./simplelink-wifi-toolbox.exe flash-images-builder sign action_request --unsign_request $(TOOLBOX_ARTIFACTS_DIR)/programming_action_request.unsign.bin --activation_type $(ACTIVATION_TYPE) --signing_module $(SIGNING_MODULE) --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)

Building and signing debug action request

./simplelink-wifi-toolbox.exe flash-images-builder build action_request --type debug --params_json $(SYSCONFIG_GENERATED_DIR)/action_params.json --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)
./simplelink-wifi-toolbox.exe flash-images-builder sign action_request --unsign_request $(TOOLBOX_ARTIFACTS_DIR)/debug_action_request.unsign.bin --activation_type $(ACTIVATION_TYPE) --signing_module $(SIGNING_MODULE) --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)

Building and signing primary vendor image

./simplelink-wifi-toolbox.exe flash-images-builder build vendor_image --vendor_out_file "$( APPLICATION_OUT)" --conf_bin_file "$(CONF_BIN)" --dir_out_path "$(TOOLBOX_ARTIFACTS_DIR)" --version "$(primary_vendor_image_version)" --output_file_name "primary_vendor_image.bin"
./simplelink-wifi-toolbox.exe flash-images-builder sign vendor_image --unsign_image $(TOOLBOX_ARTIFACTS_DIR)/primary_vendor_image.unsign.bin --activation_type $(ACTIVATION_TYPE) --signing_module $(SIGNING_MODULE) --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)

Building Primary_WSOC image

./simplelink-wifi-toolbox.exe flash-images-builder build ti_wireless_fw_image --ti_wireless_fw_sign_container $(PRIMARY_WSOC) --dir_out_path $(TOOLBOX_ARTIFACTS_DIR) --version "1.2.3.4"

Building Boot_Sector image

./simplelink-wifi-toolbox.exe flash-images-builder build boot_sector_image --programming_instruction_image "$(TOOLBOX_ARTIFACTS_DIR)/programming_instructions_image.sign.bin" --dir_out_path $(TOOLBOX_ARTIFACTS_DIR)

Building primary TBL image

./simplelink-wifi-toolbox.exe flash-images-builder build tbl_image --ti_sign_container "$(PRIMARY_TBL)" --dir_out_path $(TOOLBOX_ARTIFACTS_DIR) --output_file_name "tbl_image.bin"

Updating tools_setting.json

./simplelink-wifi-toolbox.exe flash-images-builder build tool_settings --key_value "$(TOOL_SETTINGS)" --output_path $(JSON_FILE)

The variable TOOL_SETTINGS defines what files will be flashed onto the device and the location of them. The minimum artifacts needed are the following

  • TOOL_SETTINGS = ” programming_instructions=$(TOOLBOX_ARTIFACTS_DIR)/programming_instructions_image.sign.bin”
  • TOOL_SETTINGS += ” actions_req_paths.programming=$(TOOLBOX_ARTIFACTS_DIR)/programming_action_request.sign.bin”
  • TOOL_SETTINGS += ” actions_req_paths.debug=$(TOOLBOX_ARTIFACTS_DIR)/debug_action_request.sign.bin”
  • TOOL_SETTINGS += ” primary_vendor_image=$(TOOLBOX_ARTIFACTS_DIR)/primary_vendor_image.sign.bin”
  • TOOL_SETTINGS += ” primary_ti_wsoc=$(TOOLBOX_ARTIFACTS_DIR)/ti_wireless_fw_image.bin”
  • TOOL_SETTINGS += ” boot_sector=$(TOOLBOX_ARTIFACTS_DIR)/boot_sector_image.bin”
  • TOOL_SETTINGS += ” primary_tbl=$(TOOLBOX_ARTIFACTS_DIR)/tbl_image.bin”

Once the tool_settings.json file is updated the following command will flash the image onto the device.

./simplelink-wifi-toolbox.exe programmer -i XDS110 -param1 auto programming --tool_settings $(TOOLBOX_ARTIFACTS_DIR)/tool_settings.json --verbose