While debugging, some functions (or source lines) cannot be stepped over. The dialog Step Operation in Progress appears. If the CPU is run, the same function executes normally.
One of the possible root causes for such behavior is that the function that is being stepped over uses interrupts of peripherals that act differently while the CPU is single-stepped and when the CPU is running.
Such peripherals may be, for example, timers.
There are several potential solutions. The most suitable one will depend on the root cause and/or CPU architecture.
Instead of stepping over problematic functions (or source lines), set an execution breakpoint to the target source line and run the CPU.
1. Navigate to Hardware | CPU Options | Reset.
2. Uncheck Suspend peripherals while stopped.
If you know exactly which device is causing the issues, you may be able to unsuspend only the problematic device by clicking on the “...” button. Whether the devices’ suspending is configurable depends on the CPU architecture.
1. Navigate to Debug | Debug Options | Debugging.
2. Uncheck the checkboxes in the section Prevent context switch during on the problematic operations. Most commonly that would be: