Embedded Systems Programming: Getting Started
This course offers microcontroller programming for beginners, as well as experienced mobile and desktop software developers. It is built around a mobile device accessory project to measure bicycle speed and distance.
What you'll learn
An understanding of the limitations of embedded processors is essential for embedded software developers. In Embedded Systems Programming: Getting Started, you’ll learn the essential skills for reading and writing I/O lines, configuring peripherals such as analog and digital converters, counter/timer modules, and the serial interface or UART. First, you'll discover how to configure the clock system of the processor to balance performance and power consumption. Later, you'll explore digital and analog inputs and outputs, and write interrupt service routines to handle real-time tasks quickly. Finally, you’ll delve into the basics of powerful debugging tools by putting the processor to sleep to extend the battery life of the system, and ultimately learn to refactor and organize your code. By the end of this course, you'll have the fundamental skills necessary for embedded firmware development, helping you design and build products of your own.
Table of contents
- Microcontrollers Are Everywhere: Meet Your Project 3m
- Start Developing Before the Product Exists 2m
- Development Process: Architecting and Refactoring 2m
- Development Process: From Mess to Masterpiece 3m
- Low-level Functions, Interrupts, and I/O 2m
- Source Code Control: Your Best Friend with a Perfect Memory 3m
- Git Benefits: Log Messages, Branching, and Merging 7m
- Honey, I Shrunk the Memory Space 2m
- This Isn’t Big Data: Conserve Your Resources 3m
- Drinking from a Firehose: Summary and Preview 1m
- The Space-time Continuum: Flash, RAM, and Clocking 2m
- Energy Harvesting, Battery Life, and Clock Domains 2m
- Clocking for Communications Interfaces 2m
- Clocking Bit Rate Errors and Long Division 4m
- From Cheap to Great: Oscillator Source Selection 2m
- About as Much Memory as the First Personal Computers 5m
- Many Moving Pieces: Processor Architecture Overview 3m
- Micromanagement: Good, Bad, or Just Not Optimized? 4m
- Demo: Bloat-free Growth and Disappearing Variables 12m
- Summary: Clocking, Debugging, and Resource Constraints 1m
- Digital Input and Output: Basic Sensing and Control 2m
- Wiring for Digital I/O Signals: Hope(less) and Float(ing) 6m
- Precision Timing with Counter/timer Modules 3m
- One Byte at a Time: Serial Communication 3m
- Signal Me Under the Right Conditions 4m
- Shortcuts, RTOS Cautions, and Demo Overview 4m
- Watch the Blinking Lights: LED Control and Timing 8m
- Digital Inputs and Counters: Malfunction, Need Input 12m
- Serial I/O: Tag! UART It 11m
- Demo Wrap up and Summary 2m
- Give It a Rest: Sleeping When There's Nothing to Do 3m
- You Can't Improve What You Don't Measure 5m
- Energy Budgeting Is Integral to Your Success 3m
- More Debugging Techniques for Real-time Analysis 3m
- Beware of (Watch)Dog 3m
- Good Night, Sleep Tight, Don't Let Any Bugs Bite 4m
- Just Over the Next Hill: Demo Wrap up and Summary 1m