Target family usage notes
This section documents usage notes for certain target types.
Nordic Semiconductor
nRF51 family
See SoftDevice for notes about handling firmware containing SoftDevice images.
nRF52 family
See SoftDevice for notes about handling firmware containing SoftDevice images.
Unlocking of flash security, also called APPROTECT, is supported. For more, see the security and protection documentation.
SoftDevice
The nRF51 and nRF52 series have support for so-called “SoftDevice” firmware, which implements Nordic’s Bluetooth LE or other wireless protocol API. When firmware containing a SoftDevice is loaded, the SoftDevice region of flash is locked. In order to reprogram the flash sectors containing the SoftDevice image, a mass erase must first be performed. This can potentially cause issues with flash programming if one is not aware of this requirement.
For a development workflow with firmware using a SoftDevice, no extra steps are required.
PyOCD will by default scan flash sectors when programming flash in order to only erase and program sectors whose contents are changing. Since normally the SoftDevice sectors do not change during development, pyOCD will skip over these sectors.
In addition, a chip erased performed with a SoftDevice in flash will erase only the non-SoftDevice sectors. For example,
running pyocd erase --chip
on such a device will leave the SoftDevice intact and erase all other sectors.
However, any case where the SoftDevice sectors are being erased requires a prior mass erase. This includes changing the SoftDevice variant or version, as well as switching to firmware that doesn’t include a SoftDevice. Mass erase is a separate operation. It mostly functions like a chip erase, but can also be used to unlock devices that have APPROTECT enabled.
To perform a mass erase:
pyocd erase --mass
NXP
Kinetis family
Unlocking of flash security is supported for all Kinetis targets. For more, see the security and protection documentation.
HDSC
HC32L110
The documentation for this chip states that no external pull-up resistors are required on the SWD lines due to the internal pull-up hardware. Testing has found this to be largely inaccurate. Most debug probes will require an external 4.7kΩ pull-up resistor between Ports P27/P31 and V+.