0% found this document useful (0 votes)
30 views5 pages

IDS UEye For Embedded Boards en

The document provides information on the uEye Linux Embedded camera driver for ARM architectures, detailing hardware acceleration options like Hardfloat and Softfloat. It outlines how to check CPU support for floating-point operations, the required libraries for the uEye SDK, and installation instructions for the SDK on embedded boards. Additionally, it specifies the necessary libraries for GUI applications and image processing functionalities.

Uploaded by

Adasson Bravo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views5 pages

IDS UEye For Embedded Boards en

The document provides information on the uEye Linux Embedded camera driver for ARM architectures, detailing hardware acceleration options like Hardfloat and Softfloat. It outlines how to check CPU support for floating-point operations, the required libraries for the uEye SDK, and installation instructions for the SDK on embedded boards. Additionally, it specifies the necessary libraries for GUI applications and image processing functionalities.

Uploaded by

Adasson Bravo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

User information Embedded boards

Embedded boards driver for IDS industrial cameras

Hardware acceleration
IDS provides the uEye Linux Embedded camera driver for different ARM architectures. For the ARMv7
packet, you can choose between a Hardfloat (hf) and a Softfloat (sf) version.

Floating-Point-Unit
Many current ARM Embedded Boards and devices have an integrated hardware support for floating-point
operations (FPU) with the consequence of a higher performance in applications with various operations
like image calculation, transformations, exponential or trigonometric calculations with floating point
arithmetic. In the ARM environment VFP means Vector Floating Point Architecture. In the meantime there
are three main version:

 VFPv1 – outdated and no longer used


 VFPv2 – is an optional extension of the ARMv5 and ARMv6 instructions-set.
 VFPv3 – is the optional extension from the ARMv7 architecture on.
In contrast, softfloat emulates an FPU in software. Corresponding operations run much slower than with
hardware support because to a higher CPU load.

Softfloat or Hardfloat?

The following information is related to the GNU/Linux system that is installed on the embedded
board.

Querying the CPU info


If the used CPU features this hardware support, can be requested via the CPU information. The
verification will show entries in the features line of /proc/cpuinfo or in the VFP support message, logged
out while the kernel boots.
pi@raspberrypi:~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32
lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
...

What libraries are used?

What libraries are used by basic applications? For this purpose, a standard application like e.g. “ls” can
be examined. The command ldd shows what libraries are linked.
pi@raspberrypi:~ $ ldd /bin/ls
linux-vdso.so.1 (0x7eec3000)
/usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76ef7000)
libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x76eb7000)
libacl.so.1 => /lib/arm-linux-gnueabihf/libacl.so.1 (0x76ea0000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76d5f000)
/lib/ld-linux-armhf.so.3 (0x54af6000)
libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x76cec000)

Version 4.90 1–5


User information Embedded boards

libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76cd9000)


libattr.so.1 => /lib/arm-linux-gnueabihf/libattr.so.1 (0x76cc3000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76c9b000)
Here, you see that the Hardfloat libraries in the directory /lib/arm-linux-gnueabihf are used. That
indicates a system with hardfloat support.

Detailed information about a library or an application


Using the readelf tool shows more detailed information very easy. The presence of the file attribute
‘Tag_ABI_VFP_args’ for example shows the usage of the VFP registers.
For the check, choose the standard “C” library libc.so.6.
pi@raspberrypi:~ $ sudo readelf -A /lib/arm-linux-gnueabihf/libc.so.6
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "6"
Tag_CPU_arch: v6
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_rounding: Needed
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_enum_size: int
Tag_ABI_HardFP_use: SP and DP
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6
When the line with Tag_ABI_VFP_args is not present, it is a Softfloat system.

If you do not know the directory of the libc.so.6 file, you can search for it using
$> sudo find / -name libc.so.6

Version 4.90 2–5


User information Embedded boards

Software Requirements

Standard C Libraries
According to the uEye SDK version, the Linux system has to support a minimum required version of the
GNU C Library (GLIBC, libc.so.6) and the GNU C++ Library (GLIBCXX, libstdc++.so.6). The required
versions are described in the Readme.txt.

GNU C Library
You can query the supported version of the GLIBC with following
command via the Linux command line:
$> strings /lib/arm-linux-gnue.../libc.so.6 |
grep GLIBC

If you do not know the directory of the libc.so.6 file, you


can search for it using
$> sudo find / -name libc.so.6

Check if the required version is present in the console output.

GNU C++ Library


You can query the supported version of the GLIBCXX with
following command vai the Linux command line:
$> strings /usr/lib/arm-linux-
.../libstdc++.so.6 | grep GLIBCXX

If you do not know the directory of the


libstdc++.so.6 file, you can search for it using
$> sudo find / -name libstdc++.so.6

Check if the required version is present in the console output.

Version 4.90 3–5


User information Embedded boards

Additional Libraries
The following Qt libraries must be installed if you want to use the GUI programs uEye Demo or IDS
Camera Manager:

 libQt3Support.so.4
 libQtGui.so.4
 libQtXml.so.4
 libQtCore.so.4
 libQtNetwork.so.4
 libQtCore.so.4

The following library must be installed if you want to save images as JPEGs or use the special JPEG
mode of the XS camera:

 libjpeg.so.62 (Alternatively, you can use the version libjpeg.so.8.)

The following library must be installed if you want to save images as PNG:

 libpng12.so.0

Installing libraries
On Debian- or Ubuntu-based systems, you can install the following packages for example by using apt-
get:

Important: To run the commands, you must be “root”.

$> apt-get install libqt4-qt3support libqtgui4 libqt4-network libqtcore4


libqt4-xml libqt4-sql libjpeg62 libpng12-0

Version 4.90 4–5


User information Embedded boards

Installation

Installing the SDK

Important: To run the commands, you must be “root”.

1. Copy the TAR archive into your home directory on the target system.
2. Unpack the archive with the tar program on the target system:
tar xvf uEyeSDK-[version number]-ARM_LINUX_IDS_[setup type].tar -C /
With the command parameter “-C /” the package will be extracted right into the root folder. So
the setup components are copied to the required places in the Linux system.
3. Execute the setup script
/usr/local/share/ueye/bin/ueyesdk-setup.sh

4. After the installation, start the uEye daemon:


a. Via the IDS Camera Manager (root), if you use a graphical user interface.
b. Via the command line
USB daemon: /etc/init.d/ueyeusbdrc start
ETH daemon: /etc/init.d/ueyeethdrc start

Uninstalling the SDK

Important: To run the commands, you must be “root”.

Execute the uninstall script


$> /usr/local/share/ueye/bin/ueyesdk-uninstall.sh

Version 4.90 5–5

You might also like