Michael Barr (software engineer)

Last updated

Michael Barr is a software engineer specializing in software design for medical devices and other embedded systems. [1] [2] He is a past editor-in-chief of Embedded Systems Design magazine [3] and author of three books and more than seventy articles about embedded software. [4]

Barr has often worked as an expert witness, including testifying in the Toyota Sudden Unintended Acceleration litigation. [5] In October 2013, after reviewing Toyota's source code as part of a team of seven engineers, he testified in a jury trial in Oklahoma that led to a "guilty by software defects" finding against Toyota. There are several technical articles that discuss the various electronic throttle control defects he testified were linked to unintended acceleration that caused deaths in Toyota Camry vehicles. [6] [7] [8]

Earlier in his career, Barr testified as an expert witness in the DirecTV anti-piracy end user litigation, which involved over 25,000 end users. [9] He has also worked as a testifying expert witness in other high-profile litigation involving software, such as SmartPhone Technologies vs Apple and in a copyright dispute about EA's early Madden Football video game source code. [10]

Barr began his career working as an embedded programmer at Hughes Network Systems, where he wrote software for products including the first-generation Hughes-branded DirecTV receiver, which sold in the millions of units. He subsequently wrote embedded software at TSI TelSys, PropHead Development, and Netrino. [11] His three books are Programming Embedded Systems in C with GNU Development Tools, [12] Embedded Systems Dictionary [13] (co-authored by Jack Ganssle), and "Embedded C Coding Standard". [14]

Barr studied electrical engineering at the University of Maryland in College Park, from which he earned a Bachelor of Science degree in 1994 and a Master of Science degree in 1997. [9] From 2000 to 2002, he taught ENEE 447 Operating Systems Theory as an adjunct professor in the same Department of Electrical and Computer Engineering. [9]

Related Research Articles

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

<span class="mw-page-title-main">MIPS Technologies</span> American fabless semiconductor design company

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">Mentor Graphics</span> Electronic design automation company

Mentor Graphics Corporation was a US-based electronic design automation (EDA) multinational corporation for electrical engineering and electronics, headquartered in Wilsonville, Oregon. Founded in 1981, the company distributed products that assist in electronic design automation, simulation tools for analog mixed-signal design, VPN solutions, and fluid dynamics and heat transfer tools. The company leveraged Apollo Computer workstations to differentiate itself within the computer-aided engineering (CAE) market with its software and hardware.

<span class="mw-page-title-main">FOSDEM</span> Annual event in Brussels centered on free and open source software development

Free and Open source Software Developers' European Meeting (FOSDEM) is a non-commercial, volunteer-organized European event centered on free and open-source software development. It is aimed at developers and anyone interested in the free and open-source software movement. It aims to enable developers to meet and to promote the awareness and use of free and open-source software.

<span class="mw-page-title-main">Electronic throttle control</span> Automobile technology

Electronic throttle control (ETC), also known as e-gas or throttle by wire, is an automobile technology which electronically "connects" the accelerator pedal to the throttle, replacing a mechanical linkage. This concept is often called drive by wire, and sometimes called accelerate-by-wire or throttle-by-wire. A typical ETC system consists of three major components: (i) an accelerator pedal module, (ii) a throttle valve that can be opened and closed by an electric motor, and (iii) a powertrain or engine control module. The ECM is a type of electronic control unit (ECU), which is an embedded system that employs software to determine the required throttle position by calculations from data measured by other sensors, including the accelerator pedal position sensors, engine speed sensor, vehicle speed sensor, and cruise control switches. The electric motor is then used to open the throttle valve to the desired angle via a closed-loop control algorithm within the ECM.

Embedded C++ (EC++) is a dialect of the C++ programming language for embedded systems. It was defined by an industry group led by major Japanese central processing unit (CPU) manufacturers, including NEC, Hitachi, Fujitsu, and Toshiba, to address the shortcomings of C++ for embedded applications. The goal of the effort is to preserve the most useful object-oriented features of the C++ language yet minimize code size while maximizing execution efficiency and making compiler construction simpler. The official website states the goal as "to provide embedded systems programmers with a subset of C++ that is easy for the average C programmer to understand and use".

gEDA

The term gEDA refers to two things:

  1. A set of software applications used for electronic design released under the GPL. As such, gEDA is an ECAD or EDA application suite. gEDA is mostly oriented towards printed circuit board design. The gEDA applications are often referred to collectively as "the gEDA Suite".
  2. The collaboration of free software/open-source developers who work to develop and maintain the gEDA toolkit. The developers communicate via gEDA mailing lists, and have participated in the annual "Google Summer of Code" event as a single project. This collaboration is often referred to as "the gEDA Project".
<span class="mw-page-title-main">Coverity</span> American software company

Coverity is a proprietary static code analysis tool from Synopsys. This product enables engineers and security teams to find and fix software defects.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

Perst is an open source, dual license, object-oriented embedded database management system (ODBMS). Both the Java programming language, and the C# programming language versions are compact and Perst has been implemented on smart phones running the Android and Windows Phone (WP7) operating systems.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use and was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. These GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">2009–2011 Toyota vehicle recalls</span>

