Skip to main content

Firmware Coding in C

  • Chapter
  • First Online:
Building Embedded Systems
  • 3542 Accesses

Abstract

Starting in this chapter, I will delve into the softer side of embedded systems. The next three chapters cover C/C++, the build process, and a little bit of embedded OS.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    ISOCPP stands for C++ Standards Committee, the international standardization working group for C++.

  2. 2.

    TYPE_ALIGNMENT is defined differently in Ref [5] as FIELD_OFFSET( struct { char x; t test; }, test ). The side effect of this implementation is that compiler will give out warnings if it is used together with C_ASSERT.

  3. 3.

    Refer to your computer science text book if you want to find a more pedantic definition of “critical section”.

  4. 4.

    Sometimes people also put the build number or OEM ID as the third part of the version number.

References

  1. C++ for Kernel Mode Drivers: Pros and Cons, WinHEC 2004 Version, Microsoft Corporation, April 10, 2004

    Google Scholar 

  2. “Why don’t we rewrite the Linux kernel in C++?” (The Linux kernel mailing list FAQ http://www.tux.org/lkml/#s15-3 ) or ( http://harmful.cat-v.org/software/c++/linus )

  3. Object-Orientated Programming with ANSI-C, Axel-Tobias Schreiner, December, 1994

    Google Scholar 

  4. Portable Inheritance and Polymorphism in C, by Miro Samek, Embedded Systems Programming, December, 1997

    Google Scholar 

  5. Porting Your Driver to 64-Bit Windows, MSDN Library, September 7, 2011

    Google Scholar 

  6. Catching errors early with compile-time assertions, by Dan Saks, Embedded Systems Programming, July, 2005

    Google Scholar 

  7. Intro to GNU Assembly Language on Intel Processors, Prof. Godfrey C. Muganda, North Central College, February 29, 2004

    Google Scholar 

  8. Place Volatile Accurately, by Dan Saks, Embedded Systems Programming, November, 2005

    Google Scholar 

  9. Modern Control Systems (10th Edition). Richard C. Dorf and Robert H. Bishop, Pearson Education, Inc., 2005

    Google Scholar 

  10. The Principles of Project Management, Meri Williams, SitePoint Pty. Ltd., February, 2008

    Google Scholar 

  11. The Embedded Finite State Machine. Bo Berry, Dr. Dobb’s Journal, May 13, 2009

    Google Scholar 

  12. UNIX SYSTEMS Programming, Communication, Concurrency, and Threads. Kay A. Robbins, & Steven Robbins, Prentice Hall PTR, 2003

    Google Scholar 

  13. Modern Operating Systems (3rd Edition). Andrew S. Tanenbaum, Pearson Education, December, 2007

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Changyi Gu

About this chapter

Cite this chapter

Gu, C. (2016). Firmware Coding in C. In: Building Embedded Systems. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-1919-5_6

Download citation

Publish with us

Policies and ethics