Archive for December, 2010

Things you should’ve learned in ‘C’ class: 0 – Introduction

Sunday, December 12th, 2010

I see a worryingly large number of posts from ‘C’ users on internet forums displaying a lack of understanding of the basics of  ‘C’ development in the Real World.

Many of these are standard, classic ‘C’ issues – applicable to any environment in general – and some are specific to Embedded development in particular.

This is intended to be the first in an occasional series to address some of these issues.

Hopefully, educators may also find these posts useful in considering whether any changes in their material or presentation might be beneficial…

As a starter, let’s consider some basic reference materials to keep at hand:

The first must, of course, be a good ‘C’ reference book such as The ‘C’ Programming Languageby Brian Kernighan and Dennis Ritchie – available through any good book shop, as well as online bookstores.
Some further book recommendations can be found here: http://www.keil.com/books/

A free online ‘C’ textbook can be found here: http://publications.gbdirect.co.uk/c_book/

Answers to a range of Frequently-Asked Questions about ‘C’ programming can be found here: http://c-faq.com/

A description of all the functions provided by the standard ‘C’ library can be found here: http://www.cplusplus.com/reference/clibrary/

In my opinion, you can’t beat a good, taught class. I can recommend the following local training providers:
http://www.doulos.co.uk
http://www.feabhas.co.uk/

Other providers are, of course, available; eg,
http://www.netrino.com/Embedded-Systems/Training-Courses
http://www.ganssle.com/classes.htm

And some offer “self-study” options; eg,
http://www.netrino.com/Boot-Camp-Box

Addendum – 1 May 2012:

I stumbled upon this this great list of ‘C’ books, tutorials, FAQs, etc:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=22514

Although it starts with some AVR-specific stuff, the vast majority is entirely general.

Addendum – 10 Dec 2013:

Wikibooks has a free online ‘C’ book offering, “a comprehensive look at the C programming language and its features”

http://en.wikibooks.org/wiki/C_Programming

(PDF, printable, and e-reader versions also available).