Install
$ agentstack add skill-changde-tang-embedded-skills-jlink-rtt ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →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
--sendfor 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 from0x20000000, 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
-aparameter 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
- Connect J-Link to target chip via SWD interface
- Locate RTT control block: prioritize J-Link SDK built-in auto-scan, fall back to Python manual scan on failure
- Start RTT session, periodically call
rtt_read()to read buffer - According to
--sendschedule, callrtt_write()to send data at regular intervals - Real-time output UTF-8 decoded content to terminal
- Disconnect on
Ctrl+Cor 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.
- Author: changde-tang
- Source: changde-tang/embedded-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.