一:nRF52常用指令
- 芯片恢复出厂设置:nrfjprog –recover
- 擦除整个芯片:nrfjprog –eraseall
- 芯片复位:nrfjprog –reset
- 烧录程序校验并复位:nrfjprog –program MERGED.hex –sectorerase –verify -r
二:nRF9160常用指令
- 烧录modem固件:nrfjprog –verify –program mfw_nrf9160_1.3.6.zip
- 烧录app程序:nrfjprog –program app.hex –sectorerase –verify -r
三:nRF5340常用指令
- 复位网络核指令:nrfjprog -f NRF53 –coprocessor CP_NETWORK –recover
- 擦除网络核程序指令:nrfjprog -f NRF53 –coprocessor CP_NETWORK –eraseall
- 烧录核程序指令:nrfjprog -f NRF53 –coprocessor CP_NETWORK –program net.hex –verify
- 复位应用核指令:nrfjprog -f NRF53 –recover
- 擦除应用核程序指令:nrfjprog -f NRF53 –eraseall
- 烧录应用核程序指令:nrfjprog -f NRF53 –program app.hex –verify
三:nRF54L15常用指令
- 使用nrfjprog下载程序:
nrfjprog --family nRF54L --recover nrfjprog --family nRF54L --program “zephyr.hex” --sectorerase --verify --reset
- 使用nrfutil下载程序:
nrfutil device recover nrfutil device program --firmware zephyr.hex --traits jlink --options reset=RESET_DEBUG,verify=VERIFY_READ,chip_erase_mode=ERASE_RANGES_TOUCHED_BY_FIRMWARE
四:合并文件相关指令
- 将文件A.hex和文件B.hex和合并成一个名称为MERGED.hex 的文件:mergehex.exe -m A.hex B.hex -o MERGED.hex
五:nrfutil相关指令
nRF52840生成app dfu升级包
- 生成dfu私钥:nrfutil keys generate private.pem
- 根据dfu私钥生成dfu公钥:nrfutil keys display –key pk –format code private.pem –out_file dfu_public_key.c
- dfu生成settings文件:nrfutil settings generate –family NRF52840 –application APP.hex –application-version 3 –bootloader-version 2 –bl-settings-version 2 ST.hex
- dfu生成升级包:nrfutil pkg generate –key-file private.pem –hw-version 52 –sd-req 0x0100 –application APP.hex –application-version 0xFF APP.zip
- 通过BLE dfu升级,通过mac识别设备:nrfutil dfu ble -ic nRF52840 -pkg APP.zip -p COM6 -a D3:F1:96:04:74:0A -f
- 通过BLE dfu升级,通过蓝牙名称识别设备:nrfutil dfu ble -ic nRF52840 -pkg APP.hex -p COM6 -n Nordic_UART -f
- 通过串口dfu升级:nrfutil dfu serial -pkg APP.zip -p COM8 -b 115200
- 通过USB dfu升级:nrfutil dfu usb-serial -pkg APP.hex -p COM7 -b 115200
六:帮助文件
-
nrfutil Usage: 需要下载nrfutil.exe并添加到环境变量
nrfutil.exe [OPTIONS] COMMAND [ARGS]...
Options:
-v, --verbose Increase verbosity of output. Can be specified more
than once (up to -v -v -v -v). [x>=0]
-o, --output <filename> Log output to file
--help Show this message and exit.
Commands:
dfu Perform a Device Firmware Update over serial, BLE, Thread, Zigbee
or ANT transport given a DFU package (zip file).
keys Generate and display private and public keys.
pkg Display or generate a DFU package (zip file).
settings Generate and display Bootloader DFU settings.
version Display nrfutil version.
zigbee Zigbee-related commands and utilities.
- nrfjprog Usage: 需要安装nrf-command-line-tools
-------------------------------------------------------------------------------
-q --quiet Reduces the stdout info. Must be combined with
another command.
-h --help Displays this help.
-v --version Displays the nrfjprog and dll versions.
--force Bypass all questions to continue.
Recommended to use this flag when scripting.
--log [<path>] Enable logging.
Default output file is "log.log".
Set the <path> option to modify log file
location and/or name.
If the parent folder of <path> does not
yet exist, nrfjprog will attempt to create it.
Logger output is always appended
to the file.
Must be combined with another command.
--jdll <file> Uses the Segger's JLinkARM dll specified in the
given file path instead of searching for the
latest version of Segger's JLinkARM dll. Must be
combined with another command.
Limitations:
Unicode paths are not supported
--config <file> Uses the nrfjprog settings file specified in the
given file path instead of searching for the
default config.toml file in the installation
folder. TOML configuration files may contain
both QSPI and nrfjprog target settings.
Must be combined with another command.
--storeconfig <file> Stores the nrfjprog settings loaded from
--config / --ini / --qspiini and command line
to <file> in toml formatting.
This option can be used to translate old .ini
files to .toml files for example.
--ini <file> Deprecated: Use a TOML file with --config instead.
Uses the nrfjprog settings file specified in the
given ini file path instead of searching for the
default config.toml file in the installation
folder. Must be combined with another command.
--qspiini <file> Deprecated: Use a TOML file with --config instead.
Uses the QSPI settings file specified in the given
file ini path instead of searching for the default
config.toml file in the installation folder.
Must be combined with either --erasepage, --memrd,
--memwr, --program, --verify, --readqspi or
--qspieraseall commands.
Limitations:
For nRF51 devices, the operation is not available.
For nRF52 devices, the operation is not available
for devices without a QSPI peripheral.
For nRF91 devices, the operation is not available
--qspicustominit Deprecated, this operation does nothing.
-i --ids Displays the serial numbers of all the debuggers
connected to the PC.
--expand Expands the information printed by --ids. This is.
useful for seeing addition information on
network connected debug probes.
--com Displays a list of the serial port associated
with all connected debuggers. If combined with
--snr, it will display all comports associated
with this debugger
--deviceversion Displays the type of devices connected.
If combined with --snr, it will display the device
associated with this debugger.
If not combined with --snr, it will display the device
associated with all connected debuggers.
-f --family <family> Selects the device family for the operation. Valid
argument options are NRF51, NRF52, NRF53, NRF91,
and UNKNOWN.
If UNKNOWN family is given, an automatic family
detection of the device is performed. Note that
providing the actual family is faster than
performing the automatic family detection. If
--family option is not given, the default is taken
from nrfjprog.ini. Must be combined with another
command.
-s --snr <serial_number> Selects the debugger with the given serial number
among all those connected to the PC for the
operation. Must be combined with another command.
--ip [<hostname>|<ip>|<tunnel>] Provide a network connection string
for target debugger. This string can be an IPv4
address or a hostname. The port to connect to can
be specified with the --port option.
Passing --ip without any arguments is equivalent
to passing --iface ip.
It is possible to connect to a debugger running
in tunneling mode. Shortened tunnel connection
string format is not supported.
An example of a tunnel mode connection string is:
"tunnel:123456789:pwd:jlink-europe.segger.com"
Read more about JLink connection types at
"https://wiki.segger.com/J-Link_Remote_Server".
Must be combined with another command.
--port <port> Selects which port to use when establishing a
network connection to a debugger. Must be used
together with the --ip option.
Default port is 19020.
-c --clockspeed <speed> Sets the debugger SWD clock speed in kHz
resolution for the operation. The valid clockspeed
arguments go from 4 kHz to 50000 kHz. If given
clockspeed is above the maxiumum clockspeed
supported by the emulator, its maximum will be
used instead. If --clockspeed option is not given,
the default is taken from nrfjprog.ini. Must be
combined with another command.
--iface <USB|IP> [USB|IP] Sets which interfaces to use when
searching for and connecting to debuggers.
Both USB and IP can be listed at the same time.
By default, only USB connected debuggers are
targeted unless the --ip option is present.
This option is mainly intended to be
used together with --snr and --ids.
Must be combined with another command
--recover Erases all user available non-volatile memory and
disables the read back protection mechanism if
enabled.
--rbp <level> Enables the readback protection mechanism. Valid
argument options are CR0 and ALL.
Limitations:
For nRF52 devices, the CR0 argument option is
invalid.
Side effects:
After an --rbp operation is performed, the
available operations are reduced.
For nRF51 devices, and if argument option ALL is
used, --pinreset will not work on certain older
devices.
For nRF52 devices, only --pinreset, --debugreset
or --recover operations are available after --rbp.
--pinresetenable Enables the pin reset by the use of UICR PSELRESET
registers.
Limitations:
For nRF51 devices, the command is not available.
For nRF53 devices, the command is not available.
For nRF91 devices, the command is not available.
-p --pinreset Performs a pin reset. Core will run after the
operation. Can be combined with the --program
operation. If combined with the --program
operation, the reset will occur after the
flashing has occurred to start execution.
--hardreset Performs a hard reset. Core will run after the
operation. Can be combined with the --program
operation. If combined with the --program
operation, the reset will occur after the
flashing has occurred to start execution.
Limitations:
For nRF51 devices, the command is not available.
For nRF53 devices, the command is not available.
For nRF91 devices, the command is not available.
-r --reset Performs a soft reset by setting the SysResetReq
bit of the AIRCR register of the core. The core
will run after the operation. Can be combined with
the --program operation. If combined with the
--program operation, the reset will occur after
the flashing has occurred to start execution.
-d --debugreset Performs a soft reset by the use of the CTRL-AP.
The core will run after the operation. Can be
combined with the --program operation. If combined
with the --program operation, the debug reset will
occur after the flashing has occurred to start
execution.
Limitations:
For nRF51 devices, the --debugreset operation is
not available.
For nRF52 devices, the --debugreset operation is
not available for nRF52832_xxAA_ENGA devices.
-e --eraseall Erases all user available program flash memory and
the UICR page. Can be combined with the
--qspieraseall operation.
Limitations:
For nRF51 devices, if the device came from Nordic
with a pre-programmed SoftDevice, only the user
available code flash and UICR will be erased.
--qspieraseall Erases all the flash of the external memory device
with the help of the QSPI peripheral. Note that
depending on the external memory device's erase
speed the operation might take minutes. Can be
combined with the --eraseall operation.
Limitations:
For nRF51 devices, the operation is not available.
For nRF52 devices, the operation is not available
for devices without a QSPI peripheral.
For nRF52 devices, the operation is only available
for devices connected to an external memory
device. To determine if an external memory device
is connected, nrfjprog checks MemSize parameter
from the QspiDefault.ini file or the QSPI
configuration ini file that is given with the
--qspiini option.
For nRF91 devices, the operation is not available
--eraseuicr Erases the UICR page.
Limitations:
For nRF51 devices, the operation is available only
if the device came from Nordic with a
pre-programmed SoftDevice.
For nRF91 devices, the operation is not available
to erase uicr, please use --eraseall
--erasepage <start[-end]> Erases the flash pages
starting at the flash page containing the start
address and ending at the page containing the end
address (not included in the erase). If end
address is not given, only one flash page will be
erased. If your device is equipped with a QSPI
peripheral, the pages to erase belong to the XIP
region of the device, and an external memory
device is present, this command erases 4 kB pages
from the external memory device. The first address
of the region is considered as address 0 of the
external memory device. To determine if an
external memory device is present, nrfjprog checks
the MemSize parameter from the QspiDefault.ini
file or from the QSPI configuration ini file given
with the --qspiini option.
Limitations:
For nRF51 devices, the page will not be erased if
it belongs to region 0.
--program <hex_file> [--sectorerase | --chiperase | --sectoranduicrerase |
--recover] [--qspisectorerase | --qspichiperase]
Programs the specified image_file into the device.
Supported file formats are .hex, .ihex, .elf,
.axf, and .bin. A valid format must be specified
by the filename extension.
If the target area to program is not erased, the
--program operation will fail unless an erase
option is given. Valid erase operations for
the internal flash memory are --recover,
--sectorerase, --sectoranduicrerase and
--chiperase. If --chiperase is given, all the
available user non-volatile memory, including
UICR, will be erased before programming. If
--recover is given, all the available user
non-volatile memory, including UICR, will
be erased before programming, even if the
device is readback protected.
If --sectorerase is given, only the targeted
non-volatile memory pages excluding UICR will
be erased. If --sectoranduicrerase is given,
only the targeted non-volatile memory pages
including UICR will be erased. Note that the
--sectoranduicrerase and --sectorerase
operations normally take significantly longer time
compared to --chiperase operation so use them with
caution. If your device is equipped witha QSPI
peripheral and an external memory device is
present, data targeting the XIP region will be
written to the external memory device.
The first address of the XIP region
is considered as address 0 of the external memory
device. To determine if an external memory device
is present, nrfjprog checks the MemSize paramter
from QspiDefault.ini file or from the QSPI
configuration ini file given with the --qspiini
option. If the target area to program is not
erased, the --program operation will fail unless
an erase option is given. Valid erase operations
for the external memory device are --qspichiperase
and --qspisectorerase. If --qspichiperase is
given, the external memory device will be erased.
If the --qspisectorerase is given, only 4kB pages
pages from the targeted external memory device
will be erased. Note that --qspichiperase
operation may take several minutes. The --program
command can be combined with the --verify
operation. It can also be combined with either the
--reset, --debugreset, --hardreset and the
--pinreset operations. The reset
will occur after the flash operation in order to
start the execution.
Limitations:
For --hardreset limitations, see the usage
text for the respective command.
For nRF51 devices, the --sectoranduicrerase
operation is not available.
For nRF51 devices, if the image_file provided
contains sectors belonging to region 0, the
--program operation will fail.
For nRF51 devices, the --qspisectorerase and
--qspichiperase operations are not available.
For nRF52 devices, the --qspisectorerase and
--qspichiperase operations are not available
unless the device is equipped with a QSPI
peripheral and an external memory is connected. To
determine if an external memory is present, the
MemSize parameter from QspiDefault.ini file or
from the QSPI configuration ini file given with
the --qspiini option is evaluated.
For nRF91 devices, the --qspisectorerase and
--qspichiperase operations are not available.
--memwr <addr> --val <val> Writes to the provided
address in memory with the help of the NVM
Controller or, if your device is equipped with a
QSPI peripheral and the address to write belongs
to the XIP region, with the help of the QSPI
peripheral to an external memory device. To
determine if an external memory device is present,
nrfjprog checks the MemSize parameter from
QspiDefault.ini file or the QSPI configuration ini
file that is given with the --qspiini option.
The first address of the region is considered as
address 0 of the external memory device. If the
target address is flash (either internal or in the
external memory device) and not erased, the
operation will fail. This command can be combined
with the --verify operation.
--ramwr <addr> --val <val> Writes to memory without
the help of the NVM Controller to the provided
address. If the target address is in non-volatile
memory, --ramwr will have no effect unless the
non-volatile memory controller (NVMC) has been
previously configured by the user for a write
operation. Can be combined with the --verify
operation.
--verify [<image_file>] [--fast] The provided image_file
contents are compared with the contents in the
device code flash, RAM, UICR and XIP regions for
devices equipped with a QSPI peripheral connected
to an external memory device, and fail if there is
a mismatch.
Supported file formats are .hex, .ihex, .elf,
.axf, and .bin. A valid format must be specified
by the filename extension.
To determine if an external memory
device is present, nrfjprog checks MemSize
parameter from QspiDefault.ini file or from the
QSPI configuration ini file given with the
--qspiini option. If the optional --fast parameter
is given, nrfjprog will calculate a hash of the
flash target area using a sha256 algorithm and
compare it to the expected hash instead of
reading back the actual contents of the device's
flash in order to speed the operation. It can be
combined with the --program, --memwr and --ramwr
operations if provided without the image_file
parameter.
Limitations:
For nRF51 devices, the --fast verifying option
is not available
For nRF91 devices, the --fast verifying option
is not available.
--memrd <addr> [--w <width>] [--n <n>] Reads n bytes from the
provided address. If width is not given, 32-bit
words will be read if addr is word aligned,
16-bit words if addr is half word aligned, and
8-bit words otherwise. If n is not given, one
word of size width will be read. The address and
n must be aligned to the width parameter. The
maximum number of bytes that can be read is 1 MB.
The width must be 8, 16 or 32. If your device is
equipped with a QSPI peripheral, and the addresses
to read belong to the XIP region, the QSPI
peripheral is used to read from the external
memory device if present. To determine if an
external memory device is present, mrfjprog checks
the MemSize parameter from QspiDefault.ini file or
the QSPI configuration ini file that is given with
the --qspiini option. The first address of the
region is considered as address 0 of the external
memory device.
Limitations:
A single --memrd instruction cannot be used to
read addresses from both the external memory
device and the nRF device.
--halt Halts the CPU core.
--run [--pc <pc_addr> --sp <sp_addr>] Starts the CPU. If --pc and
--sp options are given, the pc_addr and sp_addr
are used as initial PC and stack pointer. For
pc_addr to be valid its last bit must be one. For
sp_addr to be valid it must be word aligned.
--readuicr <file> Reads the device UICR and stores it in the given
file name. Can be combined with --readram,
--readcode and --readqspi. If combined, only one
instruction can provide a file name.
Supported output formats are .hex, .ihex, .elf,
.axf, and .bin. A valid format must be specified
by the filename extension.
--readcode <file> Reads the device flash and stores it in the given
file name. Can be combined with --readuicr,
--readram and --readqspi. If combined, only one
instruction can provide a file name.
Supported output formats are .hex, .ihex, .elf,
.axf, and .bin. A valid format must be specified
by the filename extension.
--readram <file> Reads the device ram and stores it in the given
file name. Can be combined with --readuicr,
--readcode and --readqspi. If combined, only one
instruction can provide a file name.
Supported output formats are .hex, .ihex, .elf,
.axf, and .bin. A valid format must be specified
by the filename extension.
--readqspi <file> Reads the QSPI-connected external memory and
stores it in the given file name. Can be combined
with --readuicr, --readcode and --readram. If
combined, only one instruction can provide a file
name.
Supported output formats are .hex, .ihex, .elf,
.axf, and .bin. A valid format must be specified
by the filename extension.
--readregs [first_register] [second_register] Reads the cpu registers.
If no optional arguments are specified, all
CPU registers in the selected core are printed.
If optional argument first_register is specified
only that register is printed.
If both first_register and second_register is
specified the registers between and including
first_register and second_register are printed.
--coprocessor <coprocessor> Connects the device to the
selected coprocessor. Valid arguments are
CP_APPLICATION and CP_NETWORK.
If --coprocessor option is not used,
CP_APPLICATION will be the target of the other
operation. Must be combined with another command.
新手必知
海量第三方学习资源.
超全常用工具与文档.
本站常用资源下载.
常见问题搜索.
QQ群: 542294007.
文章引用自:元仓库 OLIB.cn.