|
|
| 2008 October 24th |
|
Managing Flash Memory in Embedded Systems

This paper explores how to choose the most appropriate file system for your embedded design. For example, should your design use a FAT file system or a transaction-based file system? Does it need to run reliably on low-cost NAND flash or recover quickly from file errors? This paper addresses these issues and examines the importance of dynamic wear leveling, static wear leveling, read-degradation monitoring, write buffering, background defragmentation, and other techniques. (Read More...)
|
202.43 KB |

 |
|
| 2008 May 6th |
|
Meeting Early Boot Requirements with the QNX Neutrino RTOS

Many embedded applications – particularly in the automotive industry – must perform a set of actions within a strict timeframe after the system boots. Meeting these deadlines can be a challenge and systems must be designed with early boot requirements in mind. This paper looks at how to optimize the RTOS and application startup to boot as quickly and efficiently as possible. (Read More...)
|
496.98 KB |

 |
|
| 2008 May 6th |
|
Building Dynamic HMIs for Industrial Control with Adobe Flash

Developers of industrial control systems are beginning to embrace Adobe Flash for one simple reason: It reduces GUI development time by up to 50%. This paper looks at preserving realtime performance and reliability while leveraging the power and time-to-market advantages of Flash. It also explores component-based HMI frameworks that seamlessly blend 2D/3D applications, Flash applications, and multimedia. (Read More...)
|
1.09 MB |

 |
|
| 2008 April 30th |
|
Using Static and Runtime Analysis to Improve Developer Productivity and Product Quality

Static analysis can discover a variety of defects and weaknesses in system source code, even before the code is ready to run. Runtime analysis, on the other hand, looks at running software to detect problems as they occur, usually through sophisticated instrumentation. While some may argue that one form of analysis precludes the other, this paper looks at how developers can combine both techniques to achieve faster development and testing as well as higher product quality. (Read More...)
|
1.43 MB |

 |
|
| 2008 March 20th |
|
In-Field Debugging: Diagnosing Software Problems While Maintaining System Availability

Software bugs that make it to market not only cause incorrect system behavior and low system availability but also result in unhappy (and fewer) customers. Unfortunately, conventional debugging methods can themselves interfere with the availability, performance, and correct behavior of the affected system. This paper examines debug and information-gathering techniques that can maintain system availability while generating artifacts that help diagnose and resolve software failure. (Read More...)
|
458.45 KB |

 |
|
| 2008 February 18th |
|
Software Optimization Techniques for Multi-Core Processors

Migrating code to multi-core processors is increasingly popular. However, it isn’t enough to get software to run on a multi-core processor — the key to success is optimizing the software to make full use of all cores. This whitepaper examines various techniques for improving multi-core performance including distributing tasks across multiple threads, reducing lock contention, optimizing CPU cache usage, and minimizing I/O bottlenecks. (Read More...)
|
467.29 KB |

 |
|
| 2008 February 18th |
|
Using Time Partitioning to Ensure Guaranteed Access to Industrial Control Systems

An “always on” interface for remote monitoring and configuration is a key requirement for today’s systems. Unfortunately as complexity and code size grows, so does the probability that task starvation and other defects will make their way into your final product. This paper explores how to use time partitioning to create systems that are always accessible … as well as well-integrated. (Read More...)
|
641.68 KB |

 |
|
| 2008 February 18th |
|
Using Adobe Flash to Create Dynamic Human Machine Interfaces

Using Adobe Flash technology in embedded devices can reduce HMI design time by up to half. However, it takes skill to ensure interfaces remain small and reliable, perform consistently under all load conditions, and interact gracefully with other programs. This whitepaper explores the design choices to consider when working with Adobe Flash technology including the importance of priority control and real-time performance. (Read More...)
|
273.35 KB |

 |
|
| 2007 September 12th |
|
The New QNX Hybrid Software Model: Combining open source and proprietary benefits for embedded systems

The new QNX hybrid software model is an effort to address fundamental problems in the way proprietary embedded software is traditionally developed and distributed. Lawrence Rosen, an attorney and a computer specialist, provides analysis and insight into this model which integrates open source and proprietary software products in new ways, which he sees as a step forward in the embedded systems market toward openness and freedom of software development. (Read More...)
|
174.25 KB |

 |
|
| 2007 July 24th |
|
Secure Partitioning for Multi-Core Systems

Virtually every embedded system today is connected, either physically or wirelessly, to the outside world. This network connectivity allows users to perform remote monitoring and control, and enables systems to download new software features or content on the fly. Unfortunately, it also makes systems vulnerable to infiltration by a growing cadre of cyber terrorists and extortionists. To contain such attacks, many system designers have turned to secure partitioning. (Read More...)
|
234.69 KB |

 |
|
| 2007 February 13th |
|
Getting the Most out of Eclipse CDT

Eclipse CDT has become the de facto standard for developing embedded C/C++ applications. Find out what’s new, what’s coming, and what extensions are available for debugging and optimizing your software projects. (Read More...)
|
1.81 MB |

 |
|
| 2007 January 15th |
|
Is Linux Appropriate for Embedded Systems

The selection of an operating system is one of the most important decisions facing development teams, one that ultimately defines product capabilities. The architecture and features of the chosen operating system have far-reaching implications throughout the definition, development, and deployment of the end product. This is particularly true of embedded systems, which typically have extended product life cycles and availability requirements. (Read More...)
|
190.58 KB |

 |
|
|
|
Exactly When Do You Need an RTOS?

This paper explores when and why an RTOS is required, and the benefits an RTOS can bring to a system design. It also identifies OS requirements for real time (e.g. preemptible kernel, priority inversion avoidance, nested interrupts, time partitioning) and explores the tradeoffs between using an RTOS and a general-purpose OS. (Read More...)
|
727.13 KB |

 |
|
|
 |