Difference between revisions of "NRF52840 Development"

From HiveTool
Jump to: navigation, search
(Nordic's IPv6 Stack based UDP Examples)
(Remote Server)
Line 128: Line 128:
 
  Waiting for client connection...  
 
  Waiting for client connection...  
  
This example uses tunneling to connect to the Segger website so you can remotely access the test device remotely if it is behind a firewall.
+
This example uses tunneling to connect to the Segger website so you can remotely access the test device if it is behind a firewall.
  
 
  $ ./JLinkRemoteServer UseTunnel
 
  $ ./JLinkRemoteServer UseTunnel

Revision as of 04:29, 3 February 2018

NRF52840 Development Code


To compile, flash and reset

~/Projects/nRF5_SDK_14.2.0_17b948a/examples/peripheral/spi/pca10056/blank/armgcc

$ make
$ nrfjprog -f NRF52 --program _build/nrf52840_xxaa.hex --sectorerase
$ nrfjprog -f NRF52 --reset


Using Segger's Linux command line tools

Open three terminals in the /opt/SEGGER/JLink_V622g directory.

JLink Debugger

1. start JLinkExe then issue the following commands:

connect
NRF52840_XXAA
S
<Enter>
$ ./JLinkExe
SEGGER J-Link Commander V6.22g (Compiled Jan 17 2018 16:40:37)
DLL version V6.22g, compiled Jan 17 2018 16:40:32  

Connecting to J-Link via USB...O.K.
Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 12 2018 16:05:20
Hardware version: V1.00
S/N: 683525645
VTref = 3.300V


Type "connect" to establish a target connection, '?' for help
J-Link>connect
Please specify device / core. <Default>: NRF52832_XXAA
Type '?' for selection dialog
Device>NRF52840_XXAA
Please specify target interface:
 J) JTAG (Default)
 S) SWD
TIF>S
Specify target interface speed [kHz]. <Default>: 4000 kHz
Speed>
Device "NRF52840_XXAA" selected.


Connecting to target via SWD
Found SW-DP with ID 0x2BA01477
Found SW-DP with ID 0x2BA01477
Scanning AP map to find all available APs
AP[2]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x24770011)
AP[1]: JTAG-AP (IDR: 0x02880000)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
Cortex-M4 identified.
J-Link>

Useful commands:

h halt
g go (start running)
r reset



Real Time Terminal Client

2. start RTT client

$ ./JLinkRTTClient

###RTT Client: ************************************************************ 
###RTT Client: *           SEGGER MICROCONTROLLER GmbH & Co KG            * 
###RTT Client: *   Solutions for real time microcontroller applications   * 
###RTT Client: ************************************************************ 
###RTT Client: *                                                          * 
###RTT Client: *  (c) 2012 - 2016  SEGGER Microcontroller GmbH & Co KG    * 
###RTT Client: *                                                          * 
###RTT Client: *     www.segger.com     Support: support@segger.com       * 
###RTT Client: *                                                          * 
###RTT Client: ************************************************************ 
###RTT Client: *                                                          * 
###RTT Client: * SEGGER J-Link RTT Client   Compiled Jan 17 2018 16:40:49 * 
###RTT Client: *                                                          * 
###RTT Client: ************************************************************ 

###RTT Client: -----------------------------------------------
###RTT Client: Connecting to J-Link RTT Server via localhost:19021  Connected.
###RTT Client: Connection lost. Going to reconnect.
###RTT Client: Connecting to J-Link RTT Server via localhost:19021 .............. Connected.
SEGGER J-Link V6.22g - Real time terminal output
J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 12 2018 16:05:20 V1.0, SN=683525645
Process: JLinkRemoteServer

output from printf commands will be sent here:

SPI Initialized.
reset_AD7124.
Reset failed:  0x00

Remote Server

To debug on the local machine, remote server does not seem to be necessary but here is how to start it:

start remote server

$ ./JLinkRemoteServer 

SEGGER J-Link Remote Server V6.22g
Compiled Jan 17 2018 16:40:43

'q' to quit '?' for help
Connected to J-Link with S/N 683525645
Waiting for client connection... 

This example uses tunneling to connect to the Segger website so you can remotely access the test device if it is behind a firewall.

$ ./JLinkRemoteServer UseTunnel

SEGGER J-Link Remote Server V6.22g
Compiled Jan 17 2018 16:40:43

'q' to quit '?' for help 

Connected to J-Link with S/N 683525645

Resolving host name (jlink.segger.com)... O.K.
Tunnel server IP: 185.162.249.2
Connecting to tunnel server... O.K.
Waiting for client connection...

Resources

Debugging Nordic nRF51822 using SEGGER Real Time Terminal (RTT)

Set up the Pi as a Bluetooth-to-Ethernet router

Setup

# modprobe bluetooth_6lowpan
# lsmod|grep blue

bluetooth_6lowpan      11549  0
6lowpan                18741  8 nhc_udp,nhc_routing,nhc_mobility,bluetooth_6lowpan,nhc_fragment,nhc_dest,nhc_hop,nhc_ipv6
bluetooth             365780  30 bluetooth_6lowpan,hci_uart,bnep,btbcm,rfcomm
rfkill                 20851  6 bluetooth,cfg80211


# echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable
# hcitool lescan


Resources

Connecting the Nordic nRF52 chip to IPv6 networks via 6LoWPAN
Prepare the Linux router device by initializing the 6LoWPAN module.

IoT example using UDP

Setup a SoftDevice on the nFR52 using gcc

make flash_softdevice

Running the makefile will erase any existing SoftDevice and program the appropriate SoftDevice for the example.


Resources

https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/getting_started_softdevice.html#getting_started_sd


https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/iot_sdk_app_udp.html

Nordic's IPv6 Stack based UDP Examples

https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/iot_sdk_user_guides_ipv6_address_creation.html

https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.2.0/iot_sdk_app_ipv6_stack_udp_client_server.html

Now trying the IoT Lightweight IP example Problem? There is no 10056 directory, only 10040 Good news. This is not a show stopper. All of the PCA10040 examples will work with the nRF52840, you'll just have to do a little extra work to port it over.

In

/Projects/nRF5_SDK_14.2.0_17b948a/examples/iot/udp/lwip/client/pca10040/s132/armgcc
make flash_softdevice
nrfjprog -f NRF52 --program _build/nrf52832_xxaa.hex --sectorerase
nrfjprog -f NRF52 --reset


Resources

http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v14.2.0%2Fiot_ug_border_router.html&resultof=%22link-local%22%20%22ipv6%22%20

You should be familiar with the IPv6 addressing model as defined in specification RFC 4291 to understand the following content.