I make extensive use of H8S-2357 with software compiled in Hitachi Workbench V1.41a.
Suddenly I have a new 'funny' which after 4 solid days I cannot clear up.
My code 'jams' at a certain point which has nothing to do with the actual code being run at that moment (i.e. the function, where the jam occurs, is working perfectly in other calls, and in numerous other systems). The symptom is that my 'TIMER0' interrupt ceases to interrupt. The crystal carries on fine. No other interrupts work either, and the only recovery is a hardware reset. This happens entirely repetively at exactly the same point. I have checked the assembler listing, and I do not accidentally put the uP to SLEEP, or anything else similar. The 'TIMER0' control flags are correct (re-initialised at each interrupt), and not tampered with by other code (apparently - since all other code making use of these common modules carry on working fine!)
If I rebuild my entire project, moving the included modules around, the 'jamming' point changes to another location in code.
Ideas like STACK OVERFLOW, code size, etc. etc. have been explored ad nauseum - to no avail. The part has 128Kbytes of Flash, and 8Kbytes Ram - my code is only around 58Kbytes, and RAM usage around 5Kbytes. I've played with the stack size in the compiler. If I reduce it substantially (from 270h bytes) my code ceases to run at all, but increasing it does not cure the problem. The map file shows all code and RAM to be well within bounds.
I'm convinced that it is a compiler problem - any suggestions, clues, experience of similar problems out there?