I have been trying to run a long code (around 1200 lines total) on an Industruino. It called initially quite a number of void fonctions that were encoded locally.
Though the whole compilation works fine (not even a warning), and the code uses only 33% of memory space and 4105 bytes of global variables, the 1286 freezes at the end of the loading and the comm port goes offline, so I have to reload another code, and press the reset button while loading to get it back online.
Since the first tries with monolithic code, I have been moving all my functions to two specialized libraries, then restructuring the code with one loop calling some 6 subroutines in which the instructions were transfered. No change.
Everything works as if the live code can only refer to a limited number of function calls, since adding regular "explicit" expressions does not seem to affect the code. Is there such a limit somewhere, or another known limit that would have this effect ?
The issue that you are experiencing is related to an incompatibility between the old firmware on V1.3 1286 Topboard and Arduino IDE 1.6*. The problem appears with sketches larger than 32Kb. If you compile your code on Arduino IDE 1.0* you should not have this problem. Alternatively if you have an ISP programmer you could update the firmware on your V1.3 Topboard to the same latest version running on V1.4 Topboard which will have no problem with Arduino IDE 1.6* compiled code. If you don't have an ISP programmer and you need to compile your code on Arduino IDE 1.6* you can contact me and we will arrange an exchange for a Topboard with updated firmware.
if I understand your question, you are probably looking in the wrong place.
A limit on the number of functions makes no sense, as each function name is just a placeholder to a piece of compiled code and doesn't take any resource other that its space.
From what you say I would check in the serial USB area.
Did you notice that the 1286 is using a different COM port during programing from the one used for operation?
Also, if you tell the software to wait for the Serial after serial.begin, the program will not start until you get the right serial.
I might very well be wrong, but you can check on it!
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!