When [antoker] is working on a microcontroller project, he often has to write short bits of test code to make sure everything in his circuit is working properly. This is a time-consuming task, and a while back he started on a small side project. It’s a command line interface for a microcontroller that allows him to send short commands to the uC over a serial connection to play around with the ADC, UART, and GPIO pins.
[antoker]’s tiny Unix-like environment is based on modules that can keep track of the time, print the current commands and stack to a terminal, and query things like the current speed of the uC and the available Flash and RAM.
This tiny shell also has scripting capabilities and a jump function, making this a true programming language, however minimal it is. Right now [antoker]’s work is available for the TI Stellaris and Tiva series microcontrollers, and a video of a scripted Larson scanner is available below.
This is great. Seriously needed if you spend anytime on microcontrollers you’re unfamiliar with.
I have done something similar on 8-bit processors: Z8, Z180, 8051,
68HC908 and ATmega. It evolved from a ROM monitor and runs as a
“task” in a big event loop whenever the serial port collects a line of
text. It has bare editing and doesn’t bother with anything beyond
read/print hex. Anything else is luxury on a 8-bitter as it takes up
about 1.5k byte of code space and minimal RAM in additional to the line
buffer.
It is very useful to toggle I/O, set/dump memory or run small functions
in the background while the rest of the code is running.
I’ve always wanted to write something like the vxworks tornado shell . So convenient…. it is one of the things I love about working with vxworks (particularly dbgLib)
Or you could use something like eLua (a scripting language for microcontrollers, interactive so can type commands or small programs).
Runs on various hosts (STM32, LM3S), Stellaris launchpad port has been done, though not part of official version yet.
Too bad there’s already a shell like environment in the Tivaware tools …. ;)