Sometimes, when all else fails, you have to change your tack.
The Perl programming language is largely based on the idea that “there’s more than one way to do it”. This same idea can be applied to real-time embedded programming — especially when the method of choice just doesn’t seem to want to work. Coming to that conclusion sometimes takes a bit of time — especially when you’ve been focusing on getting your first approach to work — and may require input from a colleague. That can actually work even if the colleague in question doesn’t know what you’re talking about.
This morning, I had an idea for a problem I’ve been working to resolve. I wouldn’t exactly call it an epiphany but it seemed to be the only solution still available — namely to break the rules and try something that should fail, but might actually work. When explaining the idea during a progress report, a completely different approach appeared on the whiteboard, in the drawing I was making.
That new approach, which took about an hour to implement, including the time to recompile CE, proved to be a very fruitful idea: it allowed me to answer the question I was trying to answer all along, and had a much lower chance at failing.
Once again hindsight is 20/20, but it sure would’ve been nice to think of this before…