RTOS is an acronym for Real-Time Operating System. It is a computer or microcontroller operating system in which events are processed very quickly to produce an output. These events are typically real-world inputs, but they can also be things which are scheduled to occur at or within specific intervals. By "quickly", less than one second delay is certainly meant, with 1 millisecond to 100 milliseconds being more likely, expected and predictable response times.
Multitasking should be a fairly well-understood term. In this case, this is a cooperative multitasking operating system (OS) as opposed to a preemptive multitasking OS. There are simply not sufficient resources (i.e., RAM) in the native ATmega328P to implement, preemptive task switching and be responsive as well. There would be enough on the 1284P and 2560 to do that, but in order to keep the OS as similiar as possible across devices, this was not done. The SSG MIRTOS facilitates cooperative multitasking, using the microcontroller's native FLASH (program) memory, SRAM and EEPROM. More than 30 tasks may be configured and executed concurrently, on a timed basis.
Interactive means that the OS has a command processor and that commands may be issued via the single 328P serial port (or first serial port for the 1284P and 2560) and that the OS will interpret and act upon the commands interactively with the user. Most commands which would block (i.e., not return until they have completed) are changed so that they return quickly and are processed in the background, or as time permits. The most noticeable examples are the display (or dump) command, used to display the contents of SRAM, EEPROM and non-system FLASH and the edit and iHex commands, to be the able to change the contents of SRAM, EEPROM and non-system FLASH memory.
There is online documentation for the built-in interactive commands which MIRTOS supports, listed by the first letter of each one's method of access.
MIRTOS is extensible, which means that the built-in system commands which can be entered interactively may also be extended to new commands. The command extensions make it easy to intercept, add, change, or even selectively bypass any interactive command that comes with the Operating System. This flexibility allows the user the opportunity to create the desired command environment.
The command scripts feature allows all of the interactive commands (both original and extended) to be stored as text in either EEPROM or FLASH memory then interpreted and executed sequentially. This is particularly useful when initializing the unit after a reboot.
MIRTOS does NOT have a bootloader. It doesn't need one, since it is an Operating System, which is running continuously. It does have the ability to both display (read) and restore (write) the contents of SRAM and EEPROM, as well as the portions of FLASH memory which are not used by the OS. Also, it need not be stopped and restarted to make a programming change. If one is familiar with a PLC (Programmable Logic Controller), MIRTOS works in much the same way, with the ability to make programming changes, even remotely by radio, while processing continues.
The MIRTOS Operating System exposes 125 system function calls for application programs to use. These are all contained in the upper 16 KBytes of FLASH memory. In addition, slightly less than 2 KBytes of MCU FLASH memory are used for the system character strings, leaving a little over 14 KBytes of the total 32 KBytes of MCU FLASH memory available for application program use.
MIRTOS contains built-in drivers for the Nordic Semiconductor® nRF24L01+ 2.4GHz Transceiver and the WorldSemi® WS2812B LEDs. Supporting these two protocols simplifies both internode communication and status display tasks.
MIRTOS does NOT have a "delay" command, but implements desired or necessary time delays using timers, executing the command once the timer has expired and/or other conditions have been met.
MIRTOS is a great tool for learning how to program in Assembly Language. Small Assembly routines are the and access to system functions make it a very friendly environment for experimenting with Assembly without a lot of pain. There are many debugging tools and examples as well as the ability to make changes very quickly with the iHex support. This means changes can be made "on the fly", without needing to stop and start the MCU. This makes it a great tool for learning how to program in AVR Assembly Language.
It is also important to note very early on that MIRTOS is copy-protected in the MCU. It is NOT free software. It only comes preloaded on an Atmel ® ATmega 328P, ATmega1284P, or ATmega2560 microcontroller or a device which uses that processor.
See the Features webpage for a more complete list
of MIRTOS features as well as the explanation of the constant and variable
naming convention used.