jodo

Firmware Update v18.09

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



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



    First published about ten years ago, the rules in my book  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. 



    . (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++.



    .



    Further Develop Your Embedded Programming Skills this Fall



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



    • : October 1-3
      : October 4-5
      : October 9-12
      ®: October 15-18
      : October 22-25
      : November 5-8
      : November 13-15

      Consult the full  for prices and other details.



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



      . (beware: current early pricing ends soon) 



      Master Embedded Linux Customization and Driver Development





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



      .



      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:



      Remember the Furby (interactive toy, circa 1998)?  The source code is now online:



      The most popular programming languages of our time: -- IEEE



      There are limitations to applying machine learning to industrial controls:



      An interesting look at the quirks of various C compilers:



      Plus... some very practical advice for quickly moving legacy C code to a C++ compiler:




      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 () and LinkedIn ().


Categories: 
Подробнее
[fixed][/fixed]