Here is an issue that was recently resolved on a F28x device
The engineer had an existing *.out file that worked on co-worker's system. This program made use of Printf()'s to the Stdout window as well as file accesses via fopen(). If the out file was loaded on the system in question, the stdout window was not even present and the fopen/fread did not access a file...
The root cause of the issue was due to CCS settings.
When debugging from Flash on C28x (or TMS470) devices, there are only 2 HW breakpoints available. By default, CCS uses two breakpoints, one for CIO accesses and another for end of program at load. Typically, C28x users will go into CCS options to disable these breakpoints, thus maximizing the number of HW breakpoints available for debug out of flash. However, if C I/O functions are used (printf, etc), and the CIO breakpoint is removed, the CIO functions will not work...
To resolve the issue
In CCS3.x
Go to Option->Customize->Program/Project/CIO
Under program load, make sure that "Do Not Set CIO Breakpoint At Load" is unchecked...
In CCS4.x
During debug session
Tools->Debugger Options->Generic Debugger Options
Under program/Memory Load options, make sure that "Enable CIO function use" is checked