Reusable Firmware Development

Reusable Firmware Development
Author: Jacob Beningo
Publisher: Apress
Total Pages: 321
Release: 2017-12-06
Genre: Computers
ISBN: 1484232976

Gain the knowledge and skills necessary to improve your embedded software and benefit from author Jacob Beningo’s more than 15 years developing reusable and portable software for resource-constrained microcontroller-based systems. You will explore APIs, HALs, and driver development among other topics to acquire a solid foundation for improving your own software. Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers not only explains critical concepts, but also provides a plethora of examples, exercises, and case studies on how to use and implement the concepts. What You'll Learn Develop portable firmware using the C programming language Discover APIs and HALs, explore their differences, and see why they are important to developers of resource-constrained software Master microcontroller driver development concepts, strategies, and examples Write drivers that are reusable across multiple MCU families and vendors Improve the way software documented Design APIs and HALs for microcontroller-based systems Who This Book Is For Those with some prior experience with embedded programming.

Developing Reusable Firmware

Developing Reusable Firmware
Author: Jacob Beningo
Publisher:
Total Pages: 328
Release: 2017-10-14
Genre:
ISBN: 9781978135536

DEVELOPING REUSABLE FIRMWARE - A PRACTICAL APPROACH TO APIS, HALS AND DRIVERS Embedded systems are becoming more complex with users expecting more and more features, needing to connect to the internet, provide security, remote device management and many other features. Developing drivers and application code from scratch is no longer an option and developers and companies that do so will quickly find themselves struggling to compete in today's fast paced environment. The key to success is leveraging existing software and making sure that it is reusable and portable to any microcontroller based system. In "Developing Reusable Firmware - A Practical Approach to APIs, HALs and Drivers", Jacob Beningo provides readers with the knowledge and skills necessary to improve their own embedded software based on more than 15 years developing reusable and portable software for resource constrained microcontroller based systems. Jacob explores API's, HAL's and driver development among other topics to provide readers with a solid foundation for improving their own software. The book not only explores critical concepts but also provides a plethora of examples, exercises and case studies on how to use and implement the concepts.

Design Patterns for Embedded Systems in C

Design Patterns for Embedded Systems in C
Author: Bruce Powel Douglass
Publisher: Elsevier
Total Pages: 471
Release: 2010-11-03
Genre: Computers
ISBN: 0080959717

A recent survey stated that 52% of embedded projects are late by 4-5 months. This book can help get those projects in on-time with design patterns. The author carefully takes into account the special concerns found in designing and developing embedded applications specifically concurrency, communication, speed, and memory usage. Patterns are given in UML (Unified Modeling Language) with examples including ANSI C for direct and practical application to C code. A basic C knowledge is a prerequisite for the book while UML notation and terminology is included. General C programming books do not include discussion of the contraints found within embedded system design. The practical examples give the reader an understanding of the use of UML and OO (Object Oriented) designs in a resource-limited environment. Also included are two chapters on state machines. The beauty of this book is that it can help you today. . Design Patterns within these pages are immediately applicable to your project Addresses embedded system design concerns such as concurrency, communication, and memory usage Examples contain ANSI C for ease of use with C programming code

API Standard for MCUs

API Standard for MCUs
Author: Jacob Beningo
Publisher:
Total Pages: 374
Release: 2017-08-04
Genre:
ISBN: 9781973972204

Embedded software has traditionally been developed as a one-off software development effort designed for an individual product. In recent years, embedded system complexity has dramatically increased and the microcontrollers capabilities have followed. What were once simple 8-bit computing machines running at a few dozen megahertz have now become full-fledged 32-bit processors executing at hundreds of megahertz's. Developing software from scratch or for use in a single application or processor has become extremely costly and problematic for design teams. This API standard for microcontrollers is an example hardware abstraction layer designed to help embedded software developers designing products with microcontrollers create reusable software that abstracts out the hardware. This API standard has been developed and used in production systems for more than half a decade in devices ranging from automotive and medical devices to space systems. Each iteration that it has gone through has helped create a standard that flexible for developers and meets many general real-time design needs. Using an API to abstract out the microcontroller has several major benefits to development teams such as: Removing the specialized need to master the microcontroller hardware Decreasing costs through reusable firmware Faster times to market Better planning and accuracy in the development cycle Portability and flexibility to handle numerous applications Undoubtedly there are many more benefits but in this book the goal is to provide the reader with the standard. If you are interested in understanding how to develop reusable software and the processes that a developer would go through to create their own API's and HAL's, the companion book "Developing Reusable Firmware : A Practical Approach", can be found at www.beningo.com. Developing Reusable Firmware discusses the key ideas behind creating API's and HAL's along with the processes and design considerations that developers need to consider when creating their own. This standard example has gone through many iterations and has become very stable but there is always an opportunity that changes will be made in the future. In order to stay up to date and receive the latest information and also receive the associated API template files, please visit the associated webpage at https://www.beningo.com/api/index.php to sign-up. When you sign-up you will receive Doxygen template source files that layout the entire standard in way that can be easily modified to implement in your own development cycle. I wish you the best of luck in using this standard and dramatically transforming the way in which you develop and reuse your embedded software.

A Practical Approach to Large-Scale Agile Development

A Practical Approach to Large-Scale Agile Development
Author: Gary Gruver
Publisher: Addison-Wesley
Total Pages: 208
Release: 2012-11-15
Genre: Computers
ISBN: 0132981017