The 2009–11 Toyota vehicle recalls involved three separate but related recalls of automobiles by the Japanese manufacturer Toyota Motor Corporation, which occurred at the end of 2009 and start of 2010. Toyota initiated the recalls, the first two with the assistance of the U.S. National Highway Traffic Safety Administration (NHTSA), after reports that several vehicles experienced unintended acceleration. The first recall, on November 2, 2009, was to correct a possible incursion of an incorrect or out-of-place front driver's side floor mat into the foot pedal well, which can cause pedal entrapment. The second recall, on January 21, 2010, was begun after some crashes were shown not to have been caused by floor mat incursion. This latter defect was identified as a possible mechanical sticking of the accelerator pedal causing unintended acceleration, referred to as Sticking Accelerator Pedal by Toyota. The original action was initiated by Toyota in their Defect Information Report, dated October 5, 2009, amended January 27, 2010. Following the floor mat and accelerator pedal recalls, Toyota also issued a separate recall for hybrid anti-lock brake software in February 2010.

Sudden unintended acceleration (SUA) is the unintended, unexpected, uncontrolled acceleration of a vehicle, often accompanied by an apparent loss of braking effectiveness. Such problems may be caused by driver error, mechanical or electrical problems, or some combination of these factors. The US National Highway Traffic Safety Administration estimates 16,000 accidents per year in the United States occur when drivers intend to apply the brake but mistakenly apply the accelerator.

The Shared Source Initiative (SSI) is a source-available software licensing scheme launched by Microsoft in May 2001. The program includes a spectrum of technologies and licenses, and most of its source code offerings are available for download after eligibility criteria are met.

The Power of 10 Rules were created in 2006 by Gerard J. Holzmann of the NASA/JPL Laboratory for Reliable Software. The rules are intended to eliminate certain C coding practices which make code difficult to review or statically analyze. These rules are a complement to the MISRA C guidelines and have been incorporated into the greater set of JPL coding standards.

ECLAIR is a commercial static code analysis tool developed by BUGSENG, LLC for automatic analysis, verification, testing and transformation of C and C++ programs.

<span class="mw-page-title-main">Robert Zeidman</span> American electrical engineer

Robert Zeidman is an American electrical engineer and inventor. He rose to national attention in the USA after a private arbitration panel in April, 2023 ruled that Zeidman had proved material provided by Mike Lindell was not data from the 2020 presidential election. As such it could not be evidence of Chinese electoral interference.

DeepScale, Inc. was an American technology company headquartered in Mountain View, California, that developed perceptual system technologies for automated vehicles. On October 1, 2019, the company was acquired by Tesla, Inc.

CodeSonar is a static code analysis tool from CodeSecure, Inc. CodeSonar is used to find and fix bugs and security vulnerabilities in source and binary code. It performs whole-program, inter-procedural analysis with abstract interpretation on C, C++, C#, Java, as well as x86 and ARM binary executables and libraries. CodeSonar is typically used by teams developing or assessing software to track their quality or security weaknesses. CodeSonar supports Linux, BSD, FreeBSD, NetBSD, MacOS and Windows hosts and embedded operating systems and compilers.

References

  1. Leopold, George (2012-05-03). "Struggle Continues to Plug Embedded Programming Gap". EE Times. Retrieved 2012-06-03.
  2. "Embedded Systems Design Magazine Editorial Contacts - Michael Barr". Embedded. Archived from the original on November 10, 2006. Retrieved 2007-04-21.
  3. "Michael Barr - Biography". O'Reilly Media, Inc. Retrieved 2007-04-21.
  4. "Google Scholar" . Retrieved 2013-06-13.
  5. "Toyota Attacks Alleged Evidence of Accelerator Software Bug" . Retrieved 2013-09-20.
  6. Dunn, Michael (2013-10-28). "Toyota's killer firmware: Bad design and its consequences". EDN. Retrieved 2013-11-25.
  7. Yoshida, Junko (2013-10-29). "Toyota Trial: Transcript Reveals 'Task X' Clues". EE Times. Retrieved 2013-11-25.
  8. Yoshida, Junko (2013-10-25). "Toyota Case: Single Bit Flip That Killed". EE Times. Retrieved 2013-11-25.
  9. 1 2 3 "Curriculum Vitae of Michael Barr" (PDF). Retrieved 2012-06-03.
  10. "EA Can't Sink 'Madden' Royalties Suit in Jury Trial" . Retrieved 2013-06-22.
  11. "Michael Barr Expert Witness Resume" (PDF). Retrieved 2011-09-14.
  12. Barr, Michael; Massa, Anthony (11 October 2006). Programming Embedded Systems in C with GNU Development Tools. "O'Reilly Media, Inc.". ISBN   0596009836.
  13. Ganssle, Jack (4 January 2003). Embedded Systems Dictionary. Taylor & Francis. ISBN   1578201209.
  14. Barr, Michael (2009). Embedded C Coding Standard. Netrino. ISBN   978-1442164826.