I have been developing for a Rabbit 4120 processor with DC v10.54 on a program that I took over from someone else, and everything has been compiling and running fine for several weeks.
Just for the sake of experimenting, I tried upgrading to DC 10.64, but with the upgrade, I get the fatal run-time error:
Invalid Confunction Instance at the address 0C:0008
Is there anything obvious that would cause this to happen between different versions of DC?
I was able to determine that the program is crashing when trying to execute the function:
As I said, this worked fine with DC10.54, but now causes an Invalid Cofunction Instance while running when compiled with DC10.64.
Any thoughts would be appreciated.
Just wondering if you wera able to determing the problem?
Yes, this is a compiler issue. Rabbit’s tech support came up with the following work-around:
A work around is to substitute DC 10.60’s Lib\Rabbit4000\RS232.LIB and Lib\Rabbit4000\CBUF.LIB into DC 10.64 (or DC 10.62). After this substition in DC 10.64 a warning is produced, e.g.:
line 2540 : WARNING RS232.LIB : Type mismatch: incompatible types void() and int( *)() used in expression.
This warning can be safely ignored, as it occurs when void * spd_dummyfunc is assigned to int * serDdata.xCheckCTS, where the dummy function is never actually called because an appropriate assignment from int * spd_checkcts_fc is made when HW flow control is enabled.
Hope this helps,