So we were having problems deploying code to a 4-slot cRIO.
We could run/debug code fine, but after every reset/power cycle we would have “No Robot Code” in the Driver Station because it was only run in temporary memory. And that’s fine; that’s expected behavior. The problem was after we try to deploy code inside WindRiver, reset the robot, Driver Station would still say “No Robot Code.” (Note we could successfully run AND deploy code (the same code) on an 8-slot cRIO.)
After reading many threads on CD, it seemed many other teams had the same problem. As suggested by these threads, we tried to FTP into the cRIO, manually move the .out file into ftp://10.te.am.2/ni-rt/system, and rename the file FRC_UserProgram.out. The DS still found No Robot Code on the 4-slot cRIO. The DS *did *find robot code on the 8-slot cRIO. We tried this several times. Results subsisted.
Then we reimaged both cRIOs with v52. After repeating the FTPing FRC_UserProgram.out procedure several times, the 8-slot cRIO was successful. The 4-slot was not.
Then we were out of ideas. So we tried to deploy a SimpleTemplate sample program from WindRiver. This time, the program successfully deployed onto the 4-slot cRIO. After rebooting, DS found robot code.
We found little reason for our actual C++ code to be causing the problem. So we suspected that something in the Build Properties of the WindRiver project was causing the problem. (Our original robot project was created from scratch, not from an existing sample project.)
We copied and pasted all of our .h and .ccp files from the original robot project into SimpleTemplate. The SimpleTemplate project was successfully deployed. So at this point we were almost certain it was something in the project properties that was causing the problem.
So we digged harder on CD. Indeed one poster mentioned appending “-mlongcall” after the “$(CC_ARCH_SPEC)”. This is inside Project Properties -> Build Properties -> Tools -> Tool Flags.
After doing this to the original robot project, it was still unable to be properly deployed to the 4-slot cRIO. The SimpleTemplate project could deploy, repeatably.
So we are out of ideas. Has anybody else had similar problems before? Help please?