Date: |
Tuesday, May 13, 2008 |
Overview
A modern embedded system may employ hundreds of software tasks, all of them sharing system resources and interacting in complex ways. This complexity can undermine reliability for the simple reason that the more code a system contains, the greater the probability that coding errors will make their way into the field. (By some estimates, a million lines of code will ship with at least 1000 bugs, even if the code is methodically developed and tested.) Coding errors can also compromise security since they often serve as entry points for malicious hackers.
No amount of testing can fully eliminate these bugs and security holes as no test suite can anticipate every scenario that a complex software system may encounter. Consequently, system designers and software developers must adopt a “mission-critical mindset” and employ software architectures that can contain software errors and recover from them quickly. Just as important, developers must employ tools and debugging techniques that help maintain system integrity during the problem-solving process. The tools can't introduce changes that adversely or unpredictably affect system behavior, particularly if the system is actively providing service to users. And once the developer has fixed any software component, the tools and underlying operating system should make it easy to upload and monitor the fixed version, again without affecting overall system behavior and availability.
This session examines debug and information-gathering techniques that can maintain system availability while generating artifacts that help diagnose and resolve software failure. Topics include non-invasive system tracing techniques, kernel instrumentation, software watchdogs, debug partitions, and postmortem debugging.
Estimated length: 1 hour, including Q & A.
Who should attend: This seminar is useful for system designers and architects, software engineers, and managers in all embedded markets.
Prerequisites: There are no prerequisites for this session.
Presenter
Eric Johnson is currently a project manager at QNX Software Systems, where he also formerly held management positions in the areas of technical education and quality assurance. Eric has over 23 years of experience in embedded software development.
About QNX Software Systems
QNX Software Systems, a Harman International company (NYSE: HAR), is the industry leader in realtime, embedded OS technology. The component-based architectures of the QNX Neutrino RTOS and QNX® Momentics® development suite together provide the industry's most reliable and scalable framework for building innovative, high-performance embedded systems. Global leaders such as Cisco, DaimlerChrysler, General Electric, Lockheed Martin, and Siemens depend on QNX technology for network routers, medical instruments, vehicle telematics units, security and defense systems, industrial robotics, and other mission- or life-critical applications. Founded in 1980, QNX Software Systems is headquartered in Ottawa, Canada, and distributes products in over 100 countries worldwide.