Sarbide babesa desgaitu nRF52 gailuetan

Raspberry Pi bat erabiliz

nRF52832

Ariketa nRF52832 PUZ-a daraman txartel batekin egin da. Hau nRF52 serieko potentzia txikiko, Bluetooth Low Energy (BLE) mikrokontrolatzaileen familiako unitate bat da, Nordic Semiconductor enpresak garatua.

Bere ARM Cortex-M4 prozesatzaile ahaltsuaren bidez, BLE konektibitatea darabilten smartwatch, kirol tracker eta IoT aplikazioetan erabili ohi da.


sarbide-atakaren babesa

Lehenespenez, nRF52 serieko mikrokontrolatzaileek Access port protection edo sarbide-atakaren babesa aktibaturik ekartzen dute. Hori dela eta ondorengo ohar-mezua erakusten dute ST-Link V2 egokigailu batez konektatzerakoan:


nRF52 device has a CTRL-AP dedicated to recover the device from AP lock.

A high level adapter (like a ST-Link) you are currently using cannot access

the CTRL-AP so 'nrf52_recover' command will not work.

Do not enable UICR APPROTECT.

Babes hau kendu ezean, ezinezkoa izango da mikrokontrolatzailea programatzea. Desgaitu ahal izateko, gainera, beharrezkoa da CTRL-AP(Control Access Port) ataka erabiltzea eta hori low-level edo maila-baxuko egokigailu baten bidez egitea ezinbestekoa da, J-link/Segger motakoa adibidez.

Hala ere, bada eskuragarriagoa gerta daitekeen irtenbiderik ere, Raspberry Pi bat erabiltzea!


rpi egokigailua prestatu

Raspberry Pi, Single Board Computer(SBC) edo txartel soileko ordenagailua programatzaile edo egokigailu gisan erabiltzeko hainbat dohikuntza egin behar dira. Software mailan, openocd instalatu eta konfiguratu beharko da, ondorengo urratsak jarraituz:


cd ~

sudo apt-get update

sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev

git clone "https://review.openocd.org/openocd"

cd openocd

./bootstrap

./configure --enable-sysfsgpio --enable-bcm2835gpio

make

sudo make install

Konfiguraketa fitxategi bat sortu:


cd ~

mkdir nrf52

nano nrf52/openocd-rpi-swd.cfg

Bertan rpi egokigailuari eta helburuko nRF52832 mikrokontrolatzaileari dagozkien ezarpenak zehaztu:


#openocd-rpi-swd.cfg 2025-04-22 ar. 16:02

#nRF52832 Target

source [find interface/raspberrypi-native.cfg]


#transport

transport select swd


#settings

adapter gpio swclk 11

adapter gpio swdio 25

adapter srst delay 100

adapter srst pulse_width 100

#reset_config srst_only srst_nogate


#target

set WORKAREASIZE 0x4000

set CHIPNAME nrf52832

source [find target/nrf52.cfg]


#commands

init

targets

reset halt

Komunikaziorako GPIO pinak baliatuz 2 hariko Serial Wire Debug(SWD) protokoloa erabiliko da.

GPIOnRF52832
GNDGND
+3.3VVCC
11 SCLKSWCLK
25SWDIO

radioland nrf52832 beacon


babesa desgaitu

Terminal bat irekiz mikrokontrolatzailea programazio moduan jarri:

openocd -f ~/nrf52/openocd-rpi-swd.cfg

Aldi berean, beste terminal batean telnet bidezko konexioa ezarri:

telnet localhost 4444

Ondorengo komandoek sarbide-atakaren babesa desgaituko dute:

> nrf52_recover
> nrf52832.dap apreg 1 0x04 0x01

Amaitzeko, nRF52832 txartelaren erabateko ezabatzea eragin denez, SoftDevice softwarea instalatzea gomendatzen da, honek Bluetooth Low Energy(BLE) protokoloa berrezarriko du. Beraz, txartelari dagokiona nrf52 direktorioan kokaturik dagoela ziurtatu eta flasheatu:

> flash write_image s132_nrf52_7.x.x_softdevice.hex
> reset halt
> targets
> verify_image s132_nrf52_7.x.x_softdevice.hex
> reset run
> targets
> exit

SoftDevice Nordic Semiconductor enpresak eskaintzen du nRF5 SDK-rekin batera. Iturburu-kodea ez dago publikoki eskuragarri.

Eginda! 🎉

Iturriak: devzone.nordicsemi.com, blog.dbrgn.ch, docs.nordicsemi.com-1, docs.nordicsemi.com-2, learn.adafruit.com, github.com