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.