We have seen some problems come up during the course of SpeedWay trainings while using SDK in some of the labs. This post applies not only to SpeedWay labs, but could be something that you run into with other Reference Designs you come across. This issue arises when someone else creates a PlanAhead project in a local folder on their development PCs and that project is not copied into the same local path on your own development PC.
For the most part, our lab documents will provide instructions to place the PlanAhead project into a specific folder. By following these instructions, you will see the best results and this error should not come up:
However, what if you get a project from a colleague and you do not end up placing it in the same local path as they did? I will use the Zynq Intro SpeedWay Lab6 solution for the SpeedWay LED_Controller PlanAhead project as an example of this issue and how to work around it. In this example, the LED_Controller Lab6 solution archive gets extracted to the C:\ folder (yes, I am not following the lab instructions for the purpose of illustrating this example) such that the path does not match the directions in the SpeedWay lab documents.
I launch SDK and specify the SDK workspace as the C:\LED_Controller\LED_Controller.sdk\SDK\SDK_Export folder.
If the Hardware Specification Change Warning dialog is reached, I answer Yes to synchronize the workspace.
Once synchronization is complete and the workspace is rebuilt, the device initialization properties must be updated. I open the software project Debug/Run configuration by right clicking on the LED_Dimmer project and selecting the Run As-->Run Configurations… item. Then select the LED_Dimmer Debug ELF configuration item on the left and then clicking on the Device Initialization tab at the right. There is an absolute path shown in the Path to initialization TCL file field that is stale and must be updated to the correct path. For my example, it should be changed to the C:\LED_Controller\LED_Controller.sdk\SDK\SDK_Export\system_hw_platform\ps7_init.tcl file because that is where I put the extracted solution project.
If this stale TCL file path does not get updated, when the LED_Dimmer application gets launched by SDK it cannot fint the ps7_init.tcl file because it is searching in that stale path which does not exist. As a result, the launch fails with the following error messages:
Another thing that I run into is related to the case where workspace synchronization is not performed. As a result there is an absolute path to the PL bitstream that also needs to be updated. I open the Xilinx Tools-->Program FPGA dialog and use the Browse button to update the path to the system.bit bitstream now located in the C:\LED_Controller\LED_Controller.sdk\SDK\SDK_Export\system_hw_platform\ folder.
Anyways, some of this may be obvious to those who have been using Eclipse or the Xilinx tools for many years. To some others, this could really trip them up when they go to grab a PlanAhead project from a colleague or download one from a community website. Something to keep in mind in case you happen to run into this "Unexpected error while launching program: Error while running ps7_init method:" error.