Debugging the Interrupts
暂无分享,去创建一个
The interrupts in an embedded system are the key to doing things in real time. They also add a level of complexity to the system that complicates the debugging process. Although they are sometimes the only way to make sure that a particular device or task is executed in a predictable fashion, they tend to make the overall system less stable and less predictable. An interrupt signals an external event to the microprocessor. It may indicate that a particular amount of time has elapsed, or that a user has pressed a button, or that a mechanical arm has moved another step. In general, interrupts are used to be sure that something gets serviced right away. Interrupts are of two types: edge and level sensitive. Edge sensitiveinterruptsare activated when a signal changes state. An edge sensitive interrupt typically must change from the inactive state to the active state, then be held in the active state until serviced. A level sensitiveinterrupt will be serviced as long as it is in the active state. Interrupts on some processors can be prioritized. Methods for prioritizing interrupts, and the flexibility those methods provide, vary from processor to processor. The traditional tools for debugging software are less useful for debugging interrupt problems. The most common tool for users of emulators or ROM monitors is the breakpoint. The interrupt system is susceptible to all the hardware and software problems to which the rest of the system is susceptible, and also to some unique faults that occur nowhere else.