Regarding the RST 38 error, RST 38 is not used by Dynamic C. The opcode for a RST 38 is 0xFF which is the same as an erased portion of the flash. What is probably happening is that somehow your program is attempting to execute code from an area that does not have any code to execute.
Look for uninitialized pointers, stack overflow/underflow, array boundary overflow/underflow, etc. in your code. Other possibilities are stack overflow caused by large auto arrays, large number of recursive function calls or a large number of nested interrupts.
Last updated: Aug 23, 2017