Wednesday, April 7, 2010

from: http://www.embedded.com/columns/technicalinsights/216400770;jsessionid=VAZQQD0TH04ZJQE1GHPCKHWATMY32JVN?pgno=1

ESC 2010 Sessions by track

From: http://esc-sv.techinsightsevents.com/sessions_by_track#13

Sessions By Track
Send to friendSend to friend

Each year, hundreds of ideas and topics are submitted during the ESC call for submission process. This year saw a record breaking number of submissions all geared towards the advancement of the embedded industry. After review with the ESC Advisory Board and Track Chairs, the top session proposals that address the most relevant issues facing engineers and the industry are selected. Here are the tracks you can review to customize your educational experience.”

Aerospace and Military
Build Your Own Embedded System 1
Build Your Own Embedded System 2
Designing with Open-Source Software, including Linux and Android
Developing for Windows Embedded
Embedded Internet/Telecom
Graphics, Displays, and Lighting
Green Engineering
Medical
Microprocessors/Microcontrollers/DSPs
Multicore Expo and Virtualization
Multimedia and Signal Processing, including Consumer Electronics
Networking and Connectivity
Operating System Selections, Tips, and Tricks
Programmable Logic
Project Management
Real-Time System Development
Robotics, Motor Control, and More Industrial Change Makers
Safety and Security
Software Debugging Techniques
Software Engineering
System Integration and Test
Furthering your Career Track
Special Events


Aerospace and Military
Designers in the military and aerospace fields have always been held to a higher standard, and for good reason. You just can't afford to have a failure in the field—lives are at stake. In addition, the applications here really are real-time. The classes in this track will look at the latest issues, trends, and specifications, and also show designers where they need to be looking for the most up-to-date, accurate information and specifications.

Build Your Own Embedded System 1
Hear BYOES Track Chair Rich Nass’ take on why you should attend the BYOES track.

"Hands on" is the key term for the Build Your Own Embedded Systems (BYOES) track. At this year's ESC Silicon Valley, attendees will be working with a development board that's based on Intel's latest microprocessor, the Dual Core D510 Atom, which features the company's Hyper Threading (HT) technology. In addition, the board will be running Microsoft's Windows Embedded Standard 2011 (codenamed Quebec). A host of Microsoft development tools are also included. By attending the series of BYOES classes over the course of two days, you tailor your kit to meet the specific needs of your application. And all the hardware and software is yours to keep!

Build Your Own Embedded System 2
Build Your Own Embedded System (BYOES) using the Tower System: Offered as a second (unrelated) BYOES track, attendees will receive Freescale’s Tower System, a modular, reconfigurable development platform that is theirs to keep at the end of the conference. The Tower System employs a simple 3-step concept— choose an MCU module that’s right for your needs, pick the peripheral modules that are right for your end application, and easily snap them together to form your custom development platform. Modules include MCU/MCU, memory, sensors, USB, Ethernet, WiFi, and so on. The classes within the track will help the attendee customize their Tower System and write the code needed to make the modules operate efficiently. For example, after an initial "101" course, attendees may learn how to port an RTOS; how to interface to external memory; and how to add wired and wireless networking capabilities.

Designing with Open-Source Software, including Linux and Android
Embedded Linux came on the scene quite a few years ago, and has found a home in a high number of designs. Is it right for your application? Maybe. If so, what's the difference between the various offerings, and is it really free? And how do I configure it for my application? In addition, a new OS _called Android_ is upon us, and it's also a free offering. /(strike: That new OS is Android.)/ Originally conceived as an OS for mobile handsets, this Google-designed product is becoming more prevalent than most of us would have thought possible. The classes in this track will answer all the questions related to embedded Linux, and also those that correspond to Android. Finally, if you're not designing your system with open-source software, you could be throwing money out the window. This track will cover what open source is, how it works, whether it's right for your application, and of so, how you implement it.

Developing for Windows Embedded
Microsoft has pledged to be a real player in the embedded space. That alone should make developers stand up and take notice. In this track, you'll learn the ins and outs of Microsoft's latest embedded offering, you'll find out whether it's right for you, and you'll find out how to make it work in your application.

Embedded Internet/Telecom
It seems like every embedded system is connected today, whether it's connected via an intranet or external network, or connected to the Internet. But how do you make that connection in the simplest and most cost-effective manner? This track will looks at the connection methodologies, the various medium that the systems are connected to, and the software required to finalize that connection. Even though embedded Internet technology is fairly new, data communications and telecommunications have been the mainstay of the embedded systems industries. For years, they were the dominant applications. As a result, the technologies in these fields moved quite rapidly. Hence, designers must be kept up to speed on all the latest technologies, including buses, architectures, high availability, security, and virtualization, as well as the latest software issues.

