element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum Consequences of Bad Firmware
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 3 replies
  • Subscribers 492 subscribers
  • Views 523 views
  • Users 0 members are here
Related

Consequences of Bad Firmware

fustini
fustini over 12 years ago

I read this EDN article today:

Toyota's killer firmware: Bad design and its consequences | EDN

On Thursday October 24, 2013, an Oklahoma court ruled against Toyota in a case of unintended acceleration that lead to the death of one the occupants. Central to the trial was the Engine Control Module's (ECM) firmware.

It was very interesting to learn of the different coding standards and safety measures.  For exmaple, error detecting and correcting RAM:

 

Toyota claimed the 2005 Camry's main CPU had error detecting and correcting (EDAC) RAM. It didn't. EDAC, or at least parity RAM, is relatively easy and low-cost insurance for safety-critical systems.

and issues with software not conforming to standards:

On top of that, stack-killing, MISRA-C rule-violating recursion was found in the code, and the CPU doesn't incorporate memory protection to guard against stack overflow.

Toyota's ETCS used a version of OSEK, which is an automotive standard RTOS API. For some reason, though, the CPU vendor-supplied version was not certified compliant.

 

Has anyone dealt with systems and standards like this?

 

thanks!

drew

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 12 years ago +2
    I think one should exercise great caution in interesting the reports on this subject. The current court proceedings are based on a huge project conducted entirely by those with a vested interest in blaming…
  • M0DCD
    M0DCD over 12 years ago +2
    It's always difficult to comment on these, especially when there's lawyers involved. Design work in the automotive industry has long been cost based, and part of that is weighing up the likelihood and…
Parents
  • M0DCD
    M0DCD over 12 years ago

    It's always difficult to comment on these, especially when there's lawyers involved. Design work in the automotive industry has long been cost based, and part of that is weighing up the likelihood and effect of a failure.

    No complex software is foolproof, the more you add, the more could possibly go wrong. There's plenty of things that could go wrong, some of them are very unlikely and trying to write in the code everything you could think of makes the matter worse.

    Safety Critical applications I have come across usually involve redundancy, status monitoring and a link to a hardware correction path (eg cut power and progressively apply brakes in Rail applications). It deals independently with one component in system failing by having another able to override what is usually a non-responsive module. Note usually the case in automotive, the braking power of a car always well exceeds the power of the engine, stand on the brakes and you'll stop and stall the engine.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • M0DCD
    M0DCD over 12 years ago

    It's always difficult to comment on these, especially when there's lawyers involved. Design work in the automotive industry has long been cost based, and part of that is weighing up the likelihood and effect of a failure.

    No complex software is foolproof, the more you add, the more could possibly go wrong. There's plenty of things that could go wrong, some of them are very unlikely and trying to write in the code everything you could think of makes the matter worse.

    Safety Critical applications I have come across usually involve redundancy, status monitoring and a link to a hardware correction path (eg cut power and progressively apply brakes in Rail applications). It deals independently with one component in system failing by having another able to override what is usually a non-responsive module. Note usually the case in automotive, the braking power of a car always well exceeds the power of the engine, stand on the brakes and you'll stop and stall the engine.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube