"Java is to JavaScript as car is to carpet." --Christian Heilmann

In this issue:

  • C's goto Keyword: Should we Use It or Lose It?
  • Tech Talk: Pros and Cons of Dynamic Memory Allocation
  • The Rise of the Full Stack Developers
  • Retake Control of your Embedded Project Schedule
  • 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.

C's goto Keyword: Should we Use It or Lose It?

The 2013 edition of Barr Group's Embedded C Coding Standard" includes:

"Rule 1.7.c: The goto keyword shall not be used."

We haven't heard complaints that this rule is too strict. However, the MISRA-C guidelines are a bit more relaxed about goto. Thus I’ve been reconsidering this rule for an update of the BARR-C standard, a goal of which is to make rules from the two popular standards even easier to pair.

To get the 2018 update published later this month, I need to finalize this rule.  If you've got a few minutes to consider the best arguments for and against the existing ban, I'd appreciate your input.

Weigh in: https://embeddedgurus.com/barr-code/2018/06/cs-goto-keyword-should-we-use-it-or-lose-it/ 

Tech Talk: Pros and Cons of Dynamic Memory Allocation

When it comes to memory, embedded systems engineers face many challenges.  In this month's Tech Talk, Barr Group's principal engineer Salomon Singer chats with CEO Andrew Girson about some of these challenges, including how and when to use heap memory (i.e., dynamic memory allocation) in firmware. 

Click on this image (or here) to play the video:

Read transcript: https://barrgroup.com/tech-talks/memory-allocation

The Rise of the Full Stack Developer

While many self-identified firmware developers and embedded programmers have come up to the our industry from the electronics side--often cutting their teeth in electrical engineering and digital design first--a so-called full stack developer is a software engineer who works at all layers of a complex software system. For example, many full stack developers create websites that connect to relational databases and/or cloud-hosted APIs. In the process a single such developer might write code in languages ranging from JavaScript and Ruby to Python, C, and shell scripts to SQL and C#. All in the same month!

An emerging trend seems to be that embedded systems are being added to the “full stack” mix:

My take: https://embeddedgurus.com/barr-code/2018/05/the-rise-of-the-full-stack-developers/

Retake Control of Your Embedded Project Schedule

Is your embedded systems design project falling behind schedule?  Staffed with experienced embedded hardware and firmware engineers, Barr Group provides embedded systems design assistance and expert guidance to engineering teams and their managers.  

Barr Group's design team augmentation services include:

With a perpetual focus on helping teams get back on schedule and budget, our engineers regularly help companies complete the development of products including: medical devices, automotive systems, cloud-connected IoT products, industrial automation equipment, and mobile/communications gear.​

Need temporary staff augmentation?  Struggling to find specific expertise?  Need help with development tool configuration?  Want an independent design/code review?  You can see how we've helped some other companies reach their design goals here: https://barrgroup.com/embedded-systems/case-studies.

What's stressing you right now?

Reach out: https://barrgroup.com/contact

Industry News That's Not Boring

Hackers built a 1-minute 'master key' that can open any of millions of hotel room doors: https://t.co/LcoWwhMSBb

Our smart devices are gathering information about us. It's time for us to gather information about them. Help by using this free tool: https://t.co/AKVPfCYYdf

Interesting data: Long-term (32 year!) evolution of C programming practices, in the context of the Unix codebase. https://t.co/uJ35xZXTZM

The (lottery software!) Glitch that Stole Christmas: https://t.co/JotGltbWCb

In 1834 France was hit by the world's first cyberattack--against a human-powered communications network. Fascinating story: https://t.co/OHgYESQXw3

In more recent security news... so-called "Oblivious DNS" could protect us all against a systemic and pernicious existing form of Internet privacy loss: https://t.co/5grktPvDtj

More here: @embeddedbarr

Quick Links to Useful Stuff

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).