AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Jlink Rtt

skill-changde-tang-embedded-skills-jlink-rtt · by changde-tang

Read SEGGER RTT log output in real-time via J-Link debugger, supporting auto-scan of RTT control block addresses, applicable for debugging GD32/STM32 and other ARM Cortex-M microcontrollers. Trigger scenarios: (1) Read RTT debug logs from microcontroller, (2) User mentions "RTT", "view logs", "read serial" (RTT scenario), "real-time logs", (3) Need to view output information when debugging microc…

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-changde-tang-embedded-skills-jlink-rtt

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-changde-tang-embedded-skills-jlink-rtt)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Jlink Rtt? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

J-Link RTT Log Reading

Invoke py_jlink_rtt.py to connect to target chip via J-Link and read SEGGER RTT terminal output in real-time. Supports auto-scan to locate RTT control block in memory, and also supports manually specifying the address.

Tool Script

Script Path: py_jlink_rtt.py Dependencies: Python 3.x + pylink library

pip install pylink

Usage

# Default parameters (GD32F303RC, auto-scan RTT address, 60 second timeout)
python py_jlink_rtt.py

# Specify chip model
python py_jlink_rtt.py -d STM32F103C8

# Manually specify RTT control block address (skip auto-scan, faster startup)
python py_jlink_rtt.py -a 0x20000B90

# Read channel 1, 30 second timeout, enable debug output
python py_jlink_rtt.py -c 1 -t 30 --debug

# Monitor logs while sending data at regular intervals (supports multiple --send)
python py_jlink_rtt.py -d GD32F303RC -t 10 --send 3:hello --send 6:test

Parameter Description

| Parameter | Short | Description | Default | | ------------- | ----- | ---------------------------------- | ------------- | | --device | -d | Target chip model | GD32F303RC | | --channel | -c | RTT channel number | 0 | | --timeout | -t | Running time (seconds) | 60 | | --rtt-addr | -a | RTT control block address (hex) | Auto-scan | | --send | -s | Send data at regular intervals (format see below) | Not send | | --debug | - | Print rtt_read return type | Off |

--send Parameter Format

--send seconds:content
  • seconds: Time point to trigger sending (relative to when connection starts)
  • content: String data to send
  • Can use multiple --send for multiple sends

Example:

# Send "hello" at 3 seconds, send "start_test" at 7 seconds
--send 3:hello --send 7:start_test

RTT Control Block Address

  • Auto-scan: The script uses a two-layer strategy: prioritize using J-Link SDK built-in rtt_start(0) to automatically locate the control block (more reliable); if SDK scan fails, fall back to Python manually scanning RAM area (starting from 0x20000000, 128KB range), searching for "SEGGER RTT" identifier. Recommended for first-time use.
  • Manual specification: If the address is known (can be obtained from J-Link RTT Viewer or map file), use -a parameter to specify for faster startup.

> Note: After each firmware recompilation, the RTT control block address may change. It is recommended to re-auto-scan or check the new map file.

Working Principle

  1. Connect J-Link to target chip via SWD interface
  2. Locate RTT control block: prioritize J-Link SDK built-in auto-scan, fall back to Python manual scan on failure
  3. Start RTT session, periodically call rtt_read() to read buffer
  4. According to --send schedule, call rtt_write() to send data at regular intervals
  5. Real-time output UTF-8 decoded content to terminal
  6. Disconnect on Ctrl+C or when timeout is reached

Performance Tuning

The script has built-in batch read optimization (max 4096 bytes per read, 10ms refresh interval), suitable for high-frequency log scenarios. If garbled text appears, check if firmware RTT log uses UTF-8 encoding.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.