I just want to make sure I’m not making some silly mistakes;
Our team is at stages of switching programming languages(as it seems from LabView to Java).
I’m used from LabView to run the code - and at the end of the season to build it and deploy as a startup program.
Now, in Java with Netbeans - when I run the code it seems to deploy it as a startup program(by the way, wow! that’s a heck faster then Labview) and that’s it.
It seems logical that the cRIO’s flash memory is somewhat limited, and using it and reusing it will eventually kill it, so… is it the correct behavior?
Flash memory is rated for a number (usually in the 10,000s) of write cycles before the memory might fail. Sounds like the OP is asking if there’s a way to run Java code on the cRIO without writing to the flash memory to extend the life of the cRIO.
I think OP is asking whether Java is supposed to deploy and run on startup while LabVIEW just runs from memory. And the answer to this question (at least the first part, I’m not familiar with LabVIEW) is yes.
I wouldn’t worry about the flash memory. To start with, your robot program isn’t going to take up much space at all on the flash memory and most flash-using electronics implement some sort of wear-levelling, so you aren’t writing to the same flash cells over and over. And even if you were (which again, you’re not), 10,000 writes is the equivalent of deploying to the cRIO 10 times a day every single day for almost 3 years. And even then it would still be usable because that’s a low estimate.
SSDs have been used in computers for years and see orders of magnitude more writes than the cRIO ever will. It shouldn’t be a concern.