Embedded & Real Time Operating Systems INTRODUCTION
MicroC/OS-II Real-time kernel developed by Jean J. Labrosse for embedded systems Open-Source Portable Can manage up to 64 tasks up to version 2.8, however newest version 2.83 and newer supports 254 tasks Free with textbook for educational use Certified in an avionics product by the Federal Aviation Administration (FAA) for use in commercial aircraft Demonstrated as safe & robust enough for safety-critical systems
Portable? MicroC/OS-II is written in ANSI C language This allows it to be adapted to a supporting processor with little modification Port defines a real-time kernel that has been adapted to a microprocessor or a microcontroller Port is necessary because not all of the code can be written in the portable ANSI C code Some code, the processor specific code must be written in assembly Assembly language is NOT portable
Other Embedded Real Time Operating Systems Operating Systems comparable to MicroC/OS-II FreeRTOS http://www.freertos.org/ Salvo http://www.pumpkininc.com/
Development Environment Processor Programmable Integrated Circuit PIC18F452 Microcontroller Programming Language The code ANSI C C/C++ Assembly Compiler the translator for the processor Translates programming language into binary MPLAB C18 for PIC18F452 Programmer (Hardware Device) Programmer (Software that operates the Hardware Device)
PIC Microcontroller PIC18F452 34 max possible I/Os Sink/Source 25mA on each I/O up to 300mA total 8 inputs capable of analog Two PWM capable outputs
The linker brings all the compiled files (object files) together Compiler Compiler software we use have assemblers & C compilers built into them A linker is packaged with these compilers as in most compiler software packages The linker is used to coordinate all of the parts of a single program Source files become Object files after compilation Programmers typically use multiple C/C++ source files in conjunction with additional assembly files
PICKit2 PICkit 2 Microcontroller Programmer takes advantage of Microchips Full-Speed USB device
Embedded Systems, Real Time Embedded Systems, RTOS, & Embedded & RTOS As we continue, we will distinguish between the following Embedded Systems Real Time Systems Real Time Embedded Systems Real Time Operating Systems (RTOS) Embedded & Real Time Operating Systems
Real Life Examples of Embedded Systems Embedded systems @ home Security systems Cable and satellite boxes for televisions Home theater systems Telephone answering machines
Real Life Examples of Embedded Systems Embedded systems @ work Internet Very large collection of embedded systems interconnected using various networking technologies Network End-points Print Devices Cable Modems Enterprise Network Routers Telephone answering machines
Defining an Embedded Systems Embedded Systems: Class of dedicated computer systems designed for specific purposes Some define as system that doesn t look like a PC but has a computing system Digital Camera Smart Toaster MP3 Player
Defining an Embedded Systems BUT THIS is NOT always true Better definition: Computing systems with tightly coupled hardware and software integration, that are designed to perform a dedicated function The word embedded reflects that these systems are integral part of larger system, embedding system
Embedded Systems Embedded Systems involve some type of processor Traditionally general purpose processors were used Embedded Systems are moving away from using general purpose processors Now special purpose processors are utilized in Embedded Systems
General Purpose Processor Found in personal computers Complex, provide full scale of functionalities Designed to suite various applications Ex: modern processors have built-in memory management unit (MMU) for multi-taskingcapability General purpose operating systems Math co-processors for fast floating-point operations
Problems with using General Purpose Processors for Specific Applications Result in large: Power consumption Heat production Size
Embedded Processors Specialized processor, such as a DSP Can have built-in integrated devices Limited in functionality Produces low heat Consumes low power Not necessarily the fastest clock speed
Example of Embedded Processor Personal Digital Assistant (PDA) device: Doesn t have floating-point co-processor *either not needed or software emulation is sufficient Probably is 16-bit instead of 32-bit or more Probably only a 200Mhz CPU *interactive and display-intensive only
Example of Embedded Processor Toys Xbox: 733Mhz processor Playstation II has even slower processor than that Amazing Amanda (Utilizes RFID & DSP technology)
Real Time Embedded Systems Real-Time systems are systems that respond to external events in a timely fashion Response time is guaranteed Real-Time system doesn t have to be embedded but can be if desired Ex: embedded or non-embedded real-time system PID Motor Driver Ex: non-embedded real-time system Water Treatment Plant (Prospect, NY) A Real-Time system that is embedded is considered a Real-Time Embedded System