This is an advance, four-day hands-on programming course focusing on system development for embedded systems using MontaVista Mobilinux. Presented at various locations or on-site at your facility, the instructor provides the skills needed to successfully develop, test and integrate complex software appropriate to mobile devices.Participants
Students should be professional software developers building embedded systems using MontaVista Mobilinux. Students should also have previous knowledge of mobile or general consumer device features.Prerequisites
Students are expected to be proficient in the C programming language and well-versed in open source system concepts, and have some familiarity with Linux or a comparable development system.Objectives
- Explain the role in wireless handsets, mobile and consumer devices
- Gain familiarity with the Montavista Linux environment and tools available to develop embedded Linux systems and applications
- Understanding Linux scheduling policies, hard real-time performance and memory management
- Develop and debug a multi-threaded applications using IPC mechanisms
- Using timers and IPC mechanisms in user space
- Develop understanding of power management infrastructure and design for Linux
- Designing system for fast start-up, and small footprint
This course prepares developers for building consumer electronic based and mobile devices using MontaVista Linux Mobilinux.
Instruction begins with a quick overview of consumer and mobile systems and the standards for mobile Linux. The course proceeds to an introduction to the development environment and tools and techniques for cross-development with MontaVista Linux Mobilinux. Special attention is given to the use of Montavista DevRocket designed to facilitate system software and applications development.In the run-time environment, Linux memory model, processes, POSIX threads, synchronization and communication mechanisms are examined along with considerations of performance, debugging and maintainability. Linux timers, networking and filesystem services are discussed in detail. Linux services available in these areas are briefly described and placed in perspective with the user-level services in the process/thread domain.
The course leads the student through a series of chapters designed to highlight the development environment and resources available for the construction of consumer devices. This includes innovative embedded Linux features from MontaVista including dynamic power management, enhanced file systems and tools for system performance tuning.
Hands-on exercises supplement the lecture materials with practical challenges modeled on actual development experience. Exercises range from simple cookbook steps in completing common but not otherwise obvious procedures up to and including significant development challenges that require thought, initiative and creativity to successfully resolve.