This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

RTT Viewer with nrfjprog/ jflash/jflash-lite is not working

Hello All,

There are several issues where I can see RTT viewer is not working along with nrfjprog tool etc....

I am also facing similar issue where RTT viewer(version : V7.52d) is not sending input if I flash HEX  file through below means,

1. nrfjprog command line tool: nrfjprog -r -f NRF52 --program binary.hex --sectorerase

2. Segger J-Flash:  Version V7.52d

3. Segger J-Flash Lite:  Version V7.52d

logs in RTT viewer:

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

Same software HEX file if I run through SES IDE, then I could see RTT viewer is transmitting data.

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

Below is my code on RTT data reception side on nrf52 controller side,

uint32_t uicr_eol_testmode = 0;
nrf_gpio_cfg_output(LED_GREEN);
nrf_gpio_pin_write(LED_GREEN, 1); // Turn off LED
/* Read UICR CUSTOMER[20] register for EOL test mode */
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
uicr_eol_testmode = NRF_UICR->CUSTOMER[UICR_EOL_TESTMODE_CUSTOMER_REGIDX];

/* if UICR CUSTOMER[20] register value is 0x1234 then enter EOL test mode */
if (uicr_eol_testmode == 0x1234)
{
SEGGER_RTT_Init();
//nrf_gpio_pin_write(LED_BLUE, 0); // Turn on LED
/* Enter into EOL test mode */
SEGGER_RTT_SetTerminal(0); // Select terminal 0
SEGGER_RTT_WriteString(0, "Entered RTT EOL test mode!\n");
char acIn[10];
int c;
unsigned NumBytesav = sizeof(acIn);
unsigned NumBytes;
while(1)
{
if (SEGGER_RTT_HasKey()) {
NumBytes = SEGGER_RTT_Read(0, &acIn[0], NumBytesav);
if (NumBytes) {
nrf_gpio_pin_toggle(LED_GREEN); // Turn on LED
SEGGER_RTT_Write(0, &acIn[0], NumBytes);
SEGGER_RTT_WriteString(0, "RTT read!\n");
}
}
}
}

Not able to understand the dependancy or relation w.r.t these softwares. please help.

Related