Downloads
This is the user documentation for the flink userspace library in C. It provides a device and bus independent interface to the underlying driver modules. For more information about the inner workings see flink Userspace Library on Github. The API of the library can be found under API
When flink is used on a Linux based system the flink userspace library offers an simple interface to communicate with the underlying kernel modules. The userspace library is split in two parts.
The library must be built for the desired target platform architecture.
git clone https://github.com/flink-project/flinklib.git --recursive cd flinklib git submodule init git submodule update
git checkout v1.1.2
mkdir build-local
cmake ..
Optional: you can specify an installation prefix path with
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/ ..
make
git clone https://github.com/flink-project/flinklib.git --recursive cd flinklib git submodule init git submodule update
git checkout v1.1.2
mkdir build-powerpc
cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/your/toolchain/file.cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/powerpc-linux-gnu/ ..
make
Create the makefile with cmake (in the root directory):
cmake .
After this generate the documentation as given in the Doxyfile
by :
make doc
Install the library and header files on your system:
make install
A flink device must be opened before use (see Example using high-level API).
flink_dev* dev = flink_open("/dev/flink0");
As a next step one has to choose an appropriate subdevice. This could be done by
flink_subdev* subdev = flink_get_subdevice_by_id(dev, 2);
Here, the second subdevice is selected. You could also select a subdevice by its uniqe id.
flink_subdev* subdev = flink_get_subdevice_by_unique_id(dev, 0x23a5);
Here, the subdevice with unique_id = 0x23a5
is selected. This has the advantage that this unique_id does not change even in the case where subdevices are arranged differently in a FPGA design.
Now you can communicate with this selected subdevice. Assuming that it's of type GPIO you could configure it as an input or output.
flink_dio_set_direction(subdev, 0, true); flink_dio_set_value(subdev, 0, false);
This sets channel 0 to output and writes a logical 0.As a last step you have to close the device.
flink_close(dev);