Embedded Os [Linux & Co.]

  • 10,317 views
Uploaded on

Today, the boundaries between the general purpose PCs, the servers and the embedded systems are more blurred. These computers are sharing same platforms, same peripherals. For example, an x86/Mac PC …

Today, the boundaries between the general purpose PCs, the servers and the embedded systems are more blurred. These computers are sharing same platforms, same peripherals. For example, an x86/Mac PC can be used as a server, an x86/PowerPC CPU can be used in an embedded system like portable navigation device (PND). On the other way, the popular embedded processor StrongARM was a powerful desktop PC processor for the DEC workstation, and the embedded systems often also act servers, like NAS (Network Attached Storage). As same as the hardware suppliers, the OS suppliers port their products into the desktop PCs, servers and embedded systems.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • nice one..
    Are you sure you want to
    Your message goes here
  • Excellent.......
    Are you sure you want to
    Your message goes here
  • very nice
    Are you sure you want to
    Your message goes here
  • superb...........really
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
10,317
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
670
Comments
4
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. http://dev.emcelettronica.com/print/book/export/html/51676 Your Electronics Open Source (http://dev.emcelettronica.com) Home > Resources > Embedded OS > Embedded OS By allankliu Created 05/03/2008 - 04:10 RESOURCES Electronics Embedded OS [Linux & Co.] Overview [Wikipedia] [1], an embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, sometimes with real-time computing constraints. It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal computer, can do many different tasks depending on programming. Embedded systems have become very important today as they control many of the common devices we use. Today, the boundaries between the general purpose PCs, the servers and the embedded systems are more blurred. These computers are sharing same platforms, same peripherals. For example, an x86/Mac PC can be used as a server, an x86/PowerPC CPU can be used in an embedded system like portable navigation device (PND). On the other way, the popular embedded processor StrongARM was a powerful desktop PC processor for the DEC workstation, and the embedded systems often also act servers, like NAS (Network Attached Storage). As same as the hardware suppliers, the OS suppliers port their products into the desktop PCs, servers and embedded systems. Nothing cuts to the heart of a development project like the choice of OS. Whether it's a tiny scheduler or kernel, an open-source distribution, a tightly wound real-time operating system, a fully featured commercial RTOS, or no OS at all, it drives all downstream software decisions and many hardware decisions as well. A survey shows us what's important to those who get a say in the choice of OS. The criteria are: 1. Real-time performance 2. Processor compatibility 3. Software tools 4. No royalties 5. Price 6. Memory footprint 7. Simplicity 8. Middelware 9. Compatibility 10. Services & Features 1 din 41 16.05.2008 21:40
  • 2. http://dev.emcelettronica.com/print/book/export/html/51676 11. Open-source 12. Familiarity 13. Hardware suppport 14. Customization 15. Supplier's reputation 16. Support 17. Popularity 18. Other products Reference [2] The resource of OS for embedded systems. [3] A market research report for embedded OSes Wikipedia resources of OS for embedded systems [1] 01 Non RTOS According to a survey in Embedded System Design, more than a quarter of embedded systems now in development won't have an OS at all. None. a little over 28% of all our survey-takers said the system they're designing now won't have so much as a tiny scheduler or task switcher. 2 din 41 16.05.2008 21:40
  • 3. http://dev.emcelettronica.com/print/book/export/html/51676 Main Software Loop In this design, the software simply has a loop. The loop calls subroutines, each of which manages a part of the hardware or software. This method is called round-robin. The round-robin method is very popular in small microcontrollers. Interrupt Controlled System Some embedded systems are predominantly interrupt controlled. This means that tasks performed by the system are triggered by different kinds of events. An interrupt could be generated for example by a timer in a predefined frequency, or by a serial port controller receiving a byte. These kinds of systems are used if event handlers need low latency and the event handlers are short and simple. Usually these kinds of systems run a simple task in a main loop also, but this task is not very sensitive to unexpected delays. Sometimes the interrupt handler will add longer tasks to a queue structure. Later, after the interrupt handler has finished, these tasks are executed by the main loop. This method brings the system close to a multitasking kernel with discrete processes. Most of above shedulers or kernels are developed in house. They are simple and easy-to-use. They are not RTOS because they are only sheduler part of an OS. A complete OS includes scheduler, task switching and resource allocation, memory management. Non Real Time Embedded OS Not every embedded operation systems are designed for real-time, for example, Windows CE is not a real-time OS, but it is a multi-tasking OS. But you know, as time goes by, things change a lot. These OSes are improved by using real-time kernels or patches. A lot of similiar OSes have already faded out. Such as PPSM from Motorola (for its 68K/ARM DragonBall CPU), Zaurus from Sharp. The propertiary OS for TX MIPS micro from Toshiba (Sorry I forgot name of OS, but it was popular in Toshiba's Taiwanese customers)... Palm OS, running on Motorola/Freescale 68K based Dragonball CPU and ARM9 CPU, Development tools available freely from official web site and 3rd parties. [4] [5] EPOC/Symbian, supports ARM CPU. leader in mobile phone market. 3 din 41 16.05.2008 21:40
  • 4. http://dev.emcelettronica.com/print/book/export/html/51676 02 RTOS Commercial RTX, CMX Real-Time Multi-Tasking Operating System products support most embedded Microcontrollers, Microprocessors and DSPs. We also support more than 30 compiler vendors. Please contact us for further information on any of our RTOS products such as CMX-RTX(tm), CMX-TINY+(tm), CMX-TCP/IP(tm), CMXBug(tm), and CMXTracker(tm).CMX supports most of the 8/16/32/64 bit microcontrollers, microprocessors and DSPs. CMX also has [6] configuration an studio for development. RTXC, by Embedded Power Corportation. Now its name is Quadros. RTXC is RTOS and integrated middleware in TCP/IP, CAN, USB, IrDA, FS, GUI. The development tools are RTXC Bridge and VisualRTXC, ported to ARM, ColdFire, Blackfin. [7] Integrity Green Hills Software is a well-known OS supplier for embedded system. Its offerings are INTEGRITY/velOSity/u-velOSity OSes, and IDEs of MULTI, AdaMULTI, DoubeCheck, TimeMachine, as well as many compilers, communication software and off-the-shelf product designs. It supports development platform on Linux and Windows PC and SPARC workstation. The supporting microprocessor list is too long. You'd better to check it out by [8] yourself. But most of the supporting processors are 32bit architectures. 4 din 41 16.05.2008 21:40
  • 5. http://dev.emcelettronica.com/print/book/export/html/51676 Keil offers a OS/Kernels for 8051/C166/ARM processors. They are:RTX51 tiny, free available in its kit, limited features.RTX51 full, enhanced features with CAN bus.RTX166 Tiny, similiar to RTX51 but for C16x platform.ARTX-166 Advanced, C16x/ST10, full features includes Flash file system and TCP/IP stack.RL-ARM Real-Time Library, complete RT kernel for ARM7/9/Cortex-M3, with Flash file system and TCP/IP suites. [9] AMX, Since its introduction by KADAK in 1980, AMXTM has been recognized as a superior RTOS which meets the most critical needs of the most challenging real time applications, and yet remains easy to use and simple to understand. It supports x86,68K,ColdFire,PPC32 PowerPC, ARM7, ARM9,StrongARM,Xscale,and MIPS32. [10] embOS, developed by SEGGER Microcontroller, it is a real-time operating system for embedded applications designed to offer the benefits of a fully fledged multitasking system at minimum cost. The kernel is fully interruptible and so efficient that it can be used in very time critical situations. The memory footprint in both RAM and ROM is so small that it can be used in single-chip applications, leaving maximum room for the user-program. [11] iRMX, by tenAsys. The gold standard in real-time software for the x86 architecture, the iRMX III operating system, has been proven in thousands of demanding real-time applications worldwide. Designed specifically to support Intel x86 architecture 32-bit CPUs and associated chipsets, the iRMX III operating system is highly configurable from a small-footprint, kernel-only solution to a full-service, hard real-time operating system. iRMX configurations support PC [12] and non-PC architectures, such as Multibus and Multibus II. 5 din 41 16.05.2008 21:40
  • 6. http://dev.emcelettronica.com/print/book/export/html/51676 Nucleus, by Mentor Graphics, The Nucleus OS can significantly improve the performance, response times and memory system utilization in many complex systems, where other bulkier OS choices add significant overhead and do not provide real-time response. [13] OS-9, by RadiSys. Top-ranked in recent RTOS surveys, OS-9 is proven world-wide in thousands of products representing hundreds of embedded applications, including industrial automation & control, automotive, and medical instrumentation. [14] OSE, a powerful platform for the design of real-time embedded systems. OSE's message based architecture instantly and seamlessly achieves powerful simplicity in complex and distributed systems. [15] 6 din 41 16.05.2008 21:40
  • 7. http://dev.emcelettronica.com/print/book/export/html/51676 pSOS, aqcuired by Wind River Inc, now. It used to be a major embedded OS, but the current status is unknown. [16] Phoenix-RTOS is the realtime operating system intended for embedded systems. The main goal of the Phoenix-RTOS project is to develop free, portable, small and well-designed realtime operating system for embedded hardware platforms like SBC (Single Board Computers), SOM (System on Module) and SoC (System On Chip). It supports IA32, PowerPC and ARM. [17] QNX, Its ultra-reliable nature means QNX software is the preferred choice for life-critical systems such as air traffic control systems, surgical equipment, and nuclear power plants. And its cool multimedia features have QNX software turning up in everything from in-dash radios and infotainment systems to the latest casino gaming terminals. [18] Salvo, Salvo has modest ROM and miniscule RAM requirements. This mean that you can have event-driven, priority-based, multitasking applications in nearly any single-chip microcontroller, with plenty of room left for your application. It is a product of Pumpkin, Inc. It supports [19] 8051/ARM/AVR/M68HC11/MSP430/PIC12/PIC24/PIC32/TMS320 DSP. 7 din 41 16.05.2008 21:40
  • 8. http://dev.emcelettronica.com/print/book/export/html/51676 ThreadX is an advanced Real-Time Operating System (RTOS) designed specifically for deeply embedded applications. ThreadX has many advanced features, including its picokernel? architecture, preemption-threshold,? and a rich set of system services. Combined with its superior ease-of-use, ThreadX is the ideal choice for the most demanding of embedded applications. It is developed by Express Logic. [20] VRTX, by Mentor Graphics as well. Product strategy is unclear [21] VxWorks, Wind River. The microsoft in embedded OS. VxWorks could be the most widely used OS in embedded world. [16] 8 din 41 16.05.2008 21:40
  • 9. http://dev.emcelettronica.com/print/book/export/html/51676 XMK, The eXtreme Minimal Kernel (XMK) is a real-time operating system (RTOS) that is designed for minimal RAM/ROM use. It supports AVR, H8 and many 8 bit microcontrollers. [22] Open Source OSEK/VDX, a OS standard used in automotive distributed applications. OSEK is not a OS, but a standard interface and design guideline for OS. [23] TRON, The Real-time Operating system Nucleus, ITRON is a Japanese open standard for a real-time operating system (RTOS) initiated under guidance of Ken Sakamura. This project aims to standardize the RTOS and related specifications for embedded systems, particularly small-scale embedded systems. The ITRON RTOS is targeted for consumer electronic devices, such as mobile phones and fax machines. Various vendors (most Japanese) sell their own [24] implementations of the RTOS. 9 din 41 16.05.2008 21:40
  • 10. http://dev.emcelettronica.com/print/book/export/html/51676 FreeRTOS is a portable, open source, mini Real Time Kernel - a free RTOS. This site shows how a complete embedded real time system can be created from a Windows host using quality open source development tools (where available). It supports ARM7/MSP430/AMD/AVR/8051. [25] MicroC/OS-II. uC/OS-II is a highly portable, ROMable, very scalable, preemptive real-time, multitasking kernel (RTOS) for microprocessors and microcontrollers. It supports many processor architectures including ARM7 and ARM9; and can handle up to 255 tasks, providing services such as semaphores, message mailboxes and task management. uC/OS-II has been ported to many microcontrollers and microprocessors. The OS is not free for commercial purpose [26] with a lot of middleware from 3rd parties. InfraBed is a portable RTOS that has been ported to the ARM7 architecture using the Keil tools. It is developed by Embedded Artists. Free for non-commercial purpose. [27] TinyOS. Crossbow Technology, Inc. announces the availability of the TinyOS 2.0 Operating System for Crossbow's advanced IRIS motes. This enables developers to use the latest generation software on the latest generation Sensor Network hardware. The sensor is using AVR microcontroller with open source GNU compiler. [28] 10 din 41 16.05.2008 21:40
  • 11. http://dev.emcelettronica.com/print/book/export/html/51676 eCos is an open source, royalty-free, real-time operating system intended for embedded applications. The highly configurable nature of eCos allows the operating system to be customised to precise application requirements, delivering the best possible run-time performance and an optimised hardware resource footprint. A thriving net community has grown up around the operating system ensuring on-going technical innovation and wide platform support. eCOS [29] supports ARM, CalmRISC, FR-V, H8, IA32, M86K, AM3x, MIPS, NEC v8xx, PowerPC, SPARC, SuperH. Detail list please check their web page for hardware [30]. Nut/OS is an intentionally simple RTOS for the ATmega128, which provides a minimum of services to run Nut/Net, the TCP/IP stack. It supports AVR-GCC/ICCAVR/CodeVisionAVR. [31] AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. AvrX contains approximately 40 API in the Six categories. The Kernel is written in assembly. Total kernel size varies from ~500 to 700 words depending upon which version is being used. Since the kernel is provided as a library of routines, practical applications take up less space because not all functions are used. It supports IAR assembler and GCC Ccompiler. [32] 03 Embedded Linux and Unix platforms Community 11 din 41 16.05.2008 21:40
  • 12. http://dev.emcelettronica.com/print/book/export/html/51676 The Linux/Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU). uClinux first ported to the Motorola MC68328: DragonBall Integrated Microprocessor. The first target system to successfully boot is the PalmPilot using a TRG SuperPilot Board with a custom boot-loader created specifically for our Linux/PalmPilot port. [33] ARM Linux is a port of the successful Linux Kernel to ARM processor based machines, lead mainly by Russell King, with contributions from many others. ARM Linux is under almost constant development by various people and organisations around the world. [34] Distributions Most of the major players in Linux distribution have embedded versions. These distributions are a bundle of software components, the specific distribution will bring a lof of application specific software module with the Linux kernel. [35] Linux/RT, by TimeSys Red Hat,For many years, embedded systems have been developed and deployed with the help of Red Hat's open source tools and runtime software. Because of the diverse range of embedded devices and systems, Red Hat has developed a process to customize tools and runtime software for a wide range of architectures, boards, and systems. [36] 12 din 41 16.05.2008 21:40
  • 13. http://dev.emcelettronica.com/print/book/export/html/51676 BlueCat embedded Linux from LynuxWorks, based on the 2.6 kernel, is an implementation of the Linux model enhanced for use in embedded systems ranging from small consumer-type devices to large-scale, multi-CPU systems. [37] MontaVista? With over 2,000 customers developing on MontaVista Linux across a wide range of industries, MontaVista is the undisputed leading provider of commercial-grade Linux development platforms for intelligent devices and communications infrastructure. [38] Debian's multiarchitecture support, vendor independence, social contract and huge software base make it an attractive choice for all sorts of systems, but the main distribution is very much aimed at systems with at least desktop resources (big hard discs, plenty of memory). Embedded Debian tries to strip Debian down to be a much smaller system whilst keeping all the good things. [39] 13 din 41 16.05.2008 21:40
  • 14. http://dev.emcelettronica.com/print/book/export/html/51676 Embedix. With its 20-year experiences of embedded devices development and solid accomplishments as an embedded Linux pioneer, Lineo strongly boosts ubiquitous network era by providing sophisticated-and-robust software products and reliable services for the customers to attain faster time-to-market. [40] emKnoppix is a distribution of Knoppix tailored for use in embedded systems. Idea for such a distribution arose when I was playing with Knoppix for remastering and building an embedded Linux platform at the same time [41] Pico/Linux, The Open Source Handheld OS powered by PicoGUI and Linux. [42] GeeXboX is a free embedded Linux distribution which aims at turning your computer into a so called HTPC (Home Theater PC) or Media Center. Being a standalone LiveCD-based distribution, it's a ready to boot operating system than works on any Pentium-class x86 computer or PowerPC Macintosh, implying no software requirement. You can even use it on a diskless computer, the whole system being loaded in RAM. [43] 14 din 41 16.05.2008 21:40
  • 15. http://dev.emcelettronica.com/print/book/export/html/51676 LynxOS, Lynixworks offers many RTOS and Linux distribution for real-time and embedded systems. [44] RTAI, RealTime Application Interface for Linux - which lets you write applications with strict timing constraints for your favourite operating system. Like Linux itself this software is a community effort. RTAI supports x86, x86_64, PowerPC and ARM. [45] Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an [46] abstraction layer between the hardware and the rest of the software stack. UNIX Because the relationship between UNIX and Linux, we put embedded UNIX in this section as well. 15 din 41 16.05.2008 21:40
  • 16. http://dev.emcelettronica.com/print/book/export/html/51676 Embedded FreeBSD. The Embedded FreeBSD project provides tools and documentation for using FreeBSD in an embedded environment. The goal is that FreeBSD can be used to produce products and systems that are competitive in the embedded world. FreeBSD has some unique advantages for embedded developers. [47] NetBSD. The NetBSD Operating System is the most portable OS in the world, and many of the supported hardware platforms are suited for embedded applications. While embedded development with NetBSD doesn't differ a lot from regular Unix development, some special cases are in the build processes. [48] polyBSD is a quot;multiquot;-purpose (hence quot;polyquot;) framework for building embedded systems that address certain aspects of information assurance. Essentially, it is a minimalistic install of NetBSD (i386) designed to run from a 256MB flash card or USB memory stick. [49] [50] Embedded OpenBSD MAC 16 din 41 16.05.2008 21:40
  • 17. http://dev.emcelettronica.com/print/book/export/html/51676 Mac OS X (Linux based, for desktop PC and Apple TV) [51] References [52] The Consumer Electronics Linux Forum (CELF), a California Non-Profit Corporation, is focused on the advancement of Linux as an open source platform for consumer electronics (CE) devices. 04 Embedded Windows Platform Windows Windows, the major OS in the desktop PCs, it has many derivates in the servers and embedded systems. Microsoft offers embedded OSes in different names with different configurations for different applications, sometimes the names are really confusing the developers. But their cores are almost identical. [53] Windows Embedded CE, a real embedded OS for x86, ARM, MIPS and SH4 processors, it has a lot of names for different applications and different time. The very first name is Windows CE, then Pocket PC, Windows Mobile, Windows CE.NET, Windows automotives, Microsoft Auto. But they are leaves from same trunk. The first version of Windows CE is a subset of Win32, more or less an embedded OS derivates from Windows NT, which is not a real-time OS, not latest [54] Windows CE 6.0 becomes a native real time multi-task OS. Its run time price is USD3-16.In order to develop Windows Embedded CE, you must 17 din 41 16.05.2008 21:40
  • 18. http://dev.emcelettronica.com/print/book/export/html/51676 download following software packages from Microsoft's website.Visual Studio 2005 Trial, Team Suite SP1 for developing application software, Windows Embedded CE 6.0 Evaluation Edition and update ReleasesWindows Embedded CE 6.0 Platform Builder for porting OS to your hardware. Windows XP Embedded is an embedded version of Windows XP Professional. Windows XP Embedded incorporates the latest embedded-enabling capabilities, such as support for multiple boot, storage, deployment, and management technologies. Windows XP Embedded SP2 Features 2007 support new features includes File Based Write Filter and USB support. Its run time price is USD99.The Windows XP Embedded SP2 Features 2007 has integrated necessary [55] tools for Windows XPe Windows Embedded for Point of Service is developed for POS applications, which requries a lot of business periperal devices. Its minimum requirement is x86 CPU running over 233MHz. The runtime cost is pretty high, about USD100 for each POS PC. But WEPOS indeed brings some benefits to POS applications. [56] Windows Vista for Embedded (x86). Unlike the other Windows Embedded operating systems, Windows Vista for Embedded Systems is not a componentized offering and the image is not customizable by the developer. Windows Vista for Embedded System was designed for the desktop but is available for fixed-function or dedicated embedded systems. The Windows Vista? for Embedded Systems product line offers two choices: Ultimate and Business versions. Windows [57] Vista Ultimate for Embedded Systems offer BitLocker Driver Encrytion and SUA for running UNIX applications on the OS. 18 din 41 16.05.2008 21:40
  • 19. http://dev.emcelettronica.com/print/book/export/html/51676 Windows Automotive. Windows Automotive 5.0 is built on the Microsoft Windows CE 5.0 operating system, a hard, real-time, 32-bit, memory-protected operating system kernel with support for a variety of processor architectures. Windows Automotive 5.0 also features the Automotive User Interface Toolkit (AUITK), a sophisticated graphical user interface framework design tool and compact runtime environment. [58] Microsoft Auto, another new name of Windows CE 6.0 in automotives. A comprehensive hardware/software reference platform, Microsoft Auto enables carmakers and suppliers to more quickly and easily build a solution that provides consumers with features such as mobile device integration, speech recognition, and infotainment. [59] SYNC, powered by Microsoft Auto software, is Ford’s new fully integrated, voice-activated in-car communications and entertainment system for mobile phones and digital music players.DOS clones for embedded systemBecause Microsoft discontinued DOS support long time ago. A lot of OS suppliers start to port this legacy OS in embedded system. Most of these DOS-like OSes are free, even open source solutions. Since DOS is not a real time OS, there are some [60] RT extensions for these OSes. DOS clones for embedded system Because Microsoft discontinued DOS support long time ago. A lot of OS suppliers start to port this legacy OS in embedded system. Most of these DOS-like OSes are free, even open source solutions. Since DOS is not a real time OS, there are some RT extensions for these OSes. 19 din 41 16.05.2008 21:40
  • 20. http://dev.emcelettronica.com/print/book/export/html/51676 Dr-DOS (Digital Research/Caldera) [61] RTKernel, On Time RTOS-32 (Win32 subset in 16K RAM/ROM), from On Time. [62] JK microsystems, Inc. [63] [64] eRTOS [65] 2net Development tools 20 din 41 16.05.2008 21:40
  • 21. http://dev.emcelettronica.com/print/book/export/html/51676 Jungo WinDriver for Windows CE, Windows Mobile. [66] 05 Java Approach Usually developers consider Java as a programming language, but Java is a complete operating enviornment including some parts belong to OS. If you have experience of porting Java runtime to embedded system. You will find that RTOS is not a necessary requirement for porting Java. Java Platform, Micro Edition (Java ME) provides a robust, flexible environment for applications running on mobile and other embedded devices—mobile phones, personal digital assistants (PDAs), TV set-top boxes, and printers. [67] Using Java SE for Embedded enables you to develop highly functional, reliable, portable and secure applications for today's more powerful embedded systems. [68] JavaOS. The project is aimed at creating an Operating System using JAVA as the core language. Although this may sounda bit absurd, in the long run this project will definitely be successfully completed with the help of more members. [69] 21 din 41 16.05.2008 21:40
  • 22. http://dev.emcelettronica.com/print/book/export/html/51676 JX is a Java operating system that focuses on a flexible and robust operating system architecture. The JX system architecture consists of a set of Java components executing on the JX core that is responsible for system initialization, CPU context switching and low-level domain management. The Java code is organized in components which are loaded into domains, verified, and translated to native code. Main-stream operating systems and traditional microkernels [70] base their protection mechanisms on MMU-provided address space separation. Protection in JX is solely based on the type safety of the intermediate code, the Java bytecode. Aplix Embedded Java. JBlend? meets these needs while providing a fast, compact and robust embedded software product that enables Java technology on resource constrained consumer devices. These reasons are why JBlend? has been so successful. [71] [72] Embedded PERC 2.2 Java-compliant environment (Newmonics). Aonix, a decades-long industry leader in real-time and safety critical tools, and pioneer in Java platform technologies, has brought together these two strengths to meet the needs of today's mission critical developers. As a participant in the Java Community Process and a key contributor to the development of standardized RTSJ profiles for hard real-time and safety critical applications, Aonix is uniquely positioned to make this technology a reality. simpleRTJ. A virtual machine with a small memory footprint aimed at embedded systems and real-time operating systems. Only a subset of Java is supported (e.g. no double type). The following processors are supported (according to the site): MC68302, MC68376/332, 68HC11, 68HC16, 8051, 8051XA, various ARM derivatives, H8S/2241, STi5512 (RISC set-top-box), DSP56300, and others. This is a commercial product. However, use of the VM is free for evaluation, [73] educational and private use. 22 din 41 16.05.2008 21:40
  • 23. http://dev.emcelettronica.com/print/book/export/html/51676 The TINI (Tiny InterNet Interface) platform is aimed at connecting devices from sensors to factory equipment to a network. The TINI virtual machine (for the TINI OS operating system) has a memory footprint of less than 40 KB. It offers only part of the runtime library: java.lang, java.io, java.net and java.util. The target chip is Dallas 8051 based iButton. [74] [75] Jbed Micro Editon CLDC JVM (esmertec). The Jbed RTOS Package is a real-time capable Java Virtual Machine for embedded systems and Internet appliances. An entire application, including the device drivers, can be written in Java. Memory footprint starts at 10 KB. Runs on PowerPC 8xx, Motorola 68k family processors, ARM7TDMI, StrongArm and Coldfire. Intel and MIPS support are planned. Commercial. Demo available for download. Kaffe -- an open source Java implementation (Transvirtual Technologies)The GPL'd Kaffe virtual machine and its runtime library are a cleanroom implementation (no dependencies on Sun). There is a very impressive list of supported platforms: Embedded Linux, VxWorks, LynxOS, SMX, ThreadX, Linux (all distributions), DOS, Windows NT 4.0, Windows 98, Windows 2000, Windows CE, Solaris, SunOS, BSDI, FreeBSD, NetBSD, OSF/1, Unixware, HP-UX, [76] NextStep, OpenStep. Supported processors include ix86, Sparc, m68k, StrongARM, MIPS, Alpha, PowerPC and PARisc. Memory footprint is small, the VM can be used for embedded systems. The exact Java version is not specified, for a reference see the Kaffe Datasheet (PDF, 96 KB). KaffePC is a virtual machine for DOS, based on Kaffe. There is also a port of Kaffe to AtheOS (no AWT available). 23 din 41 16.05.2008 21:40
  • 24. http://dev.emcelettronica.com/print/book/export/html/51676 VisualAge Micro Edition (IBM) These are runtime environments for embedded systems for Windows CE, QNX, Palm, Linux. [77] Waba -- an Open Source Java-like platform for small devices (Wabasoft) A subset of the Java programming language's syntax, class file format and virtual machine, Waba is designed for embedded systems. Waba programs can usually run on a Java Virtual machine, but not vice versa. The VMs are available for PalmPilot and Windows CE devices. [78] Wonka -- an open source embedded JVM & class library (ACUNIA) A clean-room implementation of a Java virtual machine for embedded devices, with emphasis on portability and efficiency. Available for Linux (x86 and ARM), distributed under a license similar to the GPL. The Acunia went out of the business. The link is talking about other sites for Wonka. [79] Google Android Mobile Phone Platform, most of the applications are developed upon Java VM with wider APIs. [80] 24 din 41 16.05.2008 21:40
  • 25. http://dev.emcelettronica.com/print/book/export/html/51676 Java for Lego RCX. leJOS is replacement firmware for the Lego Mindstorms RCX brick - a JVM that fits within the 32kb on the RCX. Yes, you can program a Lego robot with Java! Resources [81] The source for Java Technology Collabration from Java.net. [82] This page from java-virtual-machine.net is supposed to give an overview of Java virtual machines (JVMs), Java development kits (JDKs), Java runtime environments (JREs) and related products. [83] 06 Multi-Core OS Most multiprocessing systems can be classified as either symmetric multiprocessing (SMP) or asymmetric multiprocessing (AMP). AMP involves the use of interprocessor communication to combine the efforts of multiple processors, each with its own local operating system and hardware resources. Also, AMP involves less OS overhead for each individual processor and a more traditional execution environment for applications. AMP seems like distributed system. The number of peripherals that are supported in today's multicore processors is quickly increasing. Symmetric-multiprocessing (SMP) software is expected to be quickly available to support these peripherals. Basically any OS can be ported to a SMP platform, but the developers must take care of following issues for SMP OS. - Handling of task priority or implicit synchronization - Spinlocks and synchronization - Synchronization between tasks sharing memory - Synchronization between tasks and ISRs sharing memory - Synchronization between ISRs sharing memory 25 din 41 16.05.2008 21:40
  • 26. http://dev.emcelettronica.com/print/book/export/html/51676 RTEMS (Real-Time Executive for Multiprocessor Systems) is a commercial grade real-time operating system designed for deeply embedded systems. It is a free open source solution that supports multi-processor systems. RTEMS is designed to support applications with the most stringent real-time requirements while being compatible with open standards. [84] Symbian Limited announced Symbian OS support for the ARM Symmetric Multi-processor (SMP) architecture. SMP support in future versions of Symbian OS will use multiple CPU cores to provide ;performance on demand - battery life will be improved by accessing cores only when running demanding high-end multimedia applications and powering them down when they are not in use. Symbian and ARM are working together closely on supporting Cortex-A9 MPCore [85] multicore processor-based CPUs in Symbian OS. The eT-Kernel Multi-Core Edition is a realtime OS for next-generation embedded systems with multicore. It is ideal for high performance embedded systems such as digital home appliances, automobile devices, and mobile devices. This realtime OS is loaded with features specific to multicore software development making the technology accessible even for first-time users. [86] New Express Logic ThreadX/SMP RTOS Facilitates Development on ADI's dual-core Symmetric Multi-Processing (SMP) Blackfin family. [87] 26 din 41 16.05.2008 21:40
  • 27. http://dev.emcelettronica.com/print/book/export/html/51676 Altera Japan, Ltd. in conjunction with A.I. Corporation, an embedded software distributor and the TOPPERS Project, a nonprofit organization, announced today the immediate availability of TOPPERS-Pro Multi/FDMP, a function-distributed real-time operating system (RTOS) that provides multiprocessor support for Altera’s Nios® II embedded processor, the world’s most widely used configurable soft-core processor. Targeted at a wide variety [88] of applications in the digital consumer, office equipment and automotive markets, this embedded solution addresses the performance, power consumption and radio noise emission requirements of today’s advanced systems. PolyCore Software touches every software aspect of a multi- core system below the application. [89] Resources An article for multicore SMP OS development [90] Using an symmetric multiprocessor model to build hybrid multicore designs. [91] 27 din 41 16.05.2008 21:40
  • 28. http://dev.emcelettronica.com/print/book/export/html/51676 Multicore Association. [92] 07 DSP oriented OS DSPOS, Motorola 56800E DSPs, StarCore, BlackFin DSPs, ARM7/9, features VoIP reference design and Unicoi Fusion Suite. [93] DSPnano, RoewBots' OS for PIC24, dsPIC30, dsPIC33. A signal processing operating system intended for small signal processors and small DSP networks. Offers an IDE, Compilers, Debuggers, nano-kernel, I/O, and DSP. [94] EFOS, from Vinjey, an embedded software solution and services company. [95] 28 din 41 16.05.2008 21:40
  • 29. http://dev.emcelettronica.com/print/book/export/html/51676 DSP/BIOS from TI provides a rich set of deterministic kernel services that enable developers to create sophisticated applications without compromising real-time deadlines. DSP/BIOS is highly scalable with multithreading configurations requiring as few as 1K words. The kernel services may be invoked through either a C function or an assembly language macro interface. [96] Blackfin Processor OS from ADI site. You can see a lot of well-known RTOSes have already ported to Blackfin DSP/RISC chip. [97] 08 Middleware What is middleware? Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications, allowing them to exchange data. Originally middleware is a word for large scale enterprise computing application. In embedded system, middleware is the software components running on top of operation system and offering services for applications. Embedded system is dedicated for a special prupose, therefore different embedded systems have different middleware components. Meanwhile, middleware has close relationship with the operation systems. Most of the middleware is tailor-made for specific OS. For example, uC/OS-II is popular in embedded applications. This OS has many middleware for embedded systems, such as uC/TCP-IP, uC/FS, uC/GUI, uC/USB-device, uC/USB-host, uC/FL, uC/Modbus, uC/CAN, uC/Probe and uC/BuildingBlocks, its OS components tool. I don't want to duplicate all middleware suites for mentioned OSes individually. I only list some important open source middleware for your reference. GUI 29 din 41 16.05.2008 21:40
  • 30. http://dev.emcelettronica.com/print/book/export/html/51676 Embedded Wizard (EmWi) is a PC tool for developing and prototyping platform independent Graphical User Interfaces (GUI) for embedded systems, consumer electronic devices, automotive and industry appliances. It's sophisticated and user-friendly authoring tool facilitates the design of the GUI appearance as well as the coding of the GUI behavior. It can solve almost any given 2D GUI task and enables you to develop, customize and adapt your GUI [98] across various product platforms with minimum effort. Meanwhile Tara Systems also offers middleware like DBS/EPG/Service Manager/Subtitle Decoder/Teletext Decoder/Close Caption/HTML 3.2 Browser for embedded visual systems. MiniGUI is a cross-operating-system graphics user interface support system for embedded devices, and is an embedded graphics middleware. It aims to provide a compact, fast, stable, lightweight, and cross-OS GUI support system, which is especially fit for real-time embedded systems based-on Linux/uClinux, eCos, uC/OS-II, and other traditional RTOSes, such as VxWorks, ThreadX, and Nucleus. [99] PicoGUI is an Open Source project to create a new GUI architecture designed to be usable on systems ranging from embedded to desktops. [100] QT Embedded and QPE (Qt Palmtop Environment) for Palm size handheld device from Trolltech. [101] 30 din 41 16.05.2008 21:40
  • 31. http://dev.emcelettronica.com/print/book/export/html/51676 Microwindows/Nano-X. The Nano-X Window System is an Open Source project aimed at bringing the features of modern graphical windowing environments to smaller devices and platforms. Nano-X allows applications to be built and tested on the Linux desktop, as well as cross-compiled for the target device. The Nano-X Window System was previously named Microwindows, but has been renamed due to conflicts with Microsoft's Windows trademark. [102] File System Most of the embedded File systems are ported from Linux distribution. Other file systems are tailor-made for specific RTOS. ScalingWeb is a software development team based in Ukraine. Embedded File System (EFS) is a library that allows you to create virtual file system in a single file. It can be useful when you need to create really big number of small files. It will still be blazing fast even when you have millions of files. Encryption layer could be easily added if you want security. [103] The Prex project is an open source initiative to provide a portable real-time operating system for embedded systems. Prex is designed specifically for small memory footprint platforms. It is written mainly in C language based on traditional microkernel architecture. File system is availale for download as well. [104] USB HCC embedded offers storage solution for embedded systems. From flash file system to USB desive and host. [105] 31 din 41 16.05.2008 21:40
  • 32. http://dev.emcelettronica.com/print/book/export/html/51676 libusb-win32 is an open-source driver library that enables Windows applications to access USB devices (under development). [106] PORUS, Portable USB Periperal Stack, an open source USB stack for TMS320VC5507 DSP. [107] TCP/IP It is interesting to know there are two TCP/IP stacks for embedded systems available from Swedish Institute of Computer Science. The open-source uIP TCP/IP stack provides TCP/IP connectivity to tiny embedded 8-bit microcontrollers, with maintained interoperability and RFC standards compliance. uIP was developed by Adam Dunkels of the Networked Embedded Systems group at the Swedish Institute of Computer Science but is further developed by a world-wide team of developers. [108] 32 din 41 16.05.2008 21:40
  • 33. http://dev.emcelettronica.com/print/book/export/html/51676 lwIP is a light-weight implementation of the TCP/IP protocol suite that was originally written by Adam Dunkels of the Swedish Institute of Computer Science but now is being actively developed by a team of developers distributed world-wide headed by Leon Woestenberg. [109] uC/IP (pronounced mew-kip) is a project to develop a TCP/IP protocol stack for microcontrollers. The code is based on BSD code and therefore carries the BSD licence. We do not require that you contribute changes back to us but we would sure appreciate it. [110] A small implementation of TCP/IP, includes FTP client. It has been ported to 68K, x86, 8051. [111] Database System Metakit is an efficient embedded database library with a small footprint. It fills the gap between flat-file, relational, object-oriented, and tree-structured databases, supporting relational joins, serialization, nested structures, and instant schema evolution. There is a C++ API, a Python binding called Mk4py, and a Tcl binding called Mk4tcl. You can manipulate and exchange data between any of these. [112] Others 33 din 41 16.05.2008 21:40
  • 34. http://dev.emcelettronica.com/print/book/export/html/51676 ezHomeTech SoC Software Platform [113] Rockbox is an open source firmware for MP3 players. [114] Mozilla Developer Center, developer can find source for JavaScript and XUL for system scripting and UI design. JavaScript is powerful in embedded systems as well. Although most of the embedded systems have not used that feature so far. [115] 09 Resources This open courseware from MIT provides an overview of robot mechanisms, dynamics, and intelligent controls. Topics include planar and spatial kinematics, and motion planning; mechanism design for manipulators and mobile robots, multi-rigid-body dynamics, 3D graphic simulation; control design, actuators, and sensors; wireless networking, task modeling, human-machine interface, and embedded software. Weekly laboratories provide experience with servo [116] drives, real-time control, and embedded software. 34 din 41 16.05.2008 21:40
  • 35. http://dev.emcelettronica.com/print/book/export/html/51676 The Femto OS is a very concise portable preemptive operating system (RTOS) for embedded devices with minimal ram and flash, up to say 16K flash, 1K ram. The main target is the AVR architecture, such as the ATtiny861/461/261 series. But the system is written in C with a separate port file. [117] SlideShare [118] | View [119] | Upload your own [120] 35 din 41 16.05.2008 21:40
  • 36. http://dev.emcelettronica.com/print/book/export/html/51676 [118] | View [122] | Upload your own [120] Video Resources This example shows the Femto OS without additional tasks (only idle process). 36 din 41 16.05.2008 21:40
  • 37. http://dev.emcelettronica.com/print/book/export/html/51676 This is a simple GUI written in C without a RTOS ( WinCE, Linux, .. ). The entire GUI library is less then 32K of code. Written for the FreeScale iMXS. Video from the European research project RUNES http://www.ist-runes.org/ [123] showing a road fire incident in 2012 where embedded wireless sensor network technology assists the rescue mission. Really nice video, you can check out the video list of the uploader, you will see some people who are really famous in open source embedded world. Such as the founders of uIP/LwIP...... 10 Copyright and Legal Issues As the popularity of GPL and other open source licenses, legal issues are always making noise along with the growing of embedded systems. To be frank, I am not familiar with this 37 din 41 16.05.2008 21:40
  • 38. http://dev.emcelettronica.com/print/book/export/html/51676 topic. I collection some resources for your references. In case you have any questions about it, you'd better to consult a lawyer for intelligent properties. A Legal Issues Primer for Open Source and Free Software Projects, from Software Freedom Law Center. [124] What License to Use? from O'Reilly book of Open Sources: Voices from the Open Source Revolution. [125] Why you should use a BSD-style license. [126] GNU GPL [127] 38 din 41 16.05.2008 21:40
  • 39. http://dev.emcelettronica.com/print/book/export/html/51676 Mozilla Code Licensing [128] [129] BSD licese Micrium uC/OS-II License, free for educational purpose. Not free for commercial purpose. [130] Trademarks Source URL: http://dev.emcelettronica.com/embedded-os Links: [1] http://en.wikipedia.org/wiki/Category:Embedded_systems [2] http://electronicdesign.com/HotSpot/Index.cfm?AD=1&HotSpotUrl=embeddedquot;target=quot;_blank [3] http://www.embedded.com/1999/9903/9903sr.htmquot;target=quot;_blank [4] http://pdn.palm.com/regac/pdn/index.jsp [5] http://www.symbian.com/developer/index.html [6] http://www.cmx.com/ [7] http://www.quadros.com/ [8] http://www.ghs.com/products.html [9] http://www.keil.com/rtos/ [10] http://www.kadak.com/html/indexamx.htm 39 din 41 16.05.2008 21:40
  • 40. http://dev.emcelettronica.com/print/book/export/html/51676 [11] http://www.segger.com/embos.html [12] http://www.tenasys.com/products/irmx.php [13] http://www.mentor.com/products/embedded_software/nucleus_rtos/ [14] http://www.microware.com/ [15] http://www.enea.com/templates/Extension____12767.aspx [16] http://www.windriver.com/ [17] http://www.phoenix-rtos.org/ [18] http://www.qnx.com/ [19] http://www.pumpkininc.com/ [20] http://www.rtos.com/txtech.asp [21] http://www.mentor.com/products/ [22] http://www.shift-right.com/xmk/xmk/overview.htm [23] http://www.osek-vdx.org/ [24] http://www.sakamura-lab.org/TRON/ [25] http://www.freertos.org/ [26] http://www.micrium.com/ [27] http://www.embeddedartists.com/ [28] http://www.tinyos.net/ [29] http://ecos.sourceware.org/ [30] http://ecos.sourceware.org/hardware.html [31] http://www.ethernut.de/en/software/index.html [32] http://www.barello.net/avrx/ [33] http://www.uclinux.org/ [34] http://www.arm.linux.org.uk/developer/ [35] http://www.timesys.com/quot;target=quot;_blank [36] http://www.redhat.com/services/focus/embedded/ [37] http://www.lynuxworks.com/embedded-linux/embedded-linux.php [38] http://www.mvista.com/ [39] http://www.emdebian.org/ [40] http://www.lineo.co.jp/eng/index.html [41] http://emknoppix.sarovar.org/ [42] http://picolinux.sourceforge.net/ [43] http://www.geexbox.org/en/index.html [44] http://www.lynuxworks.com/ [45] https://www.rtai.org/ [46] http://code.google.com/android/what-is-android.html [47] http://www.embeddedfreebsd.org/ [48] http://www.netbsd.org/Misc/embed.html [49] http://freshmeat.net/projects/polybsd/ [50] http://www.kernel-panic.it/openbsd/embedded/quot;target=quot;_blank [51] http://developer.apple.com/macosx/ [52] http://www.celinuxforum.org/ [53] http://www.microsoft.com/windows/embedded/ [54] http://www.microsoft.com/windows/embedded/eval/wince/default.mspx [55] http://www.microsoft.com/windows/embedded/eval/xpe/default.mspx [56] http://www.microsoft.com/windows/embedded/wepos/default.mspx [57] http://www.microsoft.com/windows/embedded/eval/vista/default.mspx [58] http://www.microsoft.com/windowsautomotive/wa5/default.mspx [59] http://www.microsoft.com/windowsautomotive/ma/default.mspx [60] http://media.ford.com/article_display.cfm?article_id=25169 [61] http://www.drdos.com/ [62] http://www.on-time.com/ [63] http://www.jkmicro.com/downloads/downloads.html [64] http://www.ertos.com/quot;target=quot;_blank [65] http://www.2net.co.uk/dos.htmlquot;target=quot;_blank [66] http://www.jungo.com/st/win_ce.html [67] http://java.sun.com/javame/index.jsp [68] http://java.sun.com/javase/embedded/ [69] https://javaos.dev.java.net/ [70] http://www4.informatik.uni-erlangen.de/Projects/JX/ [71] http://www.aplixcorp.com/en/products/jb_series/overview.html [72] http://www.aonix.com/perc.htmlquot;target=quot;_blank 40 din 41 16.05.2008 21:40
  • 41. http://dev.emcelettronica.com/print/book/export/html/51676 [73] http://www.rtjcom.com [74] http://www.ibutton.com/TINI/ [75] http://www.jbed.com/quot;target=quot;_blank [76] http://www.kaffe.org [77] http://www-4.ibm.com/software/ad/embedded/ [78] http://www.wabasoft.com/ [79] http://www.javalobby.org/forums/thread.jspa?threadID=15960 [80] http://code.google.com/android/intro/index.html [81] http://lejos.sourceforge.net/ [82] https://embeddedjava.dev.java.net/ [83] http://java-virtual-machine.net/other.html [84] http://www.rtems.com/wiki/index.php/RTEMSFeatures [85] http://www.symbian-freak.com/news/007/10/symbian_and_arm_cooperate.htm [86] http://www.esol.co.jp/english/embedded/et-kernel_multicore-edition.html [87] http://www.rtos.com/news/detail/?prid=79 [88] http://www.toppers.jp/en/index.html [89] http://www.polycoresoftware.com/ [90] http://www.embeddedintel.com/special_features.php?feature=240 [91] http://www.embedded.com/columns/technicalinsights/173402824?_requestid=278602 [92] http://www.multicore-association.org/ [93] http://www.dspos.com/ [94] http://www.rowebots.com/ [95] http://www.vinjey.com/index.html [96] http://focus.ti.com/docs/toolsw/folders/print/dspbios.html [97] http://www.analog.com/processors/blackfin/gettingStarted/operatingSystems/index.html [98] http://www.tara-systems.de/emwi/index.html [99] http://www.minigui.org/ [100] http://picogui.org/ [101] http://www.trolltech.com/ [102] http://microwindows.org/ [103] http://www.scalingweb.com/embedded_file_system.php [104] http://prex.sourceforge.net/index.html [105] http://www.hcc-embedded.com/site.php?mid=120 [106] http://libusb-win32.sourceforge.net/ [107] http://porus.berlios.de/ [108] http://www.sics.se/~adam/uip/index.php/Main_Page [109] http://www.sics.se/~adam/lwip/ [110] http://ucip.sourceforge.net/ [111] http://www.unusualresearch.com/tinytcp/tinytcp.htm [112] http://www.equi4.com/metakit/ [113] http://www.ezhometech.com/software_ssp.htm [114] http://www.rockbox.org/ [115] http://developer.mozilla.org/en/docs/Main_Page [116] http://ocw.mit.edu/OcwWeb/Mechanical-Engineering/2-12Fall-2005/CourseHome/index.htm [117] http://www.femtoos.org/index.html [118] http://www.slideshare.net/?src=embed [119] http://www.slideshare.net/allankliu/lecture24-multiprocessor?src=embed [120] http://www.slideshare.net/upload?src=embed [121] http://www.slideshare.net/allankliu/mp-os-survey?src=embed [122] http://www.slideshare.net/allankliu/embedded-systems-design-embedded?src=embed [123] http://www.ist-runes.org/ [124] http://www.softwarefreedom.org/resources/2008/foss-primer.html [125] http://www.oreilly.com/catalog/opensources/book/brian.html [126] http://alumni.cse.ucsc.edu/~brucem/open_source_license.htm [127] http://www.gnu.org/licenses/gpl.html [128] http://www.mozilla.org/MPL/ [129] http://www.freebsd.org/copyright/license.html [130] http://www.micrium.com/products/rtos/kernel/licensing.html 41 din 41 16.05.2008 21:40