Debugging Embedded and Real-Time Systems

Book description

Debugging Embedded and Real-Time Systems: The Art, Science, Technology and Tools of Real-Time System Debugging gives a unique introduction to debugging skills and strategies for embedded and real-time systems. Practically focused, it draws on application notes and white papers written by the companies who create design and debug tools.

Debugging Embedded and Real Time Systems presents best practice strategies for debugging real-time systems, through real-life case studies and coverage of specialized tools such as logic analysis, JTAG debuggers and performance analyzers. It follows the traditional design life cycle of an embedded system and points out where defects can be introduced and how to find them and prevent them in future designs. It also studies application performance monitoring, the execution trace recording of individual applications, and other tactics to debug and control individual running applications in the multitasking OS.

Suitable for the professional engineer and student, this book is a compendium of best practices based on the literature as well as the author’s considerable experience as a tools’ developer.

  • Provides a unique reference on Debugging Embedded and Real-Time Systems
  • Presents best practice strategies for debugging real-time systems
  • Written by an author with many years of experience as a tools developer
  • Includes real-life case studies that show how debugging skills can be improved
  • Covers logic analysis, JTAG debuggers and performance analyzers that are used for designing and debugging embedded systems

Table of contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Preface
  6. 1: What’s the problem?
    1. Abstract
  7. 2: A systematic approach to debugging
    1. Abstract
    2. The six stages of debugging
  8. 3: Best practices for debugging embedded software
    1. Abstract
    2. Introduction
    3. What makes embedded systems different?
    4. What are the best practices for debugging an embedded system?
    5. Best practices for software in general
    6. Best practices for debugging embedded software in particular
    7. Memory leaks
    8. Jitter
    9. Priority inversion
    10. Stack overflow
    11. Wrapping-up
    12. Additional resources
  9. 4: Best practices for debugging embedded hardware
    1. Abstract
    2. Introduction
    3. The debug process for hardware
    4. Design reviews
    5. Test plan
    6. Design for testability
    7. Have a process
    8. Know your tools
    9. Microprocessor design best practices
    10. Wrapping up
    11. Additional resources
  10. 5: An overview of the tools for embedded design and debug
    1. Abstract
    2. Introduction
    3. Debugger
    4. HW/SW coverification
    5. ROM emulator
    6. Logic analyzer
    7. Logic analyzer benefits
    8. Logic analyzer issues
    9. In-circuit emulator
    10. Additional resources
  11. 6: The hardware/software integration phase
    1. Abstract
    2. Introduction
    3. The HW/SW integration diagram
    4. The case of the nonstandard hard disk drive interface
    5. The last gasp of the vector display
    6. Underpowered emulator card cage
    7. Feature creep and the big customer
  12. 7: On-chip debugging resources
    1. Abstract
    2. Introduction
    3. Background debug mode
    4. JTAG
    5. MIPS EJTAG
    6. Final remarks
  13. 8: Systems on a chip
    1. Abstract
    2. Introduction
    3. Field-programmable gate arrays
    4. Virtualization
    5. Conclusion
    6. Additional resources
  14. 9: Testing methods for isolating defects
    1. Abstract
    2. Introduction
    3. Barriers to finding problems
    4. Quick and dirty
    5. Asking for help
    6. Fault isolation
    7. Performance-related faults
    8. Reproducible faults
    9. Intermittent faults
    10. Compliance faults
    11. Spread spectrum oscillators
    12. Thermal faults
    13. Mechanical issues
    14. Power supply-related faults
    15. Final thoughts
  15. 10: Debugging real-time operating systems (RTOS)
    1. Abstract
    2. Introduction
    3. Defect issues in RTOS systems
    4. Synchronization problems
    5. Memory corruption
    6. Interrupt-related problems
    7. Unintended compiler optimizations
    8. Exceptions
    9. RTOS-aware tools: An example
  16. 11: Serial communication systems
    1. Abstract
    2. Introduction
    3. RS-232
    4. Wrong COM port assignment
    5. Improper cable pinout
    6. Wrong baud rate (clock frequency)
    7. Improper flow control
    8. I2C and SMBus protocols
    9. SPI protocol
    10. Tools
    11. Controller area network (CAN-bus)
    12. Closing remarks
    13. Additional resources
  17. 12: Memory systems
    1. Abstract
    2. Introduction
    3. General testing strategies
    4. Static RAM
    5. Dynamic RAM
    6. Soft errors
    7. Jitter
    8. Software-based memory errors
    9. Concluding remarks
  18. Index

Product information

  • Title: Debugging Embedded and Real-Time Systems
  • Author(s): Arnold S. Berger
  • Release date: July 2020
  • Publisher(s): Newnes
  • ISBN: 9780128178126