The Barr Group's Embedded C Coding Standard (BARR-C:2018, which originates from the 2009 Netrino's Embedded C Coding Standard) is, for coding standards used by the embedded system industry, second only in popularity to MISRA C. However, the choice between MISRA C:2012 and BARR-C:2018 needs not be a hard decision since they are complementary in two quite different ways. On the one hand, BARR-C:2018 has removed all the incompatibilities with respect to MISRA C:2012 that were present in the previous edition (BARR-C:2013). As a result, disregarding programming style, BARR-C:2018 defines a subset of C that, while preventing a significant number of programming errors, is larger than the one defined by MISRA C:2012. On the other hand, concerning programming style, whereas MISRA C leaves this to individual organizations, BARR-C:2018 defines a programming style aimed primarily at minimizing programming errors. As a result, BARR-C:2018 can be seen as a first, dramatically useful step to C language subsetting that is suitable for all kinds of projects; critical projects can then evolve toward MISRA C:2012 compliance smoothly while maintaining the BARR-C programming style. In this paper, we introduce BARR-C:2018, we describe its relationship with MISRA C:2012, and we discuss the parallel and serial adoption of the two coding standards.
Michael Barr sets out five best practices when considering the discovery or disclosure of embedded software source code in the light of the reports of the National Highway Traffic Safety Administration and NASA’s Engineering and Safety Center into the causes of unintended acceleration in Toyota vehicles.
If you have programming experience and a familiarity with C--the dominant language in embedded systems--Programming Embedded Systems, Second Edition is exactly what you need to get started with embedded software. This software is ubiquitous, hidden away inside our watches, DVD players, mobile phones, anti-lock brakes, and even a few toasters. The military uses embedded software to guide missiles, detect enemy aircraft, and pilot UAVs. Communication satellites, deep-space probes, and many medical instruments would have been nearly impossible to create without embedded software. The first edition of Programming Embedded Systems taught the subject to tens of thousands of people around the world and is now considered the bible of embedded programming. This second edition has been updated to cover all the latest hardware designs and development methodologies.The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Examples use the free GNU software programming tools, the eCos and Linux operating systems, and a low-cost hardware platform specially developed for this book. If you obtain these tools along with Programming Embedded Systems, Second Edition, you'll have a full environment for exploring embedded systems in depth. But even if you work with different hardware and software, the principles covered in this book apply.Whether you are new to embedded systems or have done embedded work before, you'll benefit from the topics in this book, which include:How building and loading programs differ from desktop or server computersBasic debugging techniques--a critical skill when working with minimally endowed embedded systemsHandling different types of memoryInterrupts, and the monitoring and control of on-chip and external peripheralsDetermining whether you have real-time requirements, and whether your operating system and application can meet those requirementsTask synchronization with real-time operating systems and embedded LinuxOptimizing embedded software for size, speed, and power consumptionWorking examples for eCos and embedded LinuxSo whether you're writing your first embedded program, designing the latest generation of hand-held whatchamacalits, or managing the people who do, this book is for you. Programming Embedded Systems will help you develop the knowledge and skills you need to achieve proficiency with embedded software.Praise for the first edition: "This lively and readable book is the perfect introduction for those venturing into embedded systems software development for the first time. It provides in one place all the important topics necessary to orient programmers to the embedded development process. --Lindsey Vereen, Editor-in-Chief, Embedded Systems Programming
Fast runtime reconfigurable hardware enables system designers to swap hardware into and out of an FPGA much as the pages of virtual memory are swapped into and out of virtual memory. Java provides a powerful object-oriented language with constructs to support multiple threads. In this paper, we discuss a method for developing reconfigurable hardware object class libraries, a runtime environment to manage these hardware objects and techniques for controlling such designs from the Java programming language.
From the Publisher:This technical dictionary will define all of the most-used words in the embedded systems field - over 2,500 terms. Designed to serve both a technical and non-technical audience, this book defines advanced terms in two steps. The first step is a general, contextual definition that will serve the needs of less technical readers. The second step covers information in language that is appropriate to a serious technical reader. Some terms reference an appendix of white papers of even more detail.
From the Publisher: This book introduces embedded systems to C and C++ programmers. Topics include testing memory devices, writing and erasing flash memory, verifying nonvolatile memory contents, controlling on-chip peripherals, device driver design and implementation, optimizing embedded code for size and speed, and making the most of C++ without a performance penalty.
Patricia Hill合作论文数Applied Formal Methods Laboratory, University of Parma1