Embedded Multitasking


Book Description

In an embedded system, firmware is the software that directly interfaces with the microcontroller, controlling the system's function. The major forces driving the embedded firmware development process today are reduced development times, increased complexity, and the need to handle multiple tasks simultaneously. These forces translate into strenuous design requirements for embedded engineers and programmers. Many low-level embedded microcontroller designs have insufficient memory and/or architectural limitations that make the use of a real-time operating system impractical. The techniques presented in this book allow the design of robust multitasking firmware through the use of interleaved state machines. This book presents a complete overview of multitasking terminology and basic concepts. Practical criteria for task selection and state machine design are also discussed.Designing multitasking firmware is arduous, complex and fraught with potential for errors, and there is no one, "standard way to do it. This book will present a complete and well-organized design approach with examples and sample source code that designers can follow. - Covers every aspect of design from the system level to the component level, including system timing, communicating with the hardware, integration and testing.




Software Development for Embedded Multi-core Systems


Book Description

The multicore revolution has reached the deployment stage in embedded systems ranging from small ultramobile devices to large telecommunication servers. The transition from single to multicore processors, motivated by the need to increase performance while conserving power, has placed great responsibility on the shoulders of software engineers. In this new embedded multicore era, the toughest task is the development of code to support more sophisticated systems. This book provides embedded engineers with solid grounding in the skills required to develop software targeting multicore processors. Within the text, the author undertakes an in-depth exploration of performance analysis, and a close-up look at the tools of the trade. Both general multicore design principles and processor-specific optimization techniques are revealed. Detailed coverage of critical issues for multicore employment within embedded systems is provided, including the Threading Development Cycle, with discussions of analysis, design, development, debugging, and performance tuning of threaded applications. Software development techniques engendering optimal mobility and energy efficiency are highlighted through multiple case studies, which provide practical “how-to advice on implementing the latest multicore processors. Finally, future trends are discussed, including terascale, speculative multithreading, transactional memory, interconnects, and the software-specific implications of these looming architectural developments. This is the only book to explain software optimization for embedded multi-core systems Helpful tips, tricks and design secrets from an Intel programming expert, with detailed examples using the popular X86 architecture Covers hot topics, including ultramobile devices, low-power designs, Pthreads vs. OpenMP, and heterogeneous cores




Better Embedded System Software


Book Description

A classic book for professional embedded system designers, now in an affordable paperback edition. This book distills the experience of more than 90 design reviews on real embedded systems into a set of bite-size lessons learned in the areas of software development process, requirements, architecture, design, implementation, verification & validation, and critical system properties. This is a concept book rather than a cut-and-paste the code book.Each chapter describes an area that tends to be a problem in embedded system design, symptoms that tend to indicate you need to make changes, the risks of not fixing problems in this area, and concrete ways to make your embedded system software better. Each of the 29 chapters is self-sufficient, permitting developers with a busy schedule to cherry-pick the best ideas to make their systems better right away.If you are relatively new to the area but have already learned the basics, this book will be an invaluable asset for taking your game to the next level. If you are experienced, this book provides a way to fill in any gaps. Once you have mastered this material, the book will serve as a source of reminders to make sure you haven't forgotten anything as you plan your next project. This is version 1.1 with some minor revisions from the 2010 hardcover edition. This is a paperback print-on-demand edition produced by Amazon.







ARM-Based Microcontroller Multitasking Projects


Book Description

Most microcontroller-based applications nowadays are large, complex, and may require several tasks to share the MCU in multitasking applications. Most modern high-speed microcontrollers support multitasking kernels with sophisticated scheduling algorithms so that many complex tasks can be executed on a priority basis. ARM-based Microcontroller Multitasking Projects: Using the FreeRTOS Multitasking Kernel explains how to multitask ARM Cortex microcontrollers using the FreeRTOS multitasking kernel. The book describes in detail the features of multitasking operating systems such as scheduling, priorities, mailboxes, event flags, semaphores etc. before going onto present the highly popular FreeRTOS multitasking kernel. Practical working real-time projects using the highly popular Clicker 2 for STM32 development board (which can easily be transferred to other boards) together with FreeRTOS are an essential feature of this book. Projects include: LEDs flashing at different rates; Refreshing of 7-segment LEDs; Mobile robot where different sensors are controlled by different tasks; Multiple servo motors being controlled independently; Multitasking IoT project; Temperature controller with independent keyboard entry; Random number generator with 3 tasks: live, generator, display; home alarm system; car park management system, and many more. - Explains the basic concepts of multitasking - Demonstrates how to create small multitasking programs - Explains how to install and use the FreeRTOS on an ARM Cortex processor - Presents structured real-world projects that enables the reader to create their own




Advanced Parallel Processing Technologies


Book Description

This book constitutes the refereed proceedings of the 7th International Workshop on Advanced Parallel Processing Technologies, APPT 2007, held in Guangzhou, China, in November 2007. The 78 revised full papers presented were carefully reviewed and selected from 346 submissions. All current aspects in parallel and distributed computing are addressed ranging from hardware and software issues to algorithmic aspects and advanced applications. The papers are organized in topical sections.




