TechOnline India Header
Most Popular
Top 5 Courses
  • Evaluating Face Tracking Solutions
  • An Embedded C++ Case Study
  • Fundamentals of LTE Physical Layer and Test Requirements
  • Fundamentals of Signal Integrity
  • Fundamentals of MOSFETs for Switching
    Most Popular
    Top 5 Technical Papers
  • Digital Signal Processing: A Practical Guide (Part 1)
  • C++ Under the Hood
  • Digital Signal Processing: A Practical Guide (Part 2)
  • Digital Signal Processing: A Practical Guide (Part 5)
  • A New Type of DC/DC Module
    Most Popular
    Top 5 Virtual Labs
  • MC9S12NE64
  • Texas Instruments eZ430-RF2500 Wireless Development Tool
  • Texas Instruments MSP430
    Most Popular
    Top 5 Webinars
  • An Overview of ADI's iSensor' Intelligent Motion-sensing Technology
  • Mutexes vs. Semaphores: How to Use Each Properly
  • On-chip system level visibility for optimized ARM platforms & shorter time to market
  • Learn how to run the uC/OS-III real-time kernel on an ARM Cortex M3
    All Articles Products Courses Papers VirtuaLabs Webinars
    Top Search Items
    Solar
    microcontroller
    fpga
    xilinx
    LTE


    Techpaper Spotlight

    Wind River
    Accelerating the Development of Embedded Linux Devices with JTAG On-Chip Debugging
        Login | Register | Welcome, Guest

    Topics
    POLL
    How much code have you produced in your career?
    A few KLOC
        37%
    100s of KLOC
        46%
    Millions of LOC
        11%
    A trillion
        6%
     



    Developing a good bedside manner
    The fastest and most effective way to debug hardware or software involves using a disciplined process. Here are six steps for debugging.
    Embedded.com

    Why are debugging code and alien abduction so similar? Because in both cases large blocks of time are unaccounted for.

    Medicine, too, resembles debugging (and perhaps alien abduction). In an astonishing development, recently my doctor actually chatted with me for a few minutes. Maybe it was a slow H1N1 day, or perhaps he just wanted a break from all of the runny noses. So I asked him what the hardest part of his job was. Expecting to hear a rant against insurance companies, it was interesting to hear him talk about the difficulty in diagnosing diseases. Most people present with simple cases, but sometimes an individual will have a bewildering array of symptoms that suggest no single etiology. Physicians use differential diagnosis to try and weed causation from the complaints, which is made very complex since patients may ignore some important symptoms while focusing on those that are less critical. To add spice to the sauce of diagnosis, several illnesses may present at the same time.

    I was struck by how closely his comments mirror the art of debugging embedded systems. Our nascent product has a bug, which presents itself via some set of symptoms. Press the green button and nothing happens. Is the switch wired incorrectly? Could its Schmidt trigger gate be shot? Is the ISR invoked? Perhaps the ISR never passes a signal to the code that displays a result.

    Or maybe the power is off.

    In other cases, just as in medicine, one bug may present a variety of odd effects. Or a single symptom could stem from a combination of bugs all interacting in excruciating-complex, and hard to diagnose, manners. I wonder if physicians observe the infrequent symptoms we see, that appear in a system once, go away for weeks, and then randomly resurface?

    Then there are the bugs we know exist, but just cannot fix. The system gets shipped with the expectation that sometime someone will see a problem. That, too, is like medicine. "Doc, it hurts when I do this." "Don't do that." My health insurance will not cover kidney stones due to three prior episodes, one of which required an expensive lithotripsy. So that's one latent bug in my gut that will surely reappear at some unknown time in the future.

    1 | 2 | 3 | 4 | 5 NEXT >
     
     
    Latest Webinars
    · Distributor Brand Preference Study
    · The Meaning of Total Jitter
    · Editorial Webinar: Optimized Linux Development Tools for Multicore
    · Evaluating Oscilloscope Sample Rates vs. Sampling Fidelity: How to Make the Most Accurate Digital Measurements
    · High-Power Amplifier Characterization using a Nonlinear Vector Network Analyzer
     
    Member Company Spotlight
    Achronix Semiconductor
     

    Need More Speed? Now you can break through the speed barriers of traditional FPGAs with Achronix Speedster family of FPGAs. Speedster is capable of running at 1.5 GHz peak performance and has 40 lanes of 10.3 Gbps embedded SerDes and four independent 1066 Mbps DDR2/DDR3 controllers enabling extremely high I/O throughput to match the chips outstanding core performance. See how its possible. Download our SPEEDSTER WHITE PAPER today!


    Member Companies

    Virtualab
    Freescale Semiconductor

    Flexis JM Badge Board