Today, even the largest development organizations are turning to agile methodologies, seeking major productivity and quality improvements. However, large-scale agile development is difficult, and publicly available case studies have been scarce. Now, three agile pioneers at Hewlett-Packard present a candid, start-to-finish insider’s look at how they’ve succeeded with agile in one of the company’s most mission-critical software environments: firmware for HP LaserJet printers. This book tells the story of an extraordinary experiment and journey. Could agile principles be applied to re-architect an enormous legacy code base? Could agile enable both timely delivery and ongoing innovation? Could it really be applied to 400+ developers distributed across four states, three continents, and four business units? Could it go beyond delivering incremental gains, to meet the stretch goal of 10x developer productivity improvements? It could, and it did—but getting there was not easy. Writing for both managers and technologists, the authors candidly discuss both their successes and failures, presenting actionable lessons for other development organizations, as well as approaches that have proven themselves repeatedly in HP’s challenging environment. They not only illuminate the potential benefits of agile in large-scale development, they also systematically show how these benefits can actually be achieved. Coverage includes: • Tightly linking agile methods and enterprise architecture with business objectives • Focusing agile practices on your worst development pain points to get the most bang for your buck • Abandoning classic agile methods that don’t work at the largest scale • Employing agile methods to establish a new architecture • Using metrics as a “conversation starter” around agile process improvements • Leveraging continuous integration and quality systems to reduce costs, accelerate schedules, and automate the delivery pipeline • Taming the planning beast with “light-touch” agile planning and lightweight long-range forecasting • Implementing effective project management and ensuring accountability in large agile projects • Managing tradeoffs associated with key decisions about organizational structure • Overcoming U.S./India cultural differences that can complicate offshore development • Selecting tools to support quantum leaps in productivity in your organization • Using change management disciplines to support greater enterprise agility

Software Engineering with Reusable Components

Software Engineering with Reusable Components
Author: Johannes Sametinger
Publisher: Springer Science & Business Media
Total Pages: 275
Release: 2013-04-17
Genre: Computers
ISBN: 3662033453

The book provides a clear understanding of what software reuse is, where the problems are, what benefits to expect, the activities, and its different forms. The reader is also given an overview of what sofware components are, different kinds of components and compositions, a taxonomy thereof, and examples of successful component reuse. An introduction to software engineering and software process models is also provided.

Patterns in the Machine

Patterns in the Machine
Author: John T. Taylor
Publisher: Apress
Total Pages:
Release: 2021-04-15
Genre: Computers
ISBN: 9781484264393

Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors’ experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability. This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today’s embedded projects. After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating simulators, and implementing continuous integration requires time and effort up front, you will be amply rewarded at the end of the project in terms of quality, adaptability, and maintainability of your code. What You Will Learn Incorporate automated unit testing into an embedded project Design and build functional simulators for an embedded project Write production-quality software when hardware is not available Use the Data Model architectural pattern to create a highly decoupled design and implementation Understand the importance of defining the software architecture before implementation starts and how to do it Discover why documentation is essential for an embedded project Use finite state machines in embedded projects Who This Book Is For Mid-level or higher embedded systems (firmware) developers, technical leads, software architects, and development managers.

Beyond BIOS

Beyond BIOS
Author: Vincent Zimmer
Publisher: Walter de Gruyter GmbH & Co KG
Total Pages: 319
Release: 2017
Genre: Computers
ISBN: 1501505831

This book provides an overview of modern boot firmware, including the Unified Extensible Firmware Interface (UEFI) and its associated EFI Developer Kit II (EDKII) firmware. The authors have each made significant contributions to developments in these areas. The reader will learn to use the latest developments in UEFI on modern hardware, including open source firmware and open hardware designs. The book begins with an exploration of interfaces exposed to higher-level software and operating systems, and commences to the left of the boot timeline, describing the flow of typical systems, beginning with the machine restart event. Software engineers working with UEFI will benefit greatly from this book, while specific sections of the book address topics relevant for a general audience: system architects, pre-operating-system application developers, operating system vendors (loader, kernel), independent hardware vendors (such as for plug-in adapters), and developers of end-user applications. As a secondary audience, project technical leaders or managers may be interested in this book to get a feel for what their engineers are doing. The reader will find: An overview of UEFI and underlying Platform Initialization (PI) specifications How to create UEFI applications and drivers Workflow to design the firmware solution for a modern platform Advanced usages of UEFI firmware for security and manageability

Programming Embedded Systems

Programming Embedded Systems
Author: Michael Barr
Publisher: "O'Reilly Media, Inc."
Total Pages: 326
Release: 2006-10-11
Genre: Computers
ISBN: 0596009836

Authored by two of the leading authorities in the field, this guide offers readers the knowledge and skills needed to achieve proficiency with embedded software.

Making Embedded Systems

Making Embedded Systems
Author: Elecia White
Publisher: "O'Reilly Media, Inc."
Total Pages: 329
Release: 2011-10-25
Genre: Computers
ISBN: 1449320589

Interested in developing embedded systems? Since they donâ??t tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements. Written by an expert whoâ??s created embedded systems ranging from urban surveillance and DNA scanners to childrenâ??s toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use. Optimize your system to reduce cost and increase performance Develop an architecture that makes your software robust in resource-constrained environments Explore sensors, motors, and other I/O devices Do more with less: reduce RAM consumption, code space, processor cycles, and power consumption Learn how to update embedded code directly in the processor Discover how to implement complex mathematics on small processors Understand what interviewers look for when you apply for an embedded systems job "Making Embedded Systems is the book for a C programmer who wants to enter the fun (and lucrative) world of embedded systems. Itâ??s very well writtenâ??entertaining, evenâ??and filled with clear illustrations." â??Jack Ganssle, author and embedded system expert.