nr_micro_shell Integration
Overview
Use this skill to integrate nr_micro_shell as a compact command console. Keep the first port minimal: verified character I/O, one read-only command, bounded buffers, and explicit handling for destructive commands.
When To Use
Use this skill when:
- The user wants a tiny shell/CLI on an MCU and mentions nr_micro_shell.
- Commands are not recognized, input is garbled, completion/history fails, or shell processing blocks firmware.
- The target needs a lower-footprint alternative to larger embedded shells.
Do not use this skill when raw UART is not proven. Use embedded-serial-log-debug first.
First Questions
Ask for:
- Target MCU/RTOS/compiler and nr_micro_shell version/source.
- Transport: UART, USB CDC, RTT, TCP, or custom stream.
- Polling, interrupt, DMA, or task-based input model.
- Command table/registration approach.
- Maximum command length, argument count, and stack/RAM budget.
- Whether shell is enabled in production builds.
Integration Checklist
-
Verify raw I/O. Confirm single-character RX/TX before attaching shell parsing.
-
Configure buffers. Set command line, history, and output buffers within RAM limits.
-
Register one safe command. Start with
help,version, orstatus. -
Validate argument parsing. Commands must reject missing, too many, or invalid arguments.
-
Bound output. Avoid long blocking output that starves watchdogs or RTOS tasks.
-
Guard risky commands. Reset, erase, format, calibration, flash writes, or network writes need build guards or authentication.
Common Failures
- RX callback stores characters but shell process function is never called.
- Command table is not linked or is optimized out.
- Backspace/newline behavior mismatches terminal settings.
- Long command output blocks system timing.
- Debug shell remains enabled in production without restrictions.
Verification
Before claiming nr_micro_shell works:
- State transport, scheduling model, buffer sizes, and command registration method.
- Confirm raw RX/TX,
help, one custom read-only command, invalid command, and argument error behavior. - Confirm risky commands are absent, disabled, or guarded.
Example
User:
想用 nr_micro_shell 做一个串口调试命令行。
Agent:
- Asks for UART path, scheduler model, buffer size, and production policy.
- Verifies raw serial, then registers
status. - Tests command parsing and guards destructive commands.