Graphics, Displays, and Lighting
The use of LEDs in embedded applications is growing at a rapid rate. If you use those LEDs wisely, you can maximize the brightness and increase the product's life, while reducing the power and cost. In addition, the displays and lighting segments in embedded systems are just beginning to embrace touch screens, and Adobe Flash, and the issue of power reduction never goes away. Finally, signage is changing rapidly through the use of LEDs. Sessions in this track will look at all the opportunities available to designers with respect to these topics.

Green Engineering
Green engineering is a topic that everyone seems to be talking about. But what exactly is green engineering, and how do I design a system that meets the proper power standards? That's exactly what you'll learn in this track, in addition to some of the latest energy producing sources, like solar, wind, new battery chemistries, etc.

Medical
Medical electronics is one of the fastest growing segments in the embedded space. This is, in large part, due to the massive venture capital investment in medical devices (almost $4B last year) due to the aging baby-boomer population. However, designing a system for the medical space carries with it some very stringent and specific requirements. For example, in many cases, those products must be simple enough to be used by the general public. In other cases, they may have ot be used in the field for varying lengths of time without access to a power recharge. And in all cases, they must pass stringent tests by various governing bodies, including the FDA. Sessions in this track will cover everything all aspects of the hardware and software development specifically as it pertains to the design of medical products.

Microprocessors/Microcontrollers/DSPs
You know you need a CPU in your system. But what form does that CPU take? Should it be a mainstream microprocessor, a DSP, an ASIC, an FPGA, a configurable core, or something else. Do I go with ARM, or one of the other architectures? What are the advantages and disadvantages of each? What if I've already selected my OS? How does that affect the choice of my CPU? These are just some of the questions/issues we'll tackle in this track.

Multicore Expo and Virtualization
Make no mistake about it, multi-core and virtualization are here, and they're not going anywhere. In fact, these two synergistic microprocessor technologies are rapidly growing in popularity across a wide variety of embedded designs. This track will help developers become better trained in the potential impacts and benefits of these technologies in their projects. Some of the class topics may include: multicore software development challenges and techniques, including how to effectively debug and achieve improved concurrency; taking advantage of hardware multithreading; and embedded applications of system virtualization/hypervisors.

Multimedia and Signal Processing, including Consumer Electronics
The digital living room is getting all the publicity today. But the consumer electronics field goes way beyond that buzz word. It takes advantage of all the latest wireless technologies, as well as the latest multimedia capabilities. In many cases, these systems are powered by a battery, so power management must be at the forefront of the design and not an after-thought. In many cases, those multimedia consumer-electronics devices are driven by the latest signal processing CPUs. But it's not just consumer electronics that's taking advantage of signal processing. This track covers such areas as digital signal processors, algorithms, tools, and development techniques.

Networking and Connectivity
The percentage of embedded systems that must talk to the outside world is quite high. Communications may occur over the Internet, or it may be over some other intranet or networking topology. In some cases, the platforms will talk over a wire, while in other cases, it'll be wireless. In this track, attendees will first learn what options are available to them and which is best for their application. Then they'll get down to the nitty-gritty of learning how to integrate these technologies, both in hardware and software, into their embedded system.

Operating System Selections, Tips, and Tricks
Yes, the choice of an OS should be the first element of your embedded design. But we all know that's not always the route taken, And what if that OS is chosen for you? This track will look at many of the OSs available to a designer and (hopefully) shed ample light on which is best suited for various applications. Then, after that choice is made, we'll show you how to properly deploy the OS.

Programmable Logic
One component that seems to sit on just about every high-end embedded board is a programmable logic device. Users claim that these parts are still too big, too expensive, and too complicated. Yet, they're still omnipresent. This track will show users how to best take advantage of the technologies available to them, and in some cases take much more advantage of the programmable part than designers thought would be possible. Topics include model-based programmable logic design and implementation, multi-core processor design within FPGAs, DSP-based FPGA design, proper layout and routing techniques, OS tips and tricks as it relates to programmable logic, etc.

Project Management
Whether you're part of a team, the team's manager, or working solo, there's a process that should be followed for any design. Are you aware of that process? Do you understand how team members should be interacting with each other? Do you know how to choose the best team members? Even if you can positively answer these questions, you still must then deal with budgets, schedules, and upper management, among other things. This track will help you cope with all of these areas, and some others you probably never thought of. The classes are lead by Jack Ganssle, one of the world's authorities on project management.

