2020年7月28日 星期二

nRF52 Development Kit complete setup for ubuntu 18.04

1. Download SDK
  • Here
  • target: 16.0.0 nRF5 SDK (scroll down, nRF5_SDK_16.0.0_98a08e2.zip)
2. Download nRF Command Line Tools
  • Here
  • target: 10.9.0 Linux64 -> JLink_Linux_V680a_x86_64.tgz
3. Download arm-none-eabi
  • Here
  • target: gcc-arm-none-eabi-6_2-2016q4-20161216-linux.tar.bz2

Prepare:

a. SDK
vim components/toolchain/gcc/Makefile.posix
    GNU_INSTALL_ROOT := /opt/gcc/none_eabi/gcc-arm-none-eabi-6_2-2016q4/bin/
    GNU_VERSION := 6.2 
    GNU_PREFIX := arm-none-eabi

b. Command Line Tools (JLink_Linux_V680a_x86_64.tgz)
  1. mkdir /opt/SEGGER (don't fix the name, hardcode)
  2. cp -r JLink_Linux_V680a_x86_64/ /opt/SEGGET/JLink  (don't fix the name, hardcode)

c. Compile:(for example)
  1. cd examples/ble_peripheral/ble_app_hrs/pca10040/s132/armgcc
  2. make

d. Burn FW:
  1. $ sudo make flash
  2. $ sudo make flash_softdevice
e. others:
    1. Use ldd or realelf to check the relevant libraries of SDK and command line tools

ref: bertrandmartel


Debug:


open two terminals, one is below:
JLinkExe -autoconnect 1 -device NRF52832_XXAA -if SWD -speed 4000
another is as below:
JLinkRTTClient



nRF Sniffer:

    1. Download (2.x.x is for python2)
    3. follow the user guide to do 
        a. burn "sniffer_pca10040_c87e17d.hex" to pca10040
        b. copy "SnifferAPI", "nrf_sniffer.*" to "/usr/lib/x86_64-linux-gnu/wireshark/extcap"
        c. $ sudo chmod 755 nrf_sniffer.*;
        d. $ pip2 install  pyserial
        e. $ python2 nrf_sniffer.py  -> No arguments given!  (It means successfully)
        f. $ sudo chown user_name:wireshark   /usr/bin/dumpcap
        g. $ sudo chown user_name:dialout   /dev/ttyACM0  (in my case)
        h. $ cp  -r Profile_nRF_Sniffer_Bluetooth_LE to  ~/.config/wireshark/
            (Profile_nRF_Sniffer_Bluetooth_LE is form 3.x.x)
        I. restart wireshark with user_name





wireshark:

    1. Protocol field name: bluetooth
    2. Protocol field name: btle

沒有留言:

張貼留言