Traumflug / simulavr

A fork of SimulAVR (http://www.nongnu.org/simulavr/) for handling contributions. The practical SIMINFO mechanism implemented here wasn't accepted upstream, but is crucial for Teacup Firmware simulations, so this fork will stay ... and follow upstream. Default branch is 'traumflug', master here matches master on nongnu.org.
GNU General Public License v2.0
40 stars 26 forks source link

Lots of interrupt losses since this upstream commit regarding interrupt handling #10

Open Traumflug opened 9 years ago

Traumflug commented 9 years ago

With this upstream patch applied I experience lots of interrupt losses (time 1A going full round instead of interrupting in time) with code which is known to work fine on a real controller. Code is Teacup, a 3D printer controller firmware, and pretty complex. More precisely the code in timer-avr.c, but there are other interrupts running continuously.

Now I'm wondering how I can simplify this complex firmware into a demonstration case which can be measured on the scope. I have no logic analyser, so "long time" measurements are limited to some 20'000 samples.

Traumflug commented 9 years ago

Nice thing is, the original patch doesn't show this misbehaviour, running Teacup Firmware brings pretty much the same results as without the patch:

Unpatched: unpatched

With @mhx patch: mhx patch

With upstream patch: savannah patch

All runs with the very same firmware binary, only SimulAVR was recompiled for each run.

Bug also reported upstream: https://savannah.nongnu.org/bugs/?45994

Traumflug commented 9 years ago

The obvious course of action is to remove the upstream patch and apply the @mhx one, which is what I did for branch traumflug. This branch is now fine again.

Keeping the issue open to inform about upstream.

mhx commented 8 years ago

Yay! :)