Real-Time System Development
Many OSs claim to be real time. But that's an over-used term, and now means different things to different people. And if you do require real-time in your system, you probably know that it requires a special talent. In many cases these are mission-critical applications, so the margin for error is basically zero. What you'll learn in this track is how to design, build, and optimize a system for real-time applications. It'll cover both the hardware and software concerns.

Robotics, Motor Control, and More Industrial Change Makers
Robotics, Motor Control, and More Industrial Change Makers Industrial control and automation applications for embedded designs are growing fast, and in some unconventional ways. Two of the aspects taking center stage are robotics and motor control. Robotics involves many aspects including control software and algorithms, graphical system design, motion control hardware, sensors, vision systems, and more. Motor control seeks to get the most out of a motor in terms of performance and energy efficiency, again using both computing hardware and software to improve designs. Other topics of interest in this track are converting proprietary PLC systems to more open solutions like panel PCs and off the shelf single board computers; using Windows Embedded, embedded Linux, and real-time operating systems for human interface, virtualization, and control; and the rise of wireless sensor networks such as ZigBee, 802.15.4, Wi-Fi, WiMAX, and others connecting data in real time. Classes in this track should be focused on the problem, emerging technology to solve it, and real-world application examples of how embedded systems are changing the industrial landscape.

Safety and Security
Embedded software is an ever-present part of modern society. In applications ranging from avionics to pacemakers, the safety of the product is of critical concern throughout the design process. This track looks at issues surrounding firmware safety and the related concept of security against tampering, whether physical or over a network. Best practices for embedded software architecture and development tools/process are recommended to ensure a safe and secure outcome.

Software Debugging Techniques
No one writes perfect code. Hence, at some point along the way, developers must debug that code. These classes will teach attendees various methods of debugging their software.

Software Engineering
In this track, we present a number of classes that give practical, immediately-useful suggestions to help embedded developers get their code to operate properly, and also within the predefined project schedule. In all cases, we show provide the best practices required to get that code finished on time, hopefully done right the first time. For instance, what's the best way to write and implement APIs and device drivers, or perform fault-tree analysis? If reliable code is a must, then attending these classes is a necessity.

System Integration and Test
Integrating the components required for an embedded system, both hardware and software, can be a daunting task, depending on the complexity of the system. In many cases, integrating the hardware and software with each other is the most critical step. The classes in this track may cover such topics as test infrastructure and architectures, test automation, test driven development, continuous integration, integration test, on- and off-target software test, testable architectures, integration and test tradeoffs, and instrumentation.

Furthering your Career Track
Some developers are interested in C or C++, while others are interested in debugging or test. But one thing that's surely of interest to anyone in attendance is how to further their careers. For this reason, we've assembled a series of classes that are free for any conference or expo attendee that will help that individual rise through the ranks of his/her company. The three classes in this track, held in the ESC Theater, provide advice on best practices that all developers should be aware of.

Tuesday, April 6, 2010

A list of RTOS overview.

From : http://blog.csdn.net/reniuliu/archive/2009/03/06/3963726.aspx


从网上搜集一些资料,整理了下,能对EOS有个整体认识。



EOS与通用的桌面OS相比较主要特点在于:

1,小内核,稳定可靠。

2,需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。

3,面向应用,强实时性,可用于各种设备控制当中。

国际上常见的嵌入式操作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、 VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、 webphone等,系统有Microsoft的WinCE,3Com的Palm,以及Symbian和Google的Android等。

(一)VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。
VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。
然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。

(二)Windows CE
Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操作系统。为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。由于嵌入式产品的体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限制,而嵌入式操作系统就运行在有限的内存(一般在ROM或快闪存储器)中,因此就对操作系统的规模、效率等提出了较高的要求。从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过的系统内存,运用程序庞大;版权许可费也是厂商不得不考虑的因素。

(三)嵌入式Linux
这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL协议,在近一年多以来成为研究热点,据IDG预测嵌入式Linux将占未来两年的嵌入式操作系统份额的50%。
由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有大量的免费的优秀的开发工具,且都遵从GPL,是开放源代码的。有庞大的开发人员群体。无需专门的人才,只要懂Unix/Linux和C语言即可。随着 Linux在中国的普及,这类人才越来越多。所以软件的开发和维护成本很低。优秀的网络功能,这在Internet时代尤其重要。稳定——这是Linux 本身具备的一个很大优点。内核精悍,运行所需资源少,十分适合嵌入式应用。
支持的硬件数量庞大。嵌入式Linux和普通Linux并无本质区别,PC上用到的硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
在嵌入式系统上运行Linux的一个缺点是Linux体系提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。

