Skip to content

Commit

Permalink
Merge pull request #440 from NordicSemiconductor/doc_programmer_doc_r…
Browse files Browse the repository at this point in the history
…eview_outdated_content

doc: programmer: bring docs up-to-date
  • Loading branch information
greg-fer authored Feb 2, 2024
2 parents 0490aaa + b6193c4 commit 74965ef
Show file tree
Hide file tree
Showing 15 changed files with 162 additions and 99 deletions.
27 changes: 20 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,31 @@
[![Build Status](https://dev.azure.com/NordicSemiconductor/Wayland/_apis/build/status/NordicSemiconductor.pc-nrfconnect-programmer?branchName=main)](https://dev.azure.com/NordicSemiconductor/Wayland/_build/latest?definitionId=4&branchName=main)
[![License](https://img.shields.io/badge/license-Modified%20BSD%20License-blue.svg)](LICENSE)

_nRF Connect Programmer_ is a cross-platform tool that enables programming
firmwares to device. Memory layout for both _JLink_ and _Nordic USB_ devices can
be displayed. Content for the _HEX_ files can be displayed, too. Moreover,
content of _HEX_ files can be written to the devices.
nRF Connect Programmer is a cross-platform tool that enables programming
firmware to Nordic Semiconductor devices and custom devices that use Nordic
Semiconductor hardware.

The application supports J-Link, Nordic Secure DFU, and MCUboot programming
methods, using both HEX and ZIP files. It lets you inspect the memory layout of
the firmware files and the devices.

![screenshot](resources/screenshot.gif)

## Installation

See the
[InfoCenter](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrftools%2Fstruct%2Fnrftools_nrfconnect.html)
pages for information on how to install the application.
nRF Connect Programmer is installed from nRF Connect from Desktop. For detailed
steps, see
[Installing nRF Connect for Desktop apps](https://docs.nordicsemi.com/bundle/nrf-connect-desktop/page/installing_apps.html)
in the nRF Connect from Desktop documentation.

## Documentation

Read the
[nRF Connect Programmer](https://docs.nordicsemi.com/bundle/nrf-connect-programmer/page/index.html)
official documentation, which includes information about the
[application UI](https://docs.nordicsemi.com/bundle/nrf-connect-programmer/page/overview.html)
and
[programming procedures](https://docs.nordicsemi.com/bundle/nrf-connect-programmer/page/programming_dk.html).

## Development

Expand Down
5 changes: 4 additions & 1 deletion doc/docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# nRF Connect Programmer

nRF Connect Programmer is an app available from [nRF Connect for Desktop](https://nordic-dev.zoominsoftware.io/bundle/nrf-connect-desktop/page/index.html) that you can use to program firmware to Nordic devices. The application allows you to see the memory layout for both J-Link and Nordic USB devices. It also allows you to display content of HEX files and write it to the devices.
nRF Connect Programmer is an app available from [nRF Connect for Desktop](https://nordic-dev.zoominsoftware.io/bundle/nrf-connect-desktop/page/index.html) that you can use to program firmware to Nordic devices. The application allows you to see the memory layout for devices that support programming with J-Link, Nordic Secure DFU, and MCUboot. It also allows you to display content of HEX files and write it to the devices.

## Supported devices

Expand All @@ -9,4 +9,7 @@ nRF Connect Programmer is an app available from [nRF Connect for Desktop](https:
- nRF91 Series DKs
- nRF53 Series DKs
- nRF52 Series DKs and Dongle

### Deprecated support

- nRF51 Series DKs and Dongle
15 changes: 1 addition & 14 deletions doc/docs/installing.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,3 @@
# Installing the Programmer app

Programmer is installed as an app for **nRF Connect for Desktop**. Before you can install the app, you must download and install [nRF Connect for Desktop](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop) (version 3.2.0 or later).

To install the app:

1. Open nRF Connect for Desktop.
2. Find the Programmer app in the list and click **Install**.

Once the app is installed, you can launch it by clicking **Open**.

For easy access, you can create a desktop shortcut by clicking the arrow-down button and selecting **Create shortcut**.

If a new version of the app becomes available, an **Update** button is displayed next to the **Open** button. Click this button to install the latest version.

To uninstall the app, click the arrow-down button and select **Uninstall**.
For installation instructions, see [Installing nRF Connect for Desktop apps](https://docs.nordicsemi.com/bundle/nrf-connect-desktop/page/installing_apps.html) in the nRF Connect for Desktop documentation.
86 changes: 59 additions & 27 deletions doc/docs/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,93 @@

The nRF Connect Programmer app main window displays the memory layout of the device and the file you want to work with. It also provides options to program the device and inspect the entire process through the log.

When you start the Programmer app, the following main window appears:
When you start the Programmer app, the application main window appears with the **Programmer** tab selected by default and the [**File Memory Layout**](#file-memory-layout) and [**Device Memory Layout**](#device-memory-layout) panels empty:

![nRF Connect Programmer default view at startup](./screenshots/programmer.png "nRF Connect Programmer main window")
![nRF Connect Programmer default view at startup](./screenshots/programmer_overview.png "nRF Connect Programmer main window")

## Select Device

Once you connect a device to the system, it becomes visible and available when you click on the **Select device** drop-down list. You can choose a device from the list of connected devices to perform further actions on the device such as programming.

You can switch between the following application Tabs, using the navigation bar.
## Device panel sections

### Programmer tab
The following options become available after selecting a device.

In the **Programmer** tab, you can see the memory sections for the selected device.
### File

The **File Memory Layout** panel displays the memory layout for files added to the Programmer app with the **Add file** option. Once added, these files can be programmed onto the device.
When you select a device, the following actions are available in the File section:

Both windows display the different sections in the memory with different colors.

![Memory layout section colors](./screenshots/programmer_app_memory_layout_colours.svg "Breakdown of colors of memory sections")
| Action | Description |
|---------------------|----------------------------------------------------------------------------------------------------|
| **Add files** | Adds one or more files you select to the [**File Memory Layout**](#file-memory-layout) panel. You can select the files either from the drop-down list of previous files or by browsing to the file destination. |
| **Reload files** | Reloads the file you have previously added to the **File Memory Layout**. |
| **Clear files** | Removes the file from the **File Memory Layout**. |

### Device

When you select a device, the following actions are available in the Device panel:
When you select a device, the following actions are available in the Device section:

- **Erase all** clears the written memory on the device.
- **Read** reads and displays the written memory in the **Device Memory Layout**.
| Action | Programming method | Description |
|---------------------|--------------------------|----------------------------------------------------------------------------------------------------|
| **Erase all** | J-Link | Clears the written memory on the device. |
| **Erase & write** | J-Link | Clears the written memory and programs the files added to the **File Memory Layout**. |
| **Save as file** | J-Link | After you **Read** the memory, saves the current memory layout in the **Device Memory Layout** to a HEX file. |
| **Reset** | J-Link | Resets the device. |
| **Write** | MCUboot, Nordic Secure DFU, Modem firmware | Programs the files added to the **File Memory Layout**. |
| **Read** | J-Link | Reads and displays the written memory in the **Device Memory Layout**, unless the device has readback protection enabled. |

- In the **Device Memory Layout**, you can read the name, address range, and size of a memory section by hovering the mouse cursor over one of the memory sections. This option is possible only after loading a memory layout.
### J-Link Settings

![Memory section details](./screenshots/programmer_with_device.png "Memory section after selecting a device")
When you select a device, the following toggles are available in the J-Link Settings section:

- Additionally, after you read the memory, **Save as file** allows you to save the memory as a HEX file.
| Toggle | Description |
|-----------------------------------|------------------------------------------------------------------------------------------------------|
| **Auto read memory** | Enable to automatically read and display the memory layout of the device when the device is selected. Data is only automatically read on non-protected devices. |
| **Auto reset** | Enable to automatically reset the device after it has been programmed to start the new binary. |

- **Reset** resets the device.
- **Write** programs the files added to the **File Memory Layout**.
- **Erase & write** clears the written memory and programs the files added to the **File Memory Layout**.
- To automatically read and display the memory layout of the device when the device is selected, enable **Auto read memory**.
- To automatically reset the device after it has been programmed, enable **Auto Reset**.
- To program a Nordic USB device, **Enable MCUBoot** may be required to write to the device memory.
### MCUboot Settings

### File
When you select a device, the following toggles are available in the MCUboot Settings section:

| Toggle | Description |
|-------------------------------------|-------------------------------------------------------------------------------------------------------|
| **Enable MCUBoot** | **Experimental feature** Enable to write to the device memory when programming a Nordic Secure DFU device, such as Nordic Thingy:91 or the nRF52840 Dongle. You can also use this option for custom SoCs that support MCUboot. |

## Programmer tab

In the **Programmer** tab, you can see the memory sections for the selected device.

Both windows display the different sections in the memory with different colors.

![Memory layout section colors](./screenshots/programmer_app_memory_layout_colours.svg "Breakdown of colors of memory sections")

### File Memory Layout

The **File Memory Layout** panel displays the memory layout for files added to the Programmer app with the [**Add file**](#file-section) option. Once added, these files can be programmed onto the device.

### Device Memory Layout

In the **Device Memory Layout**, you can read the name, address range, and size of a memory section by hovering the mouse cursor over one of the memory sections. This option is possible only after loading a memory layout.

![Memory section details](./screenshots/programmer_with_device.png "Memory section after selecting a device")

!!! note "Note"
If the device has readback protection enabled, you will not be able to read its memory.
In such cases, the information about application core being protected is displayed in the **Device Memory Layout** and the [**File**](#file) options **Read**, **Write**, and **Save as file** are disabled.

In the File section, you can add files to the **File Memory Layout** graphic, reload, and remove them.
## Feedback tab

When adding files with the **Add file** button, you can select the files either from the drop-down list of previous files or by browsing to the file destination.
The Feedback tab lets you send feedback about nRF Connect Programmer application to the application development team.

#### About Tab
## About tab

You can view application information, restore settings to default, access source code, and documentation. You also can find information on the selected device, access support tools, and enable verbose logging.

![nRF Connect for Desktop Programmer About tab](./screenshots/nRF_Connect_for_Desktop_Prog_about.png "nRF Connect for Desktop Programmer About tab")

#### Log
## Log

The Log panel allows you to view the most important log events, tagged with a timestamp. Each time you open the app, a new session log file is created. You can find the Log panel and its controls below the main application window.
The Log panel allows you to view the most important log events, tagged with a timestamp. Each time you open the app, a new session log file is created. You can find the Log panel and its controls, below the main application Window.

- When troubleshooting, to view more detailed information than shown in the Log panel, use **Open log file** to open the current log file in a text editor.
- To clear the information currently displayed in the Log panel, use **Clear Log**. The contents of the log file are not affected.
Expand Down
Loading

0 comments on commit 74965ef

Please sign in to comment.