Skip to main content

+1 866 653-6233 LinkedIn Software Expert Witness Directory

About Us Contact Us

Barr Group Software Experts

Barr Group Software Experts

Main navigation

  • Expert Services
    • Consulting Experts in Software and Electronics
    • Expert Reports by Testifying Software Experts
    • Reverse Engineering and Forensic Analysis
    • Software Source Code Review and Analysis
  • Areas of Expertise
    • Left Side
      • Artificial Intelligence
      • Automotive Systems
      • Cloud Computing
      • Computer Security
      • Consumer Electronics
      • Electronic Circuits
      • Enterprise Software
      • Financial Technology
      • Firmware and IoT
    • Right Side
      • Industrial Controls
      • Mechanical Design
      • Medical Devices
      • Military & Aerospace
      • Mobile Devices & Apps
      • Optical Equipment
      • Renewable Energy
      • Signal Processing
      • Telecommunications
  • Matters & Venues
    • Patent Infringement and Invalidity Experts
    • Software Copyright and Trade Secrets Experts
    • Product Liability and Failure Analysis Experts
    • Contract Disputes and Software Project Failures
    • Venues and Clients
  • Directory
  • Case Studies
    • DirecTV Anti-Piracy
    • Samsung Software Copyright
    • Toyota Runaway Cars
  • Resources
    • Expert Witness Blog
    • Source Code Review in Litigation
    • Software Source Code Discovery

Firmware Update v18.09

  1. Home
  2. Firmware Update
  3. Firmware Update v18.09
Posted September 11, 2018

"The cheapest, fastest, and most reliable components are those that aren’t there." --Gordon Bell

In this issue:

  • Download Barr Group's UPDATED Embedded C Coding Standard
  • Create Jump Tables via Function Pointer Arrays in C/C++
  • Further Develop Your Embedded Programming Skills this Fall
  • Master Embedded Linux Customization and Driver Development
  • Industry News That's Not Boring

Firmware Update is a free, monthly-ish newsletter by embedded systems expert Michael Barr. Firmware Update is a trademark and this issue is Copyright © 2018. You may forward whole issues to colleagues that design embedded systems.  No other uses are permitted.


Download Barr Group's UPDATED Embedded C Coding Standard

BARR-C:2018First published about ten years ago, the rules in my book Embedded C Coding Standard are followed by embedded software developers who want to reduce time spent during the debugging stage of their projects as well as improve the maintainability and portability of their source code.  In this updated edition (a.k.a, BARR-C:2018), we've eliminated our few prior conflicts with the MISRA C subset of C for use in safety-critical systems so that both of these popular bug-killing standards can be used in combination.

Followers of earlier versions of the BARR-C coding standard will find that little has changed about the rules themselves. However, many rule clarifications have been added along with new code examples that make the rules easier to understand and apply on your projects. 

Download now... (the PDF is free)

Create Jump Tables via Function Pointer Arrays in C/C++

Examination of assembly language code that has been crafted by an expert will usually reveal extensive use of function "branch tables."  Branch tables (a.k.a., jump tables) are selected there because they offer a unique blend of compactness and execution speed, particularly on microprocessors that support indexed addressing.

In typical C/C++ code, however, the jump table (i.e., array of pointers to functions) is a much less widely used construct.  But aren't branch tables just as compact and efficient in C and C++?  This article makes the case for the wider use of jump tables in C/C++.

Read on...

Further Develop Your Embedded Programming Skills this Fall

There are a number of opportunities to learn firmware development best practices this Fall:

  • Test-Driven Development (TDD) & Agile: October 1-3
  • Best Practices for Designing Safe Embedded Systems: October 4-5
  • Embedded Systems Programming in C++: October 9-12
  • Embedded Software Boot Camp®: October 15-18
  • Embedded Security Boot Camp®: October 22-25
  • Embedded Android® Boot Camp: November 5-8
  • Software Reverse Engineering and Security Analysis: November 13-15

Alternatively, consider bringing an instructor to your office for an on-site training for your whole team.  Teams of five or more usually find this is more cost effective than attending public courses.

Register today... (beware: current early pricing ends soon) 

Master Embedded Linux Customization and Driver Development

Linux Kit

The new Embedded Linux Training in a Box kit is a self-paced programming course that helps you develop and strengthen your embedded Linux programming skills. Based on the 3-day Embedded Linux Customization and Driver Development course, this easy-to-follow self-study kit includes hands-on exercises on real hardware that will help you develop your Linux programming skills in the comfort of your own home or office.

Buy now...

Industry News That's Not Boring

Didn't know how to wire an LED to an MCU so you can "blow" it out just like a candle?  Now you do: https://hackaday.com/2018/08/21/an-led-you-can-blow-out-with-no-added-s…

Remember the Furby (interactive toy, circa 1998)?  The source code is now online: http://www.seanriddle.com/furbysource.pdf

The most popular programming languages of our time: https://t.co/tx84LpRQxE -- IEEE

There are limitations to applying machine learning to industrial controls: https://t.co/3cWzUUpamP

An interesting look at the quirks of various C compilers: https://mort.coffee/home/c-compiler-quirks/

Plus... some very practical advice for quickly moving legacy C code to a C++ compiler: https://www.iar.com/support/resources/articles/instant-c-for-c-programm…


Quick Links to Useful Stuff

  • Online Books about Embedded Software
  • Blogs about Embedded Systems Design
  • Library of Free How-To Technical Articles

How to Contact the Author

I'm always interested in hearing from embedded systems designers and happy to take a few minutes to help you find the resources to get a design done right. Send me an email anytime. And be sure to also connect with me on Twitter (@embeddedbarr) and LinkedIn (https://linkedin.com/in/embeddedbarr).

  • Back to Main
  • Share
  • Facebook
  • Twitter
  • LinkedIn

Request an Expert

(866) 653-6233

Blog Categories

assembly
C
coding standards
communications
debugging
electronics
Java
real-time
RTOS
safety
security
tools
user interfaces
Barr Group logo
Call us

Expert Services

  • Source Code Review Services
  • Expert Witness Directory
  • Reverse Engineering Services
  • Expert Reports & Testimony
  • How-To Technical Articles
  • Engineering Services

Latest Insights

  • Payment Processing and e-Payments Fraud
  • Albert Einstein Expert Witness
  • Medical Device Litigation and FDA 510(k)
  • Personality Traits of the Best Expert Witnesses

Website contents copyright © 2012-2025 by Barr Group. | Barr Group's logo is a U.S.-registered ® trademark.

SITEMAP  |  PRIVACY