(四)μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,16位和32位单片机或数字信号处理器(DSP)。它是在原版本μC /OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用该实时内核的实例。它的主要特点如下:
公开源代码,容易就能把操作系统移植到各个不同的硬件平台上;
可移植性,绝大部分源代码是用C语言写的,便于移植到其他微处理器上;
可固化;
可裁剪性,有选择的使用需要的系统服务,以减少斗所需的存储空间;
占先式,完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务;
多任务,可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法;
可确定性,函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少;
实用性和可靠性,成功应用该实时内核的实例,是其实用性和可靠性的最好证据。
由于μC/OS一Ⅱ仅是一个实时内核,这就意味着它不像其他实时存在系统那样提供给用户的只是一些API函数接口,还有很多工作需要用户自己去完成。

(五)QNX

由QNX软件公司所开发的QNX操作系统,也是一套类UNIX的嵌入式操作系统,跟VxWorks同样的,QNX也是一套符合POSIX规范的操作系统。

与 VxWorks同样发迹于1980年代的QNX,其特殊之处,在于其并非采用传统的高阶硬件虚拟层方式设计,而是以非常细碎的tasks形式来执行,由许多的微核心为基础组成完整的OS服务,因此QNX的硬件设计者可以自由的选择加载执行或不加载某些特定的服务,而不用去变更QNX的核心程序部份。因此基于QNX的嵌入式操作系统可以做到非常小的程度,而且依然可以具有相当高的效率与完整的菜单现。

QNX 操作系统核心仅包含了CPU任务排程、进程间通讯、中断重导向以及定时器等部份,而除此之外包含驱动程序、档案系统堆叠协议以及使用者应用程序的所有程序都是属于在使用者阶段执行。QNX操作系统有个相当特殊的Proc阶段,专门负责程序process的建立,以及存储器管理等交集在系统微核心中的组件。基本上,QNX所有的组件都能透过消息传递这个函式来进行沟通,而具有良好定义的通讯机制,也能保障所有的组件都有完全独立且被保护的储存及执行空间。因此有问题的应用程序不会影响到其它组件的稳定性,发生问题的程序将会被自动终止并重新启动。

与传统的操作系统架构相较起来,微核心架构可以让嵌入式系统获得更为快速的平均回覆时间(MTTR),当硬件驱动程序失效,QNX可以在数毫秒之内,就对该驱动程序进行终止、回收资源并重新启动的步骤,让嵌入式设备可接近无停摆时间表现。

不过微核心RTOS的架构除了优点以外,由于其process间的讯息传递功能将会占用存储器频宽,影响到校能表现,因此在实际应用上,就必须采用特殊的最佳化手段,以避免掉讯息传递功能所带来的性能耗损。

虽然QNX整间公司在2004年出售给Haman International Industries,但QNX操作系统的发展脚步依旧没有停止,在国外,除了与各家国际汽车大厂合作,成为车用电子的主力操作系统以外,也获得相当多的航空公司与重要军事单位采用。而在2005年底,QNX也与国内几家包含联电、Zinwell等公司进行了合作,研华、控创等工业计算机厂商也都有针对这方面在发展。


(六)Nucleus Plus

这款嵌入式操作系统主要特征就是轻薄短小,其架构上的延展性,可以让Nucleus RTOS所占的储存空间压缩到仅有13K左右,而且Nucleus Plus是一款不需授权费的操作系统,并且提供了原始码。

Nucleus Plus本身只是Acclerated Technology公司完整解决方案里面的其中一环,这个RTOS本身架构属于先占式多工设计,有超过95%的原始码是用标准的ANSI C语言所编写,因此可以非常有效率的移植到各种不同的平台。Nucleus Plus在CISC架构处理器中,核心部份大约占去20KB左右的储存空间,而在RISC处理器上则是40KB左右,核心资料结构仅占约1.5KB,由于其即时回应、先占式多工、以及多process并行,并且开放原始码等特性,在国防、工控、航天工业、铁路、网络、POS、自动化控制以及信息家电等领域广泛受到应用。

就如同QNX一般,Nucleus Plus也可以根据目标产品的需求,来自行剪裁所需要的系统功能,达到精简体积的目的。而配合相对应的编译器(Borland c/c++、Microsoft c/c++)以及动态连结程序库和各种底层驱动程序,在开发上拥有非常相当大的便利性。诸如飞思卡尔(Freescale)、罗技(Logitech)公司、美国NEC、SK Telecom等公司,都有采用Nucleus Plus嵌入式操作系统作为开发产品使用。