Embedded Microcontrollers


Book Description

This practical book on designing real-time embedded systems using 8-and 16-bit microcontrollers covers both assembly and C programming and real-time kernels. Using a large number of specific examples, it focuses on the concepts, processes, conventions, and techniques used in design and debugging. Chapter topics include programming basics; simple assembly code construction; CPU12 programming model; basic assembly programming techniques; assembly program design and structure; assembly applications; real-time I/O and multitasking; microcontroller I/O resources; modular and C code construction; creating and accessing data in C; real-time multitasking in C; and using the MICROC/OS-II preemptive kernel. For anyone who wants to design small- to medium-sized embedded systems.




The Definitive Guide to the ARM Cortex-M0


Book Description

The Definitive Guide to the ARM Cortex-M0 is a guide for users of ARM Cortex-M0 microcontrollers. It presents many examples to make it easy for novice embedded-software developers to use the full 32-bit ARM Cortex-M0 processor. It provides an overview of ARM and ARM processors and discusses the benefits of ARM Cortex-M0 over 8-bit or 16-bit devices in terms of energy efficiency, code density, and ease of use, as well as their features and applications. The book describes the architecture of the Cortex-M0 processor and the programmers model, as well as Cortex-M0 programming and instruction set and how these instructions are used to carry out various operations. Furthermore, it considers how the memory architecture of the Cortex-M0 processor affects software development; Nested Vectored Interrupt Controller (NVIC) and the features it supports, including flexible interrupt management, nested interrupt support, vectored exception entry, and interrupt masking; and Cortex-M0 features that target the embedded operating system. It also explains how to develop simple applications on the Cortex-M0, how to program the Cortex-M0 microcontrollers in assembly and mixed-assembly languages, and how the low-power features of the Cortex-M0 processor are used in programming. Finally, it describes a number of ARM Cortex-M0 products, such as microcontrollers, development boards, starter kits, and development suites. This book will be useful to both new and advanced users of ARM Cortex devices, from students and hobbyists to researchers, professional embedded- software developers, electronic enthusiasts, and even semiconductor product designers. - The first and definitive book on the new ARM Cortex-M0 architecture targeting the large 8-bit and 16-bit microcontroller market - Explains the Cortex-M0 architecture and how to program it using practical examples - Written by an engineer at ARM who was heavily involved in its development




Embedded Systems Architecture


Book Description

This comprehensive textbook provides a broad and in-depth overview of embedded systems architecture for engineering students and embedded systems professionals. The book is well suited for undergraduate embedded systems courses in electronics/electrical engineering and engineering technology (EET) departments in universities and colleges, as well as for corporate training of employees. The book is a readable and practical guide covering embedded hardware, firmware, and applications. It clarifies all concepts with references to current embedded technology as it exists in the industry today, including many diagrams and applicable computer code. Among the topics covered in detail are: · hardware components, including processors, memory, buses, and I/O · system software, including device drivers and operating systems · use of assembly language and high-level languages such as C and Java · interfacing and networking · case studies of real-world embedded designs · applicable standards grouped by system application * Without a doubt the most accessible, comprehensive yet comprehensible book on embedded systems ever written! * Leading companies and universities have been involved in the development of the content * An instant classic!




The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors


Book Description

The Definitive Guide to the ARM® Cortex®-M0 and Cortex-M0+ Processors, Second Edition explains the architectures underneath ARM’s Cortex-M0 and Cortex-M0+ processors and their programming techniques. Written by ARM’s Senior Embedded Technology Manager, Joseph Yiu, the book is packed with examples on how to use the features in the Cortex-M0 and Cortex-M0+ processors. It provides detailed information on the instruction set architecture, how to use a number of popular development suites, an overview of the software development flow, and information on how to locate problems in the program code and software porting. This new edition includes the differences between the Cortex-M0 and Cortex-M0+ processors such as architectural features (e.g. unprivileged execution level, vector table relocation), new chapters on low power designs and the Memory Protection Unit (MPU), the benefits of the Cortex-M0+ processor, such as the new single cycle I/O interface, higher energy efficiency, better performance and the Micro Trace Buffer (MTB) feature, updated software development tools, updated Real Time Operating System examples using KeilTM RTX with CMSIS-RTOS APIs, examples of using various Cortex-M0 and Cortex-M0+ based microcontrollers, and much more. Provides detailed information on ARM® Cortex®-M0 and Cortex-M0+ Processors, including their architectures, programming model, instruction set, and interrupt handling Presents detailed information on the differences between the Cortex-M0 and Cortex-M0+ processors Covers software development flow, including examples for various development tools in both C and assembly languages Includes in-depth coverage of design approaches and considerations for developing ultra low power embedded systems, the benchmark for energy efficiency in microcontrollers, and examples of utilizing low power features in microcontrollers