Showing posts with label Embedded. Show all posts
Showing posts with label Embedded. Show all posts

Wednesday, February 2, 2011

FW:中国“嵌入式系统之父”何立民细谈物联网

[1]http://www.esmchina.com/ART_8800113671_d534bb20_no.HTM?click_from=1000048340,8637877352,20110110,ESMCOL,ARTICLE_ALERT

绝大多数半导体集成电路元器件都会进入到嵌入式应用市场。随着嵌入式应用系统的SoC化,大部分半导体元器件与软件会以IP化方式进入到嵌入式应用市场。嵌入式系统应用将从基于半导体元器件的应用转向基于软、硬件平台的应用。即在一个通用的软硬件平台基础上开发出个性化产品。


ESMC:元器件和软件技术进步将对嵌入式应用设计带来什么影响?您如何看待多核处理器发展趋势?

何:嵌入式应用的产业模式应该是基于知识平台的扇形产业模式。最新元器件和软件技术的进步应体现在嵌入式产品平台的建设上。随着硬件平台的成熟与普及,软件技术会越来越显现出它的重要地位。

最早的多核技术出现在嵌入式系统应用中。目前,许多嵌入式处理器的内部总线都支持多核技术,多核技术会成为嵌入式应用的常规技术。有了支持多核技术的内部总线,多核软件技术不会有什么困难。



ESMC:您认为未来哪些内核将成为嵌入式市场的主流选择?为什么?

何:从上世纪70年代开始的MCU时代,一直是百花齐放的时代。ARM公司诞生后,局面有了变化,未来有可能形成ARM系列一枝独秀的局面,这是由ARM公司的产业性质与扇形产业生态体系所决定的。因为,在MCU的扇形产业生态体系中,ARM公司是居于半导体厂家之上的知识产权公司。在MCU知识产权领域ARM公司一家独大的情况下,ARM系列会逐渐成为MCU市场的主流选择。目前,ARM系列的主流形势业已出现,只要ARM公司的经营不出现意外,这种形势还会不断强化。

Monday, December 13, 2010

FW: 可重入函数

[1] http://blog.chinaunix.net/u2/68846/showart_689446.html


把一个不可重入函数变成可重入的唯一方法是用可重入规则来重写他。
其实很简单,只要遵守了几条很容易理解的规则,那么写出来的函数就是可重入的。

第一,不要使用全局变量。因为别的代码很可能覆盖这些变量值。
第二,在和硬件发生交互的时候,切记执行类似disinterrupt()之类的操作,就是关闭硬件中断。完成交互记得打开中断,在有些系列上,这叫做“进入/退出核心”或者用OS_ENTER_KERNAL/OS_EXIT_KERNAL来描述。
第三,不能调用任何不可重入的函数。
第四,谨慎使用堆栈。最好先在使用前先OS_ENTER_KERNAL。

还有一些规则,都是很好理解的,总之,时刻记住一句话:保证中断是安全的!

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.