Making embedded systems

Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate good development practices based on classic software design patterns and new patterns unique to embedded pr...

Descripción completa

Detalles Bibliográficos
Otros Autores: White, Elecia, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Sebastopol, CA : O'Reilly Media, Inc 2024.
Edición:Second edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009798449706719
Tabla de Contenidos:
  • Intro
  • Copyright
  • Table of Contents
  • Preface
  • About This Book
  • Who This Book Is For
  • About the Author
  • Organization of This Book
  • Terminology
  • Conventions Used in This Book
  • Using Code Examples
  • O'Reilly Online Learning
  • How to Contact Us
  • Acknowledgments
  • Chapter 1. Introduction
  • Embedded Systems Development
  • Compilers and Languages
  • Debugging
  • Resource Constraints
  • Principles to Confront Those Challenges
  • Prototypes and Maker Boards
  • Further Reading
  • Chapter 2. Creating a System Architecture
  • Getting Started
  • Creating System Diagrams
  • The Context Diagram
  • The Block Diagram
  • Organigram
  • Layering Diagram
  • Designing for Change
  • Encapsulate Modules
  • Delegation of Tasks
  • Driver Interface: Open, Close, Read, Write, IOCTL
  • Adapter Pattern
  • Creating Interfaces
  • Example: A Logging Interface
  • A Sandbox to Play In
  • Back to the Drawing Board
  • Further Reading
  • Chapter 3. Getting Your Hands on the Hardware
  • Hardware/Software Integration
  • Ideal Project Flow
  • Hardware Design
  • Board Bring-Up
  • Reading a Datasheet
  • Datasheet Sections You Need When Things Go Wrong
  • Datasheet Sections for Software Developers
  • Evaluating Components Using the Datasheet
  • Your Processor Is a Language
  • Reading a Schematic
  • Practice Reading a Schematic: Arduino!
  • Keep Your Board Safe
  • Creating Your Own Debugging Toolbox
  • Digital Multimeter
  • Oscilloscopes and Logic Analyzers
  • Setting Up a Scope
  • Testing the Hardware (and Software)
  • Building Tests
  • Flash Test Example
  • Command and Response
  • Command Pattern
  • Dealing with Errors
  • Consistent Methodology
  • Error Checking Flow
  • Error-Handling Library
  • Debugging Timing Errors
  • Further Reading
  • Chapter 4. Inputs, Outputs, and Timers
  • Handling Registers
  • Binary and Hexadecimal Math
  • Bitwise Operations
  • Test, Set, Clear, and Toggle
  • Toggling an Output
  • Setting the Pin to Be an Output
  • Turning On the LED
  • Blinking the LED
  • Troubleshooting
  • Separating the Hardware from the Action
  • Board-Specific Header File
  • I/O-Handling Code
  • Main Loop
  • Facade Pattern
  • The Input in I/O
  • Momentary Button Press
  • Interrupt on a Button Press
  • Configuring the Interrupt
  • Debouncing Switches
  • Runtime Uncertainty
  • Increasing Code Flexibility
  • Dependency Injection
  • Using a Timer
  • Timer Pieces
  • Doing the Math
  • More Math: Difficult Goal Frequency
  • A Long Wait Between Timer Ticks
  • Using a Timer
  • Using Pulse-Width Modulation
  • Shipping the Product
  • Further Reading
  • Chapter 5. Interrupts
  • A Chicken Presses a Button
  • An IRQ Happens
  • Nonmaskable Interrupts
  • Interrupt Priority
  • Nested Interrupts
  • Save the Context
  • Retrieve the ISR from the Vector Table
  • Initializing the Vector Table
  • Looking Up the ISR
  • Call the ISR
  • Multiple Sources for One Interrupt
  • Disabling Interrupts
  • Critical Sections
  • Restore the Context