Solutions for 8/16/32 bit CPUs:
SEGGER Software Development Tools and RTOS
embOS: Real time Operating System
embOS is a priority-controlled multitasking system, designed to be used as an embedded operating system for the development of real time applications for a variety of microcontrollers.It is a high-performance tool that has been optimized for minimum memory consumption in both RAM and ROM, as well as high speed and versatility.
Highlights:
Throughout the development process of embOS, the limited resources of microcontrollers have always been kept in mind. The internal structure of the realtime operating system (RTOS) has been optimized in a variety of applications with different customers, over a period of more than 5 years, to fit the needs of the industry.Fully source-compatible RTOS are available for a variety of microcontrollers, making it well worth the time and effort to learn how to structure realtime programs with real time-operating systems.
embOS is highly modular. This means that only those functions that are needed are linked, keeping the ROM size very small. The minimum memory consumption is little more than 1 kb of ROM and about 30 bytes of RAM (plus memory for stacks). A couple of files are supplied in source code form to make sure that you do not lose any flexibility by using embOS and that you can customize the system to fully fit your needs.
The tasks that are created by the programmer can easily and safely communicate with each other using a complete palette of communication mechanisms such as semaphores, mailboxes and events.
Features of embOS include:
- Preemptive scheduling: Guarantees that of all tasks in READY state the one with the highest priority executes, except for situations where priority inversion applies.
- Round-robin scheduling for tasks with identical priorities.
- Preemptions can be disabled for entire tasks or for sections of a program.
- Up to 255 priorities: Every task can have an individual priority => the response of tasks can be precisely defined according to the requirements of the application.
- Unlimited number of tasks(limited only by the amount of available memory).
- Unlimited number of semaphores (limited only by the amount of available memory).
- 2 types of semaphores: resource and counting.
- Unlimited number of mailboxes (limited only by the amount of available memory).
- Size and number of messages can be freely defined when initializing mailboxes.
- Unlimited number of software timers (limited only by the amount of available memory).
- 8-bit events for every task.
- Time resolution can be freely selected (default is 1ms).
- Easily accessible time variable.
- Power management: Unused calculation time can automatically be spent in halt mode.
- Power-consumption is minimized.
- Full interrupt support: Interrupts can call any function except those that require waiting for data, as well as create, delete or change the priority of a task. Interrupts can wake up or suspend tasks and directly communicate with tasks using all available communication instances (mailboxes, semaphores, events).
- Very short interrupt disable-time => short interrupt latency time.
- Nested interrupts are permitted.
- embOS has its own interrupt stack (usage optional).
- Frame application for an easy start.
- Debug version performs run time checks, simplifying development.
- Profiling and stack check may be implemented by choosing specified libraries.
- Monitoring during run time via UART available (embOSView).
- Very fast, efficient yet small code.
- Minimum RAM usage.
- Core written in assembly language.
- Interfaces "C" and/or assembly.
- Initialization of microcontroller hardware as sources.
Supported CPUs
embOS has been ported to a variety of CPUs and development environments. SEGGER constantly add new devices to the list. If your microcontroller is not supported yet, please contact us at info@carnica-technology.com.- Altera NIOS/NIOS2
- Analog Devices ADuC702x (ARM7 TDMI)
- Atmel SAM7/SAM7X/SAM7S/AT91SAM9x/AVR/ATmega/AVR32
- Freescale Coldfire
- FUJITSU F2MC-16LX/FR30/FR50/FR60/FR70
- Infineon C16x
- LuminaryMicro CortexM3
- Microchip PIC24
- National Semiconductor CR16C
- NEC V850/V850E/V850ES/78K0/K0S/K0R/78K4
- Renesas R8C/M16C6x/M16C80/M32C/R32C/M7700/SH2/H8/H8S/H8SX
- STMicroelectronics ST7/ARM STR7xx/STR9xx/CortexM3/
- Texas Instruments MSP430x/MSP430
- TOSHIBA TLCS900