Error 1: An internal exception has been detected. Vivado may be in an unstable state. Would you like to exit now?
Solution 1: This problem arises when we come to the "Create and Package IP" portion of the tutorial. To solve the problem, we must start the Vivado project from scratch, but this is very early on so not much progress is lost.
a) Create new Vivado Project
b) Go to Project Settings in Flow Navigator
c) Click IP settings (bottom entry on left)
d) Change Vendor Name to whatever your project name is (in this case I called it led_controller)
Error 2: IP Packager detects changes to source file; Error [Common 17-39] 'ipx:: merge-project-changes' failed due to earlier errors'.
Solution 2: Use caution when in "Edit Mode" of Vivado. This occurs after creating the IP and (as the tutorial explains, clicking edit IP) a new Vivado window opens. Here I made it to the end of the tutorial and was ready to program the FPGA in SDK. The above error is a syntax error and does not rear its ugly head until you are ready to run the program on the Zedboard. To fix the problem, follow the editing directions for both of the C files in "Edit Mode" very carefully. I had forgotten one comma at the end of a line. Do not do this. Check, double check, and triple check, seriously.
Error 3: "No such port ____". When connecting to the terminal after sending the program to the ZedBoard, I received an error in the port address. Even after finding which port the USB UART cable from the board is connected to, and entering it into the Terminal Settings window, the same "no such port" error is found.
Solution 3: After consulting IT Ken, he told me it was probably a permissions issue. The port was accessible by the owner and the local group, but not the world. For our purposes, we were part of the world permissions.
The port address is simply ttyACM0.
You have to go into the terminal and navigate to the source folder where led_controller is located. Using the command:
ls -l led_controller_test_tut_4A.c
shows that the file is only writable for owner and group, but not world (Ken's words).
Doing the same for the device (ls -l /dev/ttyACM0), shows that for the world, the device is only readable. We must change permissions for this:
[zynquser@localhost led_controller]$ sudo chmod 666 /dev/ttyACM0
Enter the FPGADesign password.
Use command:
ls -l /dev/ttyAMC0 to make sure the device is crw-rw-rw 1 dialout 166.
If it is (owner, group, and world can all read/write) you can enter the port address into the terminal window. The terminal should begin displaying the binary values corresponding to which LEDs were lighting up on the board. Taking a snapshot in time of both the LEDs and the terminal, you will find that the two match up and the program runs successfully.
No comments:
Post a Comment