|
|
# FAQ
|
|
|
**Q:** *I opened a terminal in the TPC main directory, but none of the TPC scripts (e.g., `tpc`, `itpc`, ...) can be found.*
|
|
|
|
|
|
**A:** You need to source `setup.sh` to setup TPC, i.e., go into the directory and `. setup.sh`. Now the scripts should be in the `$PATH` and TPC is ready to use.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Q:** *How do I build the libraries with logging support?*
|
|
|
|
|
|
**A:** Use the `tpc-build-libs` script from `$TPC_HOME/bin`: `tpc-build-libs --mode debug`. Details on its usage are available via `tpc-build-libs --help`.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Q:** *How do I build the device driver?*
|
|
|
|
|
|
**A:** It is also built by the `tpc-build-libs` script from `$TPC_HOME/bin`: `tpc-build-libs --mode driver_debug` enables extensive logging in the kernel module (beware of the performance impact!). For further details see `tpc-build-libs --help`.
|
|
|
Please note that this step is highly Platform-dependent and will require additional packages from your Linux installation, e.g., the kernel headers and build dependencies.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Q:** *What's the easiest way to work with the Zynq devices?*
|
|
|
|
|
|
**A:** Probably the simplest approach is to checkout the TPC git directly on the device using using a Linux SD card image. Then you can build the software parts directly on the device without cross-compiling. A pre-built image can be found in the [Downloads section](http://www.esa.cs.tu-darmstadt.de/public/ThreadPoolComposer-2016.03-zedboard.tar.xz).
|
|
|
|
|
|
_Note: The image contains an outdated version of TPC: After logging in via `ssh` (see the `README.md` in the archive for further details), please delete the `threadpoolcomposer` directory entirely and re-clone this git._
|
|
|
|
|
|
---
|
|
|
|
|
|
**Q:** *Vivado crashes during evaluation of custom IP or place and route with an error log similar to this:*
|
|
|
```
|
|
|
#
|
|
|
# An unexpected error has occurred (11)
|
|
|
#
|
|
|
Stack:
|
|
|
/lib/x86_64-linux-gnu/libc.so.6(+0x354a0) [0x7f2be1b144a0]
|
|
|
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12960) [0x7f2be15cb960]
|
|
|
/opt/Xilinx/Vivado/2016.1/lib/lnx64.o/librdi_synth.so(HARTNDb::waitForLoadPart()+0x49) [0x7f2bb5176419]
|
|
|
...
|
|
|
```
|
|
|
|
|
|
**A:** This is a known bug in Vivado cause by a double free; it only occurs on machine that support the `TSX` instruction(s) and have a `glibc` built with `--enable-lock-elision`. If possible, switch to a Xilinx supported version of your operating system. If that is not an option, you can re-build `glibc` without `TSX` lock elision, more details on the bug and the solution [can be found here](https://github.com/MyrtleSoftware/glibc-no-lock-elision). It says "Tested only on Ubuntu 15.10." on the page, but we can confirm it works for Ubunutu 16.04, too.
|
|
|
|
|
|
*Note: After sourcing the Vivado settings scripts, you need to unset the LD_LIBRARY_PATH environment variable to avoid linking errors:* `unset LD_LIBRARY_PATH`
|
|
|
|
|
|
--- |
|
|
\ No newline at end of file |