Embedded Wednesdays: Getting Started in Embedded Systems

Embedded Wednesdays is a periodic series of posts, intended for people wanting to get started in embedded systems. You may want to understand what is going on under the hood of an Arduino, you may need a crash course in embedded systems development, or you may have landed here because of a Google search about a topic. We will be discussing topics ranging from the basic introduction to advanced topics to make your brain hurt. Feel free to suggest topics and definitely listen to the embedded.fm podcast.


New posts will come out weekly, and you can find all the posts here:

  1. And In the Beginning, There Was Blinkies
  2. Programming Embedded Systems
  3. Programming C Without Knowing Assembly
  4. Thanks for the Memories
  5. My Complements to Numbers
  6. Shifty Acceleration
  7. Tools of the Trade
  8. Number Representation
  9. A Crash Course in C - Part 1 - Integers
  10. A Crash Course in C - Part 2 - Floating Point
  11. A Crash Course in C - Part 3 - Characters
  12. A Crash Course in C - Part 4 - Booleans
  13. A Crash Course in C - Part 5 - Arrays
  14. A Crash Course in C - Part 6 - The Basic Structure of C Code
  15. A Crash Course in C - Part 7 - Flow Control Statements
  16. A Crash Course in C - Part 8 - Introduction to Functions
  17. A Crash Course in C - Part 9 - Functions, part 2
  18. Logic in C - Part 1
  19. Logic in C - Part II, bit manipulation
  20. How big is an enum?
  21. Shortcutting Conditionals
  22. Scope I
  23. Scope II
  24. Protection
  25. Discovery: The More Things Change
  26. Discovery: Let's get Board
  27. Discovery: Documentation
  28. Discovery: Sample Code
  29. Discovery: CubeMX
  30. Scheduling Code on Bare Metal
  31. Discovery: Code, Part 1
  32. Discovery: Code, Part 2 - Code generated by CubeMX
  33. Discovery: Code, Part 3 -  Possible Compilers
  34. Discovery: Let's Get Started - LEDs
  35. Discovery: Buttons
  36. Discovery: Follow the Bouncing Bit
  37. Discovery: Button Interrupts
  38. Discovery: UARTs Part 1
  39. Discovery: UARTs Part 2 - Connections
  40. Discovery: UARTs Part 3 - The Final Step
  41. Discovery: UART Input
  42. DMA - Introduction
  43. DMA - Examples. UART output and code CRCs.
  44. Exceptional code - an investigation into null pointers and gcc code generation
  45. I SPI - an introduction to the SPI bus
  46. I Apply SPI - Scrawls and Traces - an introduction to oscilloscopes and schematics.
  47. I Apply SPI - Making Connections - deriving parameters for SPI
  48. I Apply SPI - Good Vibrations - finally, the code level of SPI
  49. Looking Out For Number 1 - An electronics pin 1 spotter's guide.
  50. Current Per Pin - Part 1 - An introduction to electric current
  51. Current Per Pin - Part 2 - LEDs, Microcontrollers, and smoke.
  52. The Case for the Default Case - On the importance of specifying the default switch case.
  53. New To Me - Range specifiers in switch statements.
  54. Ranges in Array Initializers - Ranges again, but this time in initializers.
  55. 0-1-2-3-4-5-6-7-10 - an introduction to octal (base-8)
  56. An Introduction to BCD - not quite base-10, not quite base-16, it's BCD!
  57. Love Notes to Newton - There's a new movie about the Newton computer. I was in it.

Embedded Wednesdays developed out of a discussion with an embedded.fm listener from the Edmonton New Technology Society (ENTS) in Edmonton, Alberta, Canada. 

The real Embedded Wednesdays is a group that meets at ENTS every Wednesday night. The first hour is taken up by a talk about various topics in embedded systems development, the next hour is lab time where the theory is put into practice.

Some people in the group were not able to make every meeting and asked me to put together a web page with my notes. This series of posts is an expansion of those notes and other topics that come out of questions from the members, comments in the posts, and all sorts of topics that spill out of the 18 years that I have been developing embedded firmware.

Andrei can be reached by using that electronic mail thingie. Send a message to the account named embedded on the server chichak